Smoke Test
To validate basic functionality of the Fuzzball cluster, you can run a minimal “Hello, world!” workflow. You will need to install the Fuzzball CLI on the Server node to complete this test.
On the Server node, you can start by saving the following in a
Fuzzfile called hello-world.fz
# cat >hello-world.fz<<EOF
version: v1
jobs:
hello:
image:
uri: docker://docker.io/library/alpine:latest
command:
- /bin/sh
- '-c'
- echo "Hello, world"
resource:
cpu:
cores: 1
affinity: NUMA
memory:
size: 1GB
EOF
The minimal Fuzzball configuration used in this deployment guide causes Fuzzball to be hosted with a self-signed certificate. To accept this certificate you can perform the following.
# mkdir $HOME/certs
# kubectl get secret -n cert-manager root-ca-cert -o "jsonpath={.data['ca\.crt']}" | base64 --decode >$HOME/certs/ca.crt
# kubectl get secret -n cert-manager root-ca-cert -o "jsonpath={.data['tls\.crt']}" | base64 --decode >$HOME/certs/tls.crt
# export SSL_CERT_DIR=$HOME/certs
Now you can begin the test by creating and logging into the correct Fuzzball
context. You will need to gather some information
from the Fuzzball instance running in K8s. The
default username and password are admin
and password
respectively.
# api=$(kubectl get ingress -n fuzzball fuzzball-openapi -o "jsonpath={.spec.rules[].host}")
# auth=$(kubectl get ingress -n identity identity-keycloakx -o "jsonpath={.spec.rules[].host}")
# realm=$(kubectl get fuzzball fuzzball-orchestrate -o 'jsonpath={.spec.keycloak.create.realmId}')
# fuzzball context create default "${api}" "http://${auth}/auth/realms/${realm}" fuzzball-cli
# fuzzball context login --direct
Logging into current cluster context...
Enter Username: admin
Enter Password: Account "User Account (admin@ciq.com)" in use
Now you are ready to submit a workflow based on the hello-world.fz
file that you saved above.
# fuzzball workflow start hello-world.fz
Workflow "32fabald-aab2-449-9f6b-ce5577f3890f" started.
# fuzzball workflow describe <workflow uuid>
Name: hello-world.fz
Email: admin@ciq.com
UserId: 004f1ecd-3b4c-4b58-baf2-dcbe4e9fd705
Status: STAGE_STATUS_FINISHED
Created: 2024-07-26 08:04:48PM
Started: 2024-07-26 08:04:48PM
Finished: 2024-07-26 08:04:52PM
Error:
Stages:
KIND | STATUS | NAME | STARTED | FINISHED
Workflow | Finished | cb634d97-24b1-49e9-97c7-10e7b5ba4fb1 | 2024-07-26 08:04:48PM | 2024-07-26 08:04:52PM
Image | Finished | docker://docker.io/library/alpine:latest | 2024-07-26 08:04:48PM | 2024-07-26 08:04:51PM
Job | Finished | hello | 2024-07-26 08:04:51PM | 2024-07-26 08:04:52PM
When the workflow is complete, you can check the output logs.
# fuzzball workflow logs <workflow uuid> hello
Hello, world
Congratulations! You have now manually deployed a full working Fuzzball cluster!