cluster-api-provider-aws icon indicating copy to clipboard operation
cluster-api-provider-aws copied to clipboard

Machine does not have a corresponding Node yet (Machine.status.nodeRef not set)

Open abrekhov opened this issue 5 months ago • 5 comments
trafficstars

/kind bug

What steps did you take and what happened: i applied the manifests

apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
kind: AWSClusterStaticIdentity
metadata:
  name: aws-micro-kube-identity
  namespace: aws-micro-kube
spec:
  allowedNamespaces:
    list:
      - aws-micro-kube
  secretRef: aws-credentials
---
apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
kind: AWSCluster
metadata:
  name: aws-micro-kube
  namespace: aws-micro-kube
spec:
  region: eu-central-1
  sshKeyName: aws-micro-kube-ssh
  identityRef:
    kind: AWSClusterStaticIdentity
    name: aws-micro-kube-identity
  controlPlaneLoadBalancer:
    loadBalancerType: nlb
    scheme: internal
  network:
    vpc:
      id: vpc-hashhh
      availabilityZoneUsageLimit: 2
      availabilityZoneSelection: Random
    subnets:
      - id: subnet-hashhhh
        availabilityZone: eu-central-1a
        isPublic: false
      - id: subnet-hashhh
        availabilityZone: eu-central-1b
        isPublic: false
---
apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
kind: AWSMachineTemplate
metadata:
  name: aws-micro-kube-control-plane
  namespace: aws-micro-kube
spec:
  template:
    spec:
      instanceType: m6i.xlarge
      iamInstanceProfile: "control-plane.cluster-api-provider-aws.sigs.k8s.io"
      sshKeyName: aws-micro-kube-ssh
      cloudInit:
        insecureSkipSecretsManager: true
---
apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
kind: AWSMachineTemplate
metadata:
  name: aws-micro-kube-md-0
  namespace: aws-micro-kube
spec:
  template:
    spec:
      instanceType: c7i.8xlarge
      iamInstanceProfile: "nodes.cluster-api-provider-aws.sigs.k8s.io"
      sshKeyName: aws-micro-kube-ssh
      cloudInit:
        insecureSkipSecretsManager: true
---
apiVersion: controlplane.cluster.x-k8s.io/v1beta1
kind: KubeadmControlPlane
metadata:
  name: aws-micro-kube-control-plane
  namespace: aws-micro-kube
spec:
  replicas: 3
  version: v1.30.8 # to fetch available by default clusterawsadm ami list
  rolloutBefore:
    certificatesExpiryDays: 364  # Trigger rollout if certificates expire within 21 days
  machineTemplate:
    infrastructureRef:
      apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
      kind: AWSMachineTemplate
      name: aws-micro-kube-control-plane
  kubeadmConfigSpec:
    initConfiguration:
      nodeRegistration:
        name: '{{ ds.meta_data.local_hostname.split(".")[0] }}'
    joinConfiguration:
      nodeRegistration:
        name: '{{ ds.meta_data.local_hostname.split(".")[0] }}'
---
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
kind: KubeadmConfigTemplate
metadata:
  name: aws-micro-kube-md-0
  namespace: aws-micro-kube
spec:
  template:
    spec:
      joinConfiguration:
        nodeRegistration:
          name: '{{ ds.meta_data.local_hostname }}'
---
apiVersion: cluster.x-k8s.io/v1beta1
kind: Cluster
metadata:
  name: aws-micro-kube
  namespace: aws-micro-kube
spec:
  clusterNetwork:
    pods:
      cidrBlocks: ["192.168.0.0/16"]
    services:
      cidrBlocks: ["10.96.0.0/12"]
  controlPlaneRef:
    apiVersion: controlplane.cluster.x-k8s.io/v1beta1
    kind: KubeadmControlPlane
    name: aws-micro-kube-control-plane
  infrastructureRef:
    apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
    kind: AWSCluster
    name: aws-micro-kube
---
apiVersion: cluster.x-k8s.io/v1beta1
kind: MachineDeployment
metadata:
  name: aws-micro-kube-md-0
  namespace: aws-micro-kube
spec:
  clusterName: aws-micro-kube
  replicas: 6
  selector:
    matchLabels:
      cluster.x-k8s.io/deployment-name: aws-micro-kube-md-0
  template:
    metadata:
      labels:
        cluster.x-k8s.io/deployment-name: aws-micro-kube-md-0
    spec:
      clusterName: aws-micro-kube
      bootstrap:
        configRef:
          apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
          kind: KubeadmConfigTemplate
          name: aws-micro-kube-md-0
      infrastructureRef:
        apiVersion: infrastructure.cluster.x-k8s.io/v1beta2
        kind: AWSMachineTemplate
        name: aws-micro-kube-md-0
      version: v1.30.8
    
  • One control plane node is up ✅
  • Worker nodes is up ✅
  • internal NLB is up ✅
  • But it cannot scale to 3 control plane node ⚠

What did you expect to happen: KubeadmControlProvider should spin 3 ec2 for master.

Anything else you would like to add: capi logs:

I0522 23:13:52.868524       1 controller.go:362] "Reconcile KubeadmControlPlane" controller="kubeadmcontrolplane" controllerGroup="controlplane.cluster.x-k8s.io" controllerKind="KubeadmControlPlane" KubeadmControlPlane="aws-micro-kube/aws-micro-kube-control-plane" namespace="aws-micro-kube" name="aws-micro-kube-control-plane" reconcileID="b5ad5be2-b9f4-4507-9059-9266cc6299cb" Cluster="aws-micro-kube/aws-micro-kube"
I0522 23:13:52.871736       1 controller.go:490] "Scaling up control plane" controller="kubeadmcontrolplane" controllerGroup="controlplane.cluster.x-k8s.io" controllerKind="KubeadmControlPlane" KubeadmControlPlane="aws-micro-kube/aws-micro-kube-control-plane" namespace="aws-micro-kube" name="aws-micro-kube-control-plane" reconcileID="b5ad5be2-b9f4-4507-9059-9266cc6299cb" Cluster="aws-micro-kube/aws-micro-kube" desired=3 existing=1
I0522 23:13:52.871771       1 scale.go:257] "Waiting for control plane to pass preflight checks" controller="kubeadmcontrolplane" controllerGroup="controlplane.cluster.x-k8s.io" controllerKind="KubeadmControlPlane" KubeadmControlPlane="aws-micro-kube/aws-micro-kube-control-plane" namespace="aws-micro-kube" name="aws-micro-kube-control-plane" reconcileID="b5ad5be2-b9f4-4507-9059-9266cc6299cb" Cluster="aws-micro-kube/aws-micro-kube" failures="Machine aws-micro-kube-control-plane-gfdfw does not have a corresponding Node yet (Machine.status.nodeRef not set)"
I0522 23:13:52.871897       1 recorder.go:104] "Waiting for control plane to pass preflight checks to continue reconciliation: Machine aws-micro-kube-control-plane-gfdfw does not have a corresponding Node yet (Machine.status.nodeRef not set)" logger="events" type="Warning" object={"kind":"KubeadmControlPlane","namespace":"aws-micro-kube","name":"aws-micro-kube-control-plane","uid":"dff770f8-c317-40c0-b2c9-83dfc007c1a8","apiVersion":"controlplane.cluster.x-k8s.io/v1beta1","resourceVersion":"9620958336"} reason="ControlPlaneUnhealthy"
kgno
NAME                       STATUS   ROLES           AGE   VERSION
ip-10-255-51-123   Ready    <none>          8h    v1.30.8
ip-10-255-51-191           Ready    control-plane   8h    v1.30.8
ip-10-255-51-200   Ready    <none>          8h    v1.30.8
ip-10-255-51-220   Ready    <none>          8h    v1.30.8
ip-10-255-51-247   Ready    <none>          8h    v1.30.8
ip-10-255-51-67    Ready    <none>          8h    v1.30.8
ip-10-255-51-93    Ready    <none>          8h    v1.30.8

Environment:

  • Cluster-api-provider-aws version: v2.8.2
  • Kubernetes version: (use kubectl version): 1.30.8
  • OS (e.g. from /etc/os-release): Ubuntu 24.04.2 LTS

abrekhov avatar May 22 '25 23:05 abrekhov