apiVersion: cluster.x-k8s.io/v1alpha3
kind: MachineDeployment
metadata:
  name: target-cluster-md-0
  namespace: default
spec:
  clusterName: target-cluster
  replicas: 0
  selector:
    matchLabels: {}
  template:
    spec:
      bootstrap:
        configRef:
          apiVersion: bootstrap.cluster.x-k8s.io/v1alpha3
          kind: KubeadmConfigTemplate
          name: target-cluster-md-0
      clusterName: target-cluster
      failureDomain: nova
      infrastructureRef:
        apiVersion: infrastructure.cluster.x-k8s.io/v1alpha3
        kind: OpenStackMachineTemplate
        name: target-cluster-md-0
      version: v1.17.3
---
apiVersion: infrastructure.cluster.x-k8s.io/v1alpha3
kind: OpenStackMachineTemplate
metadata:
  name: target-cluster-md-0
  namespace: default
spec:
  template:
    spec:
      cloudName: devstack
      cloudsSecret:
        name: target-cluster-cloud-config
        namespace: default
      flavor: ${WORKER_MACHINE_FLAVOR}
      image: ubuntu-1910-kube-v1.17.3
---
apiVersion: bootstrap.cluster.x-k8s.io/v1alpha3
kind: KubeadmConfigTemplate
metadata:
  name: target-cluster-md-0
  namespace: default
spec:
  template:
    spec:
      files:
      - content: ${CLOUD_CONF_B64}
        encoding: base64
        owner: root
        path: /etc/kubernetes/cloud.conf
        permissions: "0600"
      - content: ${CLOUD_CERT_B64}
        encoding: base64
        owner: root
        path: /etc/certs/cacert
        permissions: "0600"
      joinConfiguration:
        nodeRegistration:
          kubeletExtraArgs:
            cloud-config: /etc/kubernetes/cloud.conf
            cloud-provider: openstack
          name: '{{ local_hostname }}'
      ntp:
        servers: []
      users:
      - name: capo
        sshAuthorizedKeys:
        - ${OPENSTACK_SSH_KEY}
        sudo: ALL=(ALL) NOPASSWD:ALL
---
apiVersion: v1
kind: Secret
metadata:
  name: target-cluster-cloud-config
  namespace: default
data:
  cacert: ${CLOUD_CERT_B64}
  clouds.yaml: ${CLOUDS_YAML_B64}