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

Server Node Fuzzball Orchestrate Deployment

With the Fuzzball K8s operator installed and the fuzzball.yaml configuration file in place, you are ready to deploy Fuzzball Orchestrate to the Server node.

You can do so with the following command:

# kubectl apply -f fuzzball.yaml

This command proceeds asynchronously. So it will look like it is completed even though it will still require some time for the K8s Fuzzball deployment to finish. This usually takes several minutes.

You can monitor the deployment as it occurs with the following command:

# kubectl logs -l app.kubernetes.io/name=fuzzball-operator -n fuzzball-system -f --tail=-1
[...snip]
Diagnostics:
  pulumi:pulumi:Stack (fuzzball-orchestrate-fuzzball-orchestrate):
    Using fuzzballCRD image username and password

  ciq:core/v1:Identity (identity):
    Waiting for keycloak to be ready: SUCCESS

Resources:
    + 28 created
    ~ 39 updated
    67 changes. 273 unchanged

Duration: 2m37s

2024-09-09T19:37:57Z	DEBUG	events	Resources have been deployed successfully	{"type": "Normal", "object": {"kind":"FuzzballOrchestrate","name":"fuzzball-orchestrate","uid":"7523fe55-2a61-4d50-8948-1d45a8ac535e","apiVersion":"deployment.ciq.com/v1alpha1","resourceVersion":"8236"}, "reason": "DeploymentSucceeded"}
2024-09-09T19:37:58Z	INFO	Updated Fuzzball status to ReconciliationComplete - Reconciliation completed successfully	{"controller": "fuzzballorchestrate", "controllerGroup": "deployment.ciq.com", "controllerKind": "FuzzballOrchestrate", "FuzzballOrchestrate": {"name":"fuzzball-orchestrate"}, "namespace": "", "name": "fuzzball-orchestrate", "reconcileID": "10cc6b9e-0092-4758-a0d8-31410cd67c5d"}

After deployment, you can inspect the configuration that was used with the following command:

# kubectl get fuzzballorchestrate fuzzball-orchestrate -o yaml

You can edit the current configuration in-place. These changes will be immediately applied and updated by the Fuzzball operator.

# kubectl edit fuzzballorchestrate fuzzball-orchestrate

Check your work

Once the deployment is complete, you can confirm that Fuzzball Orchestrate is installed correctly by inspecting that expected objects have been created.

Check for any pods that are not in the running state:

# kubectl get pods -A --field-selector status.phase!=Running,status.phase!=Succeeded
No resources found

Check that ingress is configured and ready.

# kubectl get ingress -A
NAMESPACE   NAME                 CLASS    HOSTS                             ADDRESS       PORTS     AGE
fuzzball    fuzzball-config      kong     api.fb.10.1.96.149.nip.io                       80, 443   21m
fuzzball    fuzzball-kube        kong     wellknown.fb.10.1.96.149.nip.io   10.1.96.149   80, 443   20m
fuzzball    fuzzball-openapi     kong     api.fb.10.1.96.149.nip.io         10.1.96.149   80, 443   20m
fuzzball    fuzzball-ui          kong     ui.fb.10.1.96.149.nip.io          10.1.96.149   80, 443   19m
identity    identity-keycloakx   <none>   auth.10.1.96.149.nip.io           10.1.96.149   80, 443   22m

Confirm that all persistent volume claims (PVCs) are bound.

# kubectl get pvc -A
NAMESPACE         NAME                                      STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
database          data-database-postgresql-0                Bound    pvc-f5925cd3-ee24-4b17-8e88-4cc96883ab08   8Gi        RWO            local-path     <unset>                 23m
fuzzball-system   fuzzball-operator-controller-manager      Bound    pvc-e052f402-6cfe-48f8-a7b2-5d43ee7e496d   20Gi       RWO            local-path     <unset>                 44m
fuzzball          audit-cold-storage                        Bound    pvc-65255214-4de1-4bd4-925d-5a9bc013a513   1Gi        RWO            local-path     <unset>                 19m
fuzzball          cache-fuzzball-schedule-0                 Bound    pvc-f07e0f36-6bfe-4c5e-958c-a2206f269d0d   1Gi        RWO            local-path     <unset>                 20m
fuzzball          fuzzball-logs                             Bound    pvc-e1a34398-ffbb-4218-ab1c-8bb107804688   5Gi        RWO            local-path     <unset>                 21m
fuzzball          substrate-shared-config-fuzzball-sync-0   Bound    pvc-7a0c87c5-9ae6-48cd-9199-b9886485407a   5Gi        RWX            nfs-client     <unset>                 17m