apiVersion: cluster.x-k8s.io/v1beta1 kind: Cluster metadata: labels: cluster.x-k8s.io/cluster-name: test name: test namespace: eksa-system spec: clusterNetwork: pods: cidrBlocks: [192.168.0.0/16] services: cidrBlocks: [10.96.0.0/12] controlPlaneEndpoint: host: 1.2.3.4 port: 6443 controlPlaneRef: apiVersion: controlplane.cluster.x-k8s.io/v1beta1 kind: KubeadmControlPlane name: test infrastructureRef: apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 kind: TinkerbellCluster name: test --- apiVersion: controlplane.cluster.x-k8s.io/v1beta1 kind: KubeadmControlPlane metadata: name: test namespace: eksa-system spec: kubeadmConfigSpec: clusterConfiguration: imageRepository: public.ecr.aws/eks-distro/kubernetes etcd: local: imageRepository: public.ecr.aws/eks-distro/etcd-io imageTag: v3.4.16-eks-1-21-4 dns: imageRepository: public.ecr.aws/eks-distro/coredns imageTag: v1.8.3-eks-1-21-4 pause: imageRepository: public.ecr.aws/eks-distro/kubernetes/pause imageTag: v1.21.2-eks-1-21-4 bottlerocketBootstrap: imageRepository: public.ecr.aws/l0g8r8j6/bottlerocket-bootstrap imageTag: v1-21-4-eks-a-v0.0.0-dev-build.158 bottlerocket: kubernetes: allowedUnsafeSysctls: - net.core.somaxconn - net.ipv4.ip_local_port_range clusterDNSIPs: - 1.2.3.4 - 4.3.2.1 maxPods: 50 apiServer: extraArgs: feature-gates: ServiceLoadBalancerClass=true controllerManager: extraVolumes: - hostPath: /var/lib/kubeadm/controller-manager.conf mountPath: /etc/kubernetes/controller-manager.conf name: kubeconfig pathType: File readOnly: true scheduler: extraVolumes: - hostPath: /var/lib/kubeadm/scheduler.conf mountPath: /etc/kubernetes/scheduler.conf name: kubeconfig pathType: File readOnly: true certificatesDir: /var/lib/kubeadm/pki initConfiguration: nodeRegistration: kubeletExtraArgs: provider-id: PROVIDER_ID read-only-port: "0" anonymous-auth: "false" tls-cipher-suites: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 joinConfiguration: pause: imageRepository: public.ecr.aws/eks-distro/kubernetes/pause imageTag: v1.21.2-eks-1-21-4 bottlerocketBootstrap: imageRepository: public.ecr.aws/l0g8r8j6/bottlerocket-bootstrap imageTag: v1-21-4-eks-a-v0.0.0-dev-build.158 bottlerocket: kubernetes: allowedUnsafeSysctls: - net.core.somaxconn - net.ipv4.ip_local_port_range clusterDNSIPs: - 1.2.3.4 - 4.3.2.1 maxPods: 50 nodeRegistration: ignorePreflightErrors: - DirAvailable--etc-kubernetes-manifests kubeletExtraArgs: provider-id: PROVIDER_ID read-only-port: "0" anonymous-auth: "false" tls-cipher-suites: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 files: - content: | apiVersion: v1 kind: Pod metadata: creationTimestamp: null name: kube-vip namespace: kube-system spec: containers: - args: - manager env: - name: vip_arp value: "true" - name: port value: "6443" - name: vip_cidr value: "32" - name: cp_enable value: "true" - name: cp_namespace value: kube-system - name: vip_ddns value: "false" - name: vip_leaderelection value: "true" - name: vip_leaseduration value: "15" - name: vip_renewdeadline value: "10" - name: vip_retryperiod value: "2" - name: address value: 1.2.3.4 image: public.ecr.aws/l0g8r8j6/kube-vip/kube-vip:v0.3.7-eks-a-v0.0.0-dev-build.581 imagePullPolicy: IfNotPresent name: kube-vip resources: {} securityContext: capabilities: add: - NET_ADMIN - NET_RAW volumeMounts: - mountPath: /etc/kubernetes/admin.conf name: kubeconfig hostNetwork: true volumes: - hostPath: path: /etc/kubernetes/admin.conf name: kubeconfig status: {} owner: root:root path: /etc/kubernetes/manifests/kube-vip.yaml users: - name: ec2-user sshAuthorizedKeys: - 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC1BK73XhIzjX+meUr7pIYh6RHbvI3tmHeQIXY5lv7aztN1UoX+bhPo3dwo2sfSQn5kuxgQdnxIZ/CTzy0p0GkEYVv3gwspCeurjmu0XmrdmaSGcGxCEWT/65NtvYrQtUE5ELxJ+N/aeZNlK2B7IWANnw/82913asXH4VksV1NYNduP0o1/G4XcwLLSyVFB078q/oEnmvdNIoS61j4/o36HVtENJgYr0idcBvwJdvcGxGnPaqOhx477t+kfJAa5n5dSA5wilIaoXH5i1Tf/HsTCM52L+iNCARvQzJYZhzbWI1MDQwzILtIBEQCJsl2XSqIupleY8CxqQ6jCXt2mhae+wPc3YmbO5rFvr2/EvC57kh3yDs1Nsuj8KOvD78KeeujbR8n8pScm3WDp62HFQ8lEKNdeRNj6kB8WnuaJvPnyZfvzOhwG65/9w13IBl7B1sWxbFnq2rMpm5uHVK7mAmjL0Tt8zoDhcE1YJEnp9xte3/pvmKPkST5Q/9ZtR9P5sI+02jY0fvPkPyC03j2gsPixG7rpOCwpOdbny4dcj0TDeeXJX8er+oVfJuLYz0pNWJcT2raDdFfcqvYA0B0IyNYlj5nWX4RuEcyT3qocLReWPnZojetvAG/H8XwOh7fEVGqHAKOVSnPXCSQJPl6s0H12jPJBDJMTydtYPEszl4/CeQ==' sudo: ALL=(ALL) NOPASSWD:ALL format: bottlerocket machineTemplate: infrastructureRef: apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 kind: TinkerbellMachineTemplate name: test-control-plane-template-1234567890000 replicas: 1 rolloutStrategy: rollingUpdate: maxSurge: 1 version: v1.21.2-eks-1-21-4 --- apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 kind: TinkerbellMachineTemplate metadata: name: test-control-plane-template-1234567890000 namespace: eksa-system spec: template: spec: hardwareAffinity: required: - labelSelector: matchLabels: type: cp templateOverride: | global_timeout: 6000 id: "" name: test tasks: - actions: - environment: COMPRESSED: "true" DEST_DISK: '{{ index .Hardware.Disks 0 }}' IMG_URL: https://bottlerocket.gz image: "" name: stream-image timeout: 600 - environment: BOOTCONFIG_CONTENTS: kernel {} DEST_DISK: '{{ formatPartition ( index .Hardware.Disks 0 ) 12 }}' DEST_PATH: /bootconfig.data DIRMODE: "0700" FS_TYPE: ext4 GID: "0" MODE: "0644" UID: "0" image: "" name: write-bootconfig pid: host timeout: 90 - environment: DEST_DISK: '{{ formatPartition ( index .Hardware.Disks 0 ) 12 }}' DEST_PATH: /user-data.toml DIRMODE: "0700" FS_TYPE: ext4 GID: "0" HEGEL_URLS: http://5.6.7.8:50061,http://5.6.7.8:50061 MODE: "0644" UID: "0" image: "" name: write-user-data pid: host timeout: 90 - environment: DEST_DISK: '{{ formatPartition ( index .Hardware.Disks 0 ) 12 }}' DEST_PATH: /net.toml DIRMODE: "0755" FS_TYPE: ext4 GID: "0" IFNAME: eno1 MODE: "0644" STATIC_BOTTLEROCKET: "true" UID: "0" image: "" name: write-netplan pid: host timeout: 90 - image: "" name: reboot-image pid: host timeout: 90 volumes: - /worker:/worker name: test volumes: - /dev:/dev - /dev/console:/dev/console - /lib/firmware:/lib/firmware:ro worker: '{{.device_1}}' version: "0.1" --- apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 kind: TinkerbellCluster metadata: name: test namespace: eksa-system spec: imageLookupFormat: --kube-v1.21.2-eks-1-21-4.raw.gz imageLookupBaseRegistry: /