Fuzzball Documentation
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

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!