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.yamlThis 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:
ciq:core/v1:Identity (identity):
Waiting for keycloak to be ready: SUCCESS
pulumi:pulumi:Stack (fuzzball-orchestrate-fuzzball-orchestrate):
Using fuzzballCRD image username and password
Resources:
+ 9 created
~ 7 updated
16 changes. 235 unchanged
Duration: 16s
2025-02-04T22:49:08Z DEBUG events Resources have been deployed successfully {"type": "Normal", "object": {"kind":"FuzzballOrchestrate","name":"fuzzball-orchestrate","uid":"786ef498-cc8b-4d31-9729-8e0c2a6d9dcb","apiVersion":"deployment.ciq.com/v1alpha1","resourceVersion":"44728"}, "reason": "DeploymentSucceeded"}
2025-02-04T22:49:08Z 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": "ebe8f5ac-8ef7-449a-81bc-080c455aae86"}After deployment, you can inspect the configuration that was used with the following command:
# kubectl get fuzzballorchestrate fuzzball-orchestrate -o yamlYou can edit the current configuration in-place. These changes will be immediately applied and updated by the Fuzzball operator.
# kubectl edit fuzzballorchestrate fuzzball-orchestrateOnce the deployment is complete, you can confirm that Fuzzball Orchestrate is installed correctly by inspecting that expected objects have been created. (Note that you may have more or fewer replicas of some pods.)
Look at the newly started pods:
# kubectl get pods -n fuzzball
NAME READY STATUS RESTARTS AGE
fuzzball-admin-0 1/1 Running 0 8m49s
fuzzball-admin-ui-548f599b68-9j9vc 1/1 Running 0 8m29s
fuzzball-agent-848db9f89c-lmdmq 1/1 Running 0 7m19s
fuzzball-audit-8dd47456-wf2qq 1/1 Running 0 8m39s
fuzzball-auth-spicedb-77d7dd9957-jz2lr 1/1 Running 0 8m47s
fuzzball-cluster-admin-599c87b794-4txmh 1/1 Running 0 7m54s
fuzzball-jetstream-0 1/1 Running 0 7m20s
fuzzball-jetstream-1 1/1 Running 0 7m20s
fuzzball-jetstream-2 1/1 Running 0 7m20s
fuzzball-load-default-catalog-sv2jg 0/1 Completed 0 3m35s
fuzzball-openapi-65c78cc7cb-wdmmw 1/1 Running 0 8m41s
fuzzball-orchestrator-779cd894d6-h9x9b 1/1 Running 0 5m17s
fuzzball-storage-6597d744b4-zz5n5 1/1 Running 0 5m15s
fuzzball-substrate-bridge-6cc6f74859-gtc2h 1/1 Running 0 6m9s
fuzzball-sync-0 1/1 Running 0 4m20s
fuzzball-ui-7d664769bb-tkqhl 1/1 Running 0 8m28s
fuzzball-workflow-7d8cd4cf6-8rt5t 1/1 Running 0 4m48sCheck for any pods that are not in the running state:
# kubectl get pods -A --field-selector status.phase!=Running,status.phase!=Succeeded
No resources foundCheck that ingress is configured and ready.
# kubectl get ingress -A
NAMESPACE NAME CLASS HOSTS ADDRESS PORTS AGE
fuzzball fuzzball-admin-ui kong ui-admin.10.1.96.99.nip.io 10.1.96.99 80, 443 8m16s
fuzzball fuzzball-config kong api.10.1.96.99.nip.io 10.1.96.99 80, 443 9m35s
fuzzball fuzzball-openapi kong api.10.1.96.99.nip.io 10.1.96.99 80, 443 9m11s
fuzzball fuzzball-substrate-bridge kong substrate-bridge.10.1.96.99.nip.io 10.1.96.99 80, 443 6m14s
fuzzball fuzzball-ui kong ui.10.1.96.99.nip.io 10.1.96.99 80, 443 8m10s
identity identity-keycloakx <none> auth.10.1.96.99.nip.io 10.1.96.99 80, 443 10mConfirm 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-52d62829-32b5-41e7-90c0-11d9ddfcfccb 8Gi RWO longhorn <unset> 12m
fuzzball-system fuzzball-operator-controller-manager Bound pvc-dfc2f2c3-8df0-4ec8-8503-2d927b13402e 20Gi RWO longhorn <unset> 22m
fuzzball audit-cold-storage Bound pvc-7bcd7abc-0d11-419b-b453-3a6bddccbb67 1Gi RWO longhorn <unset> 10m
fuzzball fuzzball-substrate-logs Bound pvc-e282b15b-6ab2-4b64-8a39-d6c58a382835 5Gi RWO longhorn <unset> 7m39s
fuzzball jetstream-data-fuzzball-jetstream-0 Bound pvc-ad6481d4-d469-4343-a8a3-9b2117e53ab4 10Gi RWO longhorn <unset> 8m47s
fuzzball jetstream-data-fuzzball-jetstream-1 Bound pvc-4cb91882-d556-4ffc-a931-76ed45f8761a 10Gi RWO longhorn <unset> 8m47s
fuzzball jetstream-data-fuzzball-jetstream-2 Bound pvc-a161913d-6629-4b36-b109-a83943041fba 10Gi RWO longhorn <unset> 8m47s
fuzzball substrate-shared-config-fuzzball-sync-0 Bound pvc-2953abd9-5e29-45d5-b731-8dcf935a76d4 5Gi RWX nfs-client <unset> 5m47s