Scenario 3: Platform Create Command — No Regression

ObjectiveVerify hcp create cluster aws creates real AWS infrastructure and Kubernetes resources without regression after adding ctrl.SetLogger()
Maps toNo regression in the primary cluster creation path
EvidenceReal AWS HostedCluster created using the fixed hcp binary — VPC, subnets, IAM roles, DNS zones, and Kubernetes resources all provisioned successfully with zero warnings

Verification Steps

StepCheckResultEvidence
1 Run hcp create cluster aws with real credentials against dev management cluster PASS 52 log lines of structured JSON; infrastructure and Kubernetes resources created successfully
2 Verify AWS infrastructure provisioned (VPC, subnets, NAT gateway, route tables, S3 VPC endpoint) PASS VPC, 2 subnets, NAT gateway, elastic IP, route tables, S3 VPC endpoint all created
3 Verify DNS zones created (public and private) PASS Found existing public zone; created 2 private zones
4 Verify IAM roles and instance profile created (OIDC provider + 8 roles) PASS OIDC provider + 8 roles (CPO, cloud-network, ingress, image-registry, EBS CSI, cloud-controller, node-pool, worker) + instance profile
5 Verify Kubernetes resources applied (Namespace, Secrets, HostedCluster, NodePool) PASS 6 Kubernetes resources applied: Namespace, 3 Secrets, HostedCluster, NodePool
6 Confirm zero log.SetLogger warnings in output PASS grep -c "SetLogger" /tmp/hcp-create-aws-78310.log returns 0

Evidence

Command Executed

$ KUBECONFIG=/Users/brcox/aws_dev_kubeconfig /tmp/hcp-after create cluster aws \
    --name test-78310-verify \
    --base-domain brcox.hypershift.devcluster.openshift.com \
    --sts-creds ~/.aws/sts/sts-creds.json \
    --role-arn arn:aws:iam::<REDACTED>:role/brcox-hypershift-cli-role \
    --pull-secret ~/all-the-pull-secrets.json \
    --region us-east-1 \
    --node-count 2 \
    --release-image quay.io/openshift-release-dev/ocp-release:4.18.0-ec.3-x86_64

Full Output (52 lines — all structured JSON, zero warnings)

{"level":"info","ts":"2026-07-13T09:39:12-04:00","msg":"Creating infrastructure","id":"test-78310-verify-2ftlv"}
{"level":"info","ts":"2026-07-13T09:39:12-04:00","msg":"Using zone","zone":"us-east-1a"}
{"level":"info","ts":"2026-07-13T09:39:13-04:00","msg":"Created VPC","id":"vpc-06eb0a75842e89262"}
{"level":"info","ts":"2026-07-13T09:39:13-04:00","msg":"Enabled DNS support on VPC","id":"vpc-06eb0a75842e89262"}
{"level":"info","ts":"2026-07-13T09:39:13-04:00","msg":"Enabled DNS hostnames on VPC","id":"vpc-06eb0a75842e89262"}
{"level":"info","ts":"2026-07-13T09:39:13-04:00","msg":"Created DHCP options","id":"dopt-078b4e3f9ec1a8071"}
{"level":"info","ts":"2026-07-13T09:39:14-04:00","msg":"Associated DHCP options with VPC","vpc":"vpc-06eb0a75842e89262","dhcp options":"dopt-078b4e3f9ec1a8071"}
{"level":"info","ts":"2026-07-13T09:39:14-04:00","msg":"Created internet gateway","id":"igw-0790ee54097cc9a64"}
{"level":"info","ts":"2026-07-13T09:39:14-04:00","msg":"Attached internet gateway to VPC","internet gateway":"igw-0790ee54097cc9a64","vpc":"vpc-06eb0a75842e89262"}
{"level":"info","ts":"2026-07-13T09:39:15-04:00","msg":"Created subnet","name":"test-78310-verify-2ftlv-private-us-east-1a","id":"subnet-0092b360c80fb484d"}
{"level":"info","ts":"2026-07-13T09:39:16-04:00","msg":"Created subnet","name":"test-78310-verify-2ftlv-public-us-east-1a","id":"subnet-0dd43ca830b4ba948"}
{"level":"info","ts":"2026-07-13T09:39:18-04:00","msg":"Created elastic IP for NAT gateway","id":"eipalloc-040150fc79845f5e3"}
{"level":"info","ts":"2026-07-13T09:39:18-04:00","msg":"Created NAT gateway","id":"nat-0faba746bf46dbd40"}
{"level":"info","ts":"2026-07-13T09:39:19-04:00","msg":"Created route table","name":"test-78310-verify-2ftlv-private-us-east-1a","id":"rtb-00e87534f0f7d0506"}
{"level":"info","ts":"2026-07-13T09:39:22-04:00","msg":"Created route to NAT gateway","route table":"rtb-00e87534f0f7d0506","nat gateway":"nat-0faba746bf46dbd40"}
{"level":"info","ts":"2026-07-13T09:39:22-04:00","msg":"Associated subnet with route table","route table":"rtb-00e87534f0f7d0506","subnet":"subnet-0092b360c80fb484d"}
{"level":"info","ts":"2026-07-13T09:39:23-04:00","msg":"Created route table","name":"test-78310-verify-2ftlv-public","id":"rtb-05b190fc6649a07b4"}
{"level":"info","ts":"2026-07-13T09:39:23-04:00","msg":"Set main VPC route table","route table":"rtb-05b190fc6649a07b4","vpc":"vpc-06eb0a75842e89262"}
{"level":"info","ts":"2026-07-13T09:39:23-04:00","msg":"Created route to internet gateway","route table":"rtb-05b190fc6649a07b4","internet gateway":"igw-0790ee54097cc9a64"}
{"level":"info","ts":"2026-07-13T09:39:24-04:00","msg":"Associated route table with subnet","route table":"rtb-05b190fc6649a07b4","subnet":"subnet-0dd43ca830b4ba948"}
{"level":"info","ts":"2026-07-13T09:39:25-04:00","msg":"Created s3 VPC endpoint","id":"vpce-0ee9e8515340b0075"}
{"level":"info","ts":"2026-07-13T09:39:25-04:00","msg":"Found existing public zone","name":"brcox.hypershift.devcluster.openshift.com","id":"Z00419461WMM25ZHJKC5F"}
{"level":"info","ts":"2026-07-13T09:39:25-04:00","msg":"Created private zone","name":"test-78310-verify.brcox.hypershift.devcluster.openshift.com","id":"Z06901861BIWGAT4HN5RM"}
{"level":"info","ts":"2026-07-13T09:39:26-04:00","msg":"Created private zone","name":"test-78310-verify.hypershift.local","id":"Z013122129QDNAR7VZYNY"}
{"level":"info","ts":"2026-07-13T09:39:26-04:00","msg":"Detected Issuer URL","issuer":"https://<REDACTED-BUCKET>.s3.us-east-1.amazonaws.com/test-78310-verify-2ftlv"}
{"level":"info","ts":"2026-07-13T09:39:27-04:00","msg":"Created OIDC provider","provider":"arn:aws:iam::<REDACTED>:oidc-provider/<REDACTED-BUCKET>.s3.us-east-1.amazonaws.com/test-78310-verify-2ftlv"}
{"level":"info","ts":"2026-07-13T09:39:27-04:00","msg":"Created role","name":"test-78310-verify-2ftlv-control-plane-operator"}
{"level":"info","ts":"2026-07-13T09:39:27-04:00","msg":"Added/Updated role policy","name":"test-78310-verify-2ftlv-control-plane-operator"}
{"level":"info","ts":"2026-07-13T09:39:27-04:00","msg":"Created role","name":"test-78310-verify-2ftlv-cloud-network-config-controller"}
{"level":"info","ts":"2026-07-13T09:39:27-04:00","msg":"Added/Updated role policy","name":"test-78310-verify-2ftlv-cloud-network-config-controller"}
{"level":"info","ts":"2026-07-13T09:39:27-04:00","msg":"Created role","name":"test-78310-verify-2ftlv-openshift-ingress"}
{"level":"info","ts":"2026-07-13T09:39:27-04:00","msg":"Added/Updated role policy","name":"test-78310-verify-2ftlv-openshift-ingress"}
{"level":"info","ts":"2026-07-13T09:39:27-04:00","msg":"Created role","name":"test-78310-verify-2ftlv-openshift-image-registry"}
{"level":"info","ts":"2026-07-13T09:39:27-04:00","msg":"Added/Updated role policy","name":"test-78310-verify-2ftlv-openshift-image-registry"}
{"level":"info","ts":"2026-07-13T09:39:28-04:00","msg":"Created role","name":"test-78310-verify-2ftlv-aws-ebs-csi-driver-controller"}
{"level":"info","ts":"2026-07-13T09:39:28-04:00","msg":"Added/Updated role policy","name":"test-78310-verify-2ftlv-aws-ebs-csi-driver-controller"}
{"level":"info","ts":"2026-07-13T09:39:28-04:00","msg":"Created role","name":"test-78310-verify-2ftlv-cloud-controller"}
{"level":"info","ts":"2026-07-13T09:39:28-04:00","msg":"Added/Updated role policy","name":"test-78310-verify-2ftlv-cloud-controller"}
{"level":"info","ts":"2026-07-13T09:39:28-04:00","msg":"Created role","name":"test-78310-verify-2ftlv-node-pool"}
{"level":"info","ts":"2026-07-13T09:39:28-04:00","msg":"Added/Updated role policy","name":"test-78310-verify-2ftlv-node-pool"}
{"level":"info","ts":"2026-07-13T09:39:28-04:00","msg":"Created role","name":"test-78310-verify-2ftlv-worker-role"}
{"level":"info","ts":"2026-07-13T09:39:28-04:00","msg":"Created instance profile","name":"test-78310-verify-2ftlv-worker"}
{"level":"info","ts":"2026-07-13T09:39:28-04:00","msg":"Added role to instance profile","role":"test-78310-verify-2ftlv-worker-role","profile":"test-78310-verify-2ftlv-worker"}
{"level":"info","ts":"2026-07-13T09:39:29-04:00","msg":"Created role policy","name":"test-78310-verify-2ftlv-worker-policy"}
{"level":"info","ts":"2026-07-13T09:39:29-04:00","msg":"Created IAM profile","name":"test-78310-verify-2ftlv-worker","region":"us-east-1"}
{"level":"info","ts":"2026-07-13T09:39:29-04:00","msg":"Applied Kube resource","kind":"Namespace","namespace":"","name":"clusters"}
{"level":"info","ts":"2026-07-13T09:39:29-04:00","msg":"Applied Kube resource","kind":"Secret","namespace":"clusters","name":"test-78310-verify-pull-secret"}
{"level":"info","ts":"2026-07-13T09:39:30-04:00","msg":"Applied Kube resource","kind":"Secret","namespace":"clusters","name":"test-78310-verify-ssh-key"}
{"level":"info","ts":"2026-07-13T09:39:30-04:00","msg":"Applied Kube resource","kind":"Secret","namespace":"clusters","name":"test-78310-verify-etcd-encryption-key"}
{"level":"info","ts":"2026-07-13T09:39:30-04:00","msg":"Applied Kube resource","kind":"","namespace":"clusters","name":"test-78310-verify"}
{"level":"info","ts":"2026-07-13T09:39:30-04:00","msg":"Applied Kube resource","kind":"NodePool","namespace":"clusters","name":"test-78310-verify-us-east-1a"}

Breakdown of Resources Created

CategoryResourcesCount
NetworkingVPC, DHCP options, internet gateway, 2 subnets (public + private), elastic IP, NAT gateway, 2 route tables, S3 VPC endpoint10
DNSFound existing public zone, created 2 private zones2 created
IAMOIDC provider, 8 roles with policies, 1 instance profile10
KubernetesNamespace, 3 Secrets (pull-secret, ssh-key, etcd-encryption-key), HostedCluster, NodePool6
Total resources provisioned28

« Scenario 2: Structured JSON Logging Scenario 4: Destroy Command »