vpctl cluster command
Validate that your Kubernetes cluster meets the deployment prerequisites before you deploy.
읽는 시간 4분최근 업데이트: 8일 전
Use the command group to validate your Kubernetes cluster before you deploy.
clusterCheck the cluster prerequisites
The command validates your manifest, and then verifies that the cluster your current kubeconfig context points at meets the deployment prerequisites.
cluster checkvpctl cluster check
The command requires a manifest, because it reads the target namespace, the storage class names, and the deployment method from it. It doesn't require a pulled release, so you can run it before you download the release package. For more information, refer to Global flags.
The command is read-only by default: it runs only commands.
kubectl getCluster check reference
The following table lists each check the command runs and the condition it verifies.
Check | What it verifies |
|---|---|
| The |
| The current kubeconfig context can reach the Kubernetes API. |
| The cluster runs Kubernetes 1.33 or later. |
| At least three nodes you can schedule, or one node if the manifest sets |
| A node pool labeled |
| A node pool labeled |
| The default storage class your manifest names exists, or the cluster has a class marked as default. |
| The |
| The target namespace already exists. The deployment doesn't create it. |
| The |
| The ArgoCD |
| An ArgoCD application controller pod is running and ready. This check runs only for the ArgoCD deployment format. |
| The nodes report IPv6 addresses. This check runs only if the manifest sets |
If a node pool has no running node, the command looks for a matching Karpenter instead. Clusters that scale transformation capacity from zero therefore pass the node pool checks even when no node is running. If Karpenter isn't installed, or your credentials can't read its resources, the command ignores the lookup, because Karpenter is optional.
NodePoolRead the results
Each check reports one of these statuses:
Symbol | Status | Effect on the exit code |
|---|---|---|
| Pass | None. |
| Warning | None. |
| Failure | The command exits with a nonzero status. |
| Skipped | None. |
Failed and warning checks also print a remediation hint. Because the command exits with a nonzero status when any check fails, you can use it to gate a CI pipeline before the deployment steps.
The output looks like the following example:
Context: my-cluster (https://kubernetes.example.com)Manifest: platform onprem, namespace asset-solutions✔ kubectl available client v1.34.1✔ cluster reachable server v1.34.1✔ kubernetes version 1.34 ≥ 1.33 required✔ general worker nodes 3 schedulable node(s) (need ≥ 3): node-1, node-2, node-3✔ transformations pool 2 node(s) labeled aks-node-pool=argocpu: node-4, node-5✔ large transformations pool no node at rest; provisioned on demand by Karpenter NodePool transformations-large (taint declared)✔ default storage class gp3 exists (named in manifest)✔ rwx storage class efs-sc exists (RWX capability verified only with --probe-storage)✔ namespace asset-solutions exists✔ metrics api v1beta1.metrics.k8s.io available✔ argocd application crd applications.argoproj.io installed✔ argocd controller pod/argocd-application-controller-0 is Ready- node ipv6 addresses manifest ipFamily is ipv4 (default)Summary: 12 passed, 0 warning, 0 failed, 1 skipped
Parameters for cluster check
The command accepts the following parameters:
cluster checkParameter | Description | Default |
|---|---|---|
| Provisions and deletes a temporary 1-GiB test volume for each configured storage class to verify that provisioning works. Mutates the cluster. | |
| Time to wait for a probe volume to bind. | |
| Prints the command plan without executing anything. | |
| Deployment format to validate for: | |
Verify that storage provisioning works
Add to verify that each configured storage class can provision a volume, including support:
--probe-storageReadWriteManyvpctl cluster check --probe-storage
This is the only option that changes anything in your cluster. For each configured storage class, the command creates a temporary 1-GiB labeled in the target namespace, waits for it to bind, and then deletes it. If a probe fails to bind, the command reads the events in that namespace to report why.
PersistentVolumeClaimvpctl.unity.com/cluster-check=trueThe command skips, rather than probes, storage classes that use , because binding such a class requires a scheduled pod. Skipped checks don't affect the exit code.
volumeBindingMode: WaitForFirstConsumerPreview the commands without contacting the cluster
Add to print every command that the checks will run. The command executes nothing and doesn't contact the cluster, so you can use for a security review:
--dry-runkubectl--dry-runvpctl cluster check --dry-run
Select the deployment format
By default, the command runs the ArgoCD checks if your manifest contains a block, and the Helm checks otherwise. To override that inference, pass :
deployment.argocd--formatvpctl cluster check --format argocd