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
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