System Management
Refer to the following sections to troubleshoot errors encountered while performing system administration tasks in Palette and Palette VerteX. It also includes troubleshooting for tenant administrators when the underlying issue relates to the system.
Scenario - Image Pull Secret Not Propagated to Workload Clusters
Because Spectro Cloud publishes security-hardened images to authenticated OCI registries, the clusters need the image pull secret to pull images.
Spectro Cloud automatically propagates the pull secret for you, but this propagation can fail. For example, propagation can fail if the management cluster does not have the pull secret or if a workload cluster loses connectivity to the management plane. Affected clusters cannot pull security-hardened images from Spectro Cloud's OCI registries until they have the pull secret.
Debug steps vary depending on your product.
Debug Steps for Palette SaaS
-
Log in to Palette as a tenant administrator.
-
From the left Main Menu, select Security, then select Hardened Images.
-
For each cluster in the list, use the failure reason to help determine why the cluster did not receive the secret so you can take corrective action.
- For connectivity issues, the secret propagates properly when you restore connectivity.
- If the Pause Agent Upgrades feature is excluding the cluster from Palette agent upgrades, the cluster does not have the update it needs to receive the secret. Toggle off Pause Agent Upgrades to allow the secret to propagate.
- Local propagation failures occur when the secret cannot be configured within the cluster due to conditions in the cluster itself. For example, the secret might reach the cluster, but fail to be properly configured because of API server throttling or lack of permissions for the service account used by Palette cluster agents.
Debug Steps for Self-Hosted Palette and VerteX
-
Log in to the Palette or Palette VerteX system console.
-
From the left Main Menu, select Administration.
-
Select the Hardened Images tab.
-
Do one of the following:
-
If none of the tenants received the secret, use the system console to make sure that the image pull secret has been configured at the system level. Refer to Configure Image Pull Secret for Self-Hosted Palette or Configure Image Pull Secret for VerteX.
If you do not have access to the system console and need to immediately configure the image pull secret so it can be propagated, refer to Breakglass scenario: Manually create secret in management plane.
-
If some of the tenants received the secret, but others did not, record every tenant that reports one or more clusters in the Propagation Failed state and proceed to the next step.
-
-
To investigate why some clusters are receiving the pull secret but others are not, log in to the Palette UI as a tenant administrator for one of the tenants that you recorded in Step 4.
-
From the left Main Menu, select Security, then select Hardened Images.
-
For each cluster in the list, use the failure reason to help determine why the cluster did not receive the secret so you can take corrective action.
- For connectivity issues, the secret propagates properly when you restore connectivity.
- If the Pause Agent Upgrades feature is excluding the cluster from Palette agent upgrades, the cluster does not have the update it needs to receive the secret. Toggle off Pause Agent Upgrades to allow the secret to propagate.
- Local propagation failures occur when the secret cannot be configured within the cluster due to conditions in the cluster itself. For example, the secret might reach the cluster, but fail to be properly configured because of API server throttling or lack of permissions for the service account used by Palette cluster agents.
-
Repeat Steps 5 through 7 for each remaining tenant you recorded in Step 4.
Break-glass scenario: Manually create secret in management plane
If the image pull secret is not properly configured for the deployment and you cannot access the system console to add it, you can use the terminal to manually create the secret in the management cluster so that it can be propagated to the workload clusters.
-
Open a terminal session in an environment that has network access to the management cluster. Set the
KUBECONFIGenvironment variable to the file path of that cluster's kubeconfig.export KUBECONFIG=<path-to-kubeconfig> -
Create a shell variable set to the base64-encoded pull secret provided by your Spectro Cloud support representative.
export DOCKER_CONFIG_JSON='<base64-encoded-string-provided>' -
Use the following command to create secrets in the management cluster.
kubectl apply --filename - <<EOF
apiVersion: v1
kind: Secret
metadata:
name: spectro-image-pull-secret
namespace: <namespace>
type: kubernetes.io/dockerconfigjson
data:
.dockerconfigjson: ${DOCKER_CONFIG_JSON}
EOFYou must create the secret in the following namespaces:
hubble-systemjet-systemui-systemingress-traefikcp-systemkube-system
For example, to create the secret in the
hubble-systemnamespace of the management cluster, run the following.kubectl apply --filename - <<EOF
apiVersion: v1
kind: Secret
metadata:
name: spectro-image-pull-secret
namespace: hubble-system
type: kubernetes.io/dockerconfigjson
data:
.dockerconfigjson: ${DOCKER_CONFIG_JSON}
EOFExample outputsecret/spectro-image-pull-secret created -
When you are done creating the secret in all of the required namespaces, run the following command to verify that the secret is present in each of the namespaces.
for ns in hubble-system jet-system ui-system ingress-traefik cp-system kube-system; do
kubectl get secret spectro-image-pull-secret --namespace $ns --output name
doneExample outputsecret/spectro-image-pull-secret
secret/spectro-image-pull-secret
secret/spectro-image-pull-secret
secret/spectro-image-pull-secret
secret/spectro-image-pull-secret
secret/spectro-image-pull-secret