KOF Verification#
Finally, verify that KOF installed properly.
Management Cluster Verification#
For KOF v1.8.0+, the umbrella chart uses FluxCD to orchestrate component installation. Verify the management cluster first:
-
Wait for all HelmReleases to be ready:
kubectl wait --for=condition=Ready helmreleases --all -n kof --timeout=10m kubectl get helmreleases -n kofAll HelmReleases should show
Ready=True. If any are not ready, check their status:kubectl describe helmrelease -n kof <helmrelease-name> -
Verify all pods are running in the
kofnamespace:kubectl get pods -n kof -
Wait for ServiceTemplates to be valid:
kubectl wait --for=jsonpath={.status.valid}=true svctmpl -A --all kubectl get svctmpl -AAll ServiceTemplates should show
VALID=true.
Regional and Child Cluster Verification#
-
Get kubeconfigs of the regional and child clusters:
kubectl get secret -n kcm-system $REGIONAL_CLUSTER_NAME-kubeconfig \ -o=jsonpath={.data.value} | base64 -d > regional-kubeconfig kubectl get secret -n kcm-system $CHILD_CLUSTER_NAME-kubeconfig \ -o=jsonpath={.data.value} | base64 -d > child-kubeconfigIf the child cluster is created in KCM Region, run:
KUBECONFIG=regional-kubeconfig kubectl get secret \ -n kcm-system $CHILD_CLUSTER_NAME-kubeconfig \ -o=jsonpath={.data.value} | base64 -d > child-kubeconfig -
Wait until the value of
HELMCHARTSandPOLICYREFSchanges fromProvisioningtoProvisioned:kubectl get clustersummaries -A -o wide KUBECONFIG=regional-kubeconfig kubectl get clustersummaries -A -o wideIf you see the
Failed/Provisioningloop, check status and logs:kubectl get clustersummaries -A -o yaml \ | yq '.items[].status.featureSummaries[] | select(.status != "Provisioned")' kubectl logs -n kof deploy/kof-mothership-kof-operator | less kubectl logs -n projectsveltos deploy/addon-controller | less -
Wait for all pods in the regional and child clusters to show as
Runningin the namespaceskof, kube-system, projectsveltos:KUBECONFIG=regional-kubeconfig kubectl get pod -A KUBECONFIG=child-kubeconfig kubectl get pod -A -
Wait until the value of
READYchanges toTruefor all certificates in each cluster:KUBECONFIG=regional-kubeconfig kubectl get cert -A KUBECONFIG=child-kubeconfig kubectl get cert -A
Manual DNS config#
If you've opted out of DNS auto-config and Istio, you will need to do the following:
-
Get the
EXTERNAL-IPofingress-nginx:It should look likeKUBECONFIG=regional-kubeconfig kubectl get svc \ -n kof ingress-nginx-controllerREDACTED.us-east-2.elb.amazonaws.com -
Create this DNS record of type
A, pointing to thatEXTERNAL-IP:Only if Grafana is installed and enabled, do the same for:echo vmauth.$REGIONAL_DOMAINecho grafana.$REGIONAL_DOMAIN
KOF UI#
You can use the KOF UI to find and debug errors or misconfigurations. Check the Access to the KOF UI section to learn how to access it and read about its features.