Add initial config and manifests 59/459/2
authorYolanda Robla <yroblamo@redhat.com>
Mon, 11 Mar 2019 12:38:58 +0000 (13:38 +0100)
committerYolanda Robla <yroblamo@redhat.com>
Mon, 11 Mar 2019 15:07:40 +0000 (16:07 +0100)
Co-Authored-By: Ricardo Noriega <rnoriega@redhat.com>
Co-Authored-By: Aaron Smith <aasmith@redhat.com>
Change-Id: I4d1738b1e0f28b9bfabc10e8557595c624b14a5e

110 files changed:
aws/1-node/install-config.yaml.go [new file with mode: 0644]
aws/1-node/manifests/04-openshift-machine-config-operator.yaml [new file with mode: 0644]
aws/1-node/manifests/cluster-config.yaml [new file with mode: 0644]
aws/1-node/manifests/cluster-dns-02-config.yml [new file with mode: 0644]
aws/1-node/manifests/cluster-infrastructure-02-config.yml [new file with mode: 0644]
aws/1-node/manifests/cluster-ingress-02-config.yml [new file with mode: 0644]
aws/1-node/manifests/cluster-network-01-crd.yml [new file with mode: 0644]
aws/1-node/manifests/cluster-network-02-config.yml [new file with mode: 0644]
aws/1-node/manifests/cvo-overrides.yaml [new file with mode: 0644]
aws/1-node/manifests/etcd-service.yaml [new file with mode: 0644]
aws/1-node/manifests/host-etcd-service-endpoints.yaml [new file with mode: 0644]
aws/1-node/manifests/host-etcd-service.yaml [new file with mode: 0644]
aws/1-node/manifests/kube-cloud-config.yaml [new file with mode: 0644]
aws/1-node/manifests/kube-system-configmap-etcd-serving-ca.yaml [new file with mode: 0644]
aws/1-node/manifests/kube-system-configmap-root-ca.yaml [new file with mode: 0644]
aws/1-node/manifests/kube-system-secret-etcd-client.yaml [new file with mode: 0644]
aws/1-node/manifests/machine-config-server-tls-secret.yaml [new file with mode: 0644]
aws/1-node/manifests/pull.json [new file with mode: 0644]
aws/1-node/openshift/99_binding-discovery.yaml [new file with mode: 0644]
aws/1-node/openshift/99_cloud-creds-secret.yaml [new file with mode: 0644]
aws/1-node/openshift/99_kubeadmin-password-secret.yaml [new file with mode: 0644]
aws/1-node/openshift/99_openshift-cluster-api_cluster.yaml [new file with mode: 0644]
aws/1-node/openshift/99_openshift-cluster-api_master-machines-0.yaml [new file with mode: 0644]
aws/1-node/openshift/99_openshift-cluster-api_master-user-data-secret.yaml [new file with mode: 0644]
aws/1-node/openshift/99_openshift-cluster-api_worker-machineset.yaml [new file with mode: 0644]
aws/1-node/openshift/99_openshift-cluster-api_worker-user-data-secret.yaml [new file with mode: 0644]
aws/1-node/openshift/99_role-cloud-creds-secret-reader.yaml [new file with mode: 0644]
aws/3-node/install-config.yaml.go [new file with mode: 0644]
aws/3-node/manifests/04-openshift-machine-config-operator.yaml [new file with mode: 0644]
aws/3-node/manifests/cluster-config.yaml [new file with mode: 0644]
aws/3-node/manifests/cluster-dns-02-config.yml [new file with mode: 0644]
aws/3-node/manifests/cluster-infrastructure-02-config.yml [new file with mode: 0644]
aws/3-node/manifests/cluster-ingress-02-config.yml [new file with mode: 0644]
aws/3-node/manifests/cluster-network-01-crd.yml [new file with mode: 0644]
aws/3-node/manifests/cluster-network-02-config.yml [new file with mode: 0644]
aws/3-node/manifests/cvo-overrides.yaml [new file with mode: 0644]
aws/3-node/manifests/etcd-service.yaml [new file with mode: 0644]
aws/3-node/manifests/host-etcd-service-endpoints.yaml [new file with mode: 0644]
aws/3-node/manifests/host-etcd-service.yaml [new file with mode: 0644]
aws/3-node/manifests/kube-cloud-config.yaml [new file with mode: 0644]
aws/3-node/manifests/kube-system-configmap-etcd-serving-ca.yaml [new file with mode: 0644]
aws/3-node/manifests/kube-system-configmap-root-ca.yaml [new file with mode: 0644]
aws/3-node/manifests/kube-system-secret-etcd-client.yaml [new file with mode: 0644]
aws/3-node/manifests/machine-config-server-tls-secret.yaml [new file with mode: 0644]
aws/3-node/manifests/pull.json [new file with mode: 0644]
aws/3-node/openshift/99_binding-discovery.yaml [new file with mode: 0644]
aws/3-node/openshift/99_cloud-creds-secret.yaml [new file with mode: 0644]
aws/3-node/openshift/99_kubeadmin-password-secret.yaml [new file with mode: 0644]
aws/3-node/openshift/99_openshift-cluster-api_cluster.yaml [new file with mode: 0644]
aws/3-node/openshift/99_openshift-cluster-api_master-machines-0.yaml [new file with mode: 0644]
aws/3-node/openshift/99_openshift-cluster-api_master-machines-1.yaml [new file with mode: 0644]
aws/3-node/openshift/99_openshift-cluster-api_master-machines-2.yaml [new file with mode: 0644]
aws/3-node/openshift/99_openshift-cluster-api_master-user-data-secret.yaml [new file with mode: 0644]
aws/3-node/openshift/99_openshift-cluster-api_worker-machineset.yaml [new file with mode: 0644]
aws/3-node/openshift/99_openshift-cluster-api_worker-user-data-secret.yaml [new file with mode: 0644]
aws/3-node/openshift/99_role-cloud-creds-secret-reader.yaml [new file with mode: 0644]
aws/sample_settings.yaml [new file with mode: 0644]
libvirt/1-node/install-config.yaml.go [new file with mode: 0644]
libvirt/1-node/manifests/04-openshift-machine-config-operator.yaml [new file with mode: 0644]
libvirt/1-node/manifests/cluster-config.yaml [new file with mode: 0644]
libvirt/1-node/manifests/cluster-dns-02-config.yml [new file with mode: 0644]
libvirt/1-node/manifests/cluster-infrastructure-02-config.yml [new file with mode: 0644]
libvirt/1-node/manifests/cluster-ingress-02-config.yml [new file with mode: 0644]
libvirt/1-node/manifests/cluster-network-01-crd.yml [new file with mode: 0644]
libvirt/1-node/manifests/cluster-network-02-config.yml [new file with mode: 0644]
libvirt/1-node/manifests/cvo-overrides.yaml [new file with mode: 0644]
libvirt/1-node/manifests/etcd-service.yaml [new file with mode: 0644]
libvirt/1-node/manifests/host-etcd-service-endpoints.yaml [new file with mode: 0644]
libvirt/1-node/manifests/host-etcd-service.yaml [new file with mode: 0644]
libvirt/1-node/manifests/kube-cloud-config.yaml [new file with mode: 0644]
libvirt/1-node/manifests/kube-system-configmap-etcd-serving-ca.yaml [new file with mode: 0644]
libvirt/1-node/manifests/kube-system-configmap-root-ca.yaml [new file with mode: 0644]
libvirt/1-node/manifests/kube-system-secret-etcd-client.yaml [new file with mode: 0644]
libvirt/1-node/manifests/machine-config-server-tls-secret.yaml [new file with mode: 0644]
libvirt/1-node/manifests/pull.json [new file with mode: 0644]
libvirt/1-node/openshift/99_binding-discovery.yaml [new file with mode: 0644]
libvirt/1-node/openshift/99_kubeadmin-password-secret.yaml [new file with mode: 0644]
libvirt/1-node/openshift/99_openshift-cluster-api_cluster.yaml [new file with mode: 0644]
libvirt/1-node/openshift/99_openshift-cluster-api_master-machines-0.yaml [new file with mode: 0644]
libvirt/1-node/openshift/99_openshift-cluster-api_master-user-data-secret.yaml [new file with mode: 0644]
libvirt/1-node/openshift/99_openshift-cluster-api_worker-machineset.yaml [new file with mode: 0644]
libvirt/1-node/openshift/99_openshift-cluster-api_worker-user-data-secret.yaml [new file with mode: 0644]
libvirt/3-node/install-config.yaml.go [new file with mode: 0644]
libvirt/3-node/manifests/04-openshift-machine-config-operator.yaml [new file with mode: 0644]
libvirt/3-node/manifests/cluster-config.yaml [new file with mode: 0644]
libvirt/3-node/manifests/cluster-dns-02-config.yml [new file with mode: 0644]
libvirt/3-node/manifests/cluster-infrastructure-02-config.yml [new file with mode: 0644]
libvirt/3-node/manifests/cluster-ingress-02-config.yml [new file with mode: 0644]
libvirt/3-node/manifests/cluster-network-01-crd.yml [new file with mode: 0644]
libvirt/3-node/manifests/cluster-network-02-config.yml [new file with mode: 0644]
libvirt/3-node/manifests/cvo-overrides.yaml [new file with mode: 0644]
libvirt/3-node/manifests/etcd-service.yaml [new file with mode: 0644]
libvirt/3-node/manifests/host-etcd-service-endpoints.yaml [new file with mode: 0644]
libvirt/3-node/manifests/host-etcd-service.yaml [new file with mode: 0644]
libvirt/3-node/manifests/kube-cloud-config.yaml [new file with mode: 0644]
libvirt/3-node/manifests/kube-system-configmap-etcd-serving-ca.yaml [new file with mode: 0644]
libvirt/3-node/manifests/kube-system-configmap-root-ca.yaml [new file with mode: 0644]
libvirt/3-node/manifests/kube-system-secret-etcd-client.yaml [new file with mode: 0644]
libvirt/3-node/manifests/machine-config-server-tls-secret.yaml [new file with mode: 0644]
libvirt/3-node/manifests/pull.json [new file with mode: 0644]
libvirt/3-node/openshift/99_binding-discovery.yaml [new file with mode: 0644]
libvirt/3-node/openshift/99_kubeadmin-password-secret.yaml [new file with mode: 0644]
libvirt/3-node/openshift/99_openshift-cluster-api_cluster.yaml [new file with mode: 0644]
libvirt/3-node/openshift/99_openshift-cluster-api_master-machines-0.yaml [new file with mode: 0644]
libvirt/3-node/openshift/99_openshift-cluster-api_master-machines-1.yaml [new file with mode: 0644]
libvirt/3-node/openshift/99_openshift-cluster-api_master-machines-2.yaml [new file with mode: 0644]
libvirt/3-node/openshift/99_openshift-cluster-api_master-user-data-secret.yaml [new file with mode: 0644]
libvirt/3-node/openshift/99_openshift-cluster-api_worker-machineset.yaml [new file with mode: 0644]
libvirt/3-node/openshift/99_openshift-cluster-api_worker-user-data-secret.yaml [new file with mode: 0644]
libvirt/sample_settings.yaml [new file with mode: 0644]

diff --git a/aws/1-node/install-config.yaml.go b/aws/1-node/install-config.yaml.go
new file mode 100644 (file)
index 0000000..2c14303
--- /dev/null
@@ -0,0 +1,26 @@
+apiVersion: v1beta3
+baseDomain: {{ .baseDomain }}
+compute:
+- name: worker
+  platform: {}
+  replicas: 1
+controlPlane:
+  name: master
+  platform: {}
+  replicas: 1
+metadata:
+  creationTimestamp: null
+  name: {{ .clusterName }}
+networking:
+  clusterNetworks:
+  - cidr: {{ .clusterCIDR }}
+    hostSubnetLength: {{ .clusterSubnetLength }}
+  machineCIDR: {{ .machineCIDR }}
+  serviceCIDR: {{ .serviceCIDR }}
+  type: {{ .SDNType }}
+platform:
+  aws:
+    region: {{ .AWSRegion }}
+pullSecret: '{{ .pullSecret }}'
+sshKey: |
+  {{ .SSHKey }}
diff --git a/aws/1-node/manifests/04-openshift-machine-config-operator.yaml b/aws/1-node/manifests/04-openshift-machine-config-operator.yaml
new file mode 100644 (file)
index 0000000..83c8515
--- /dev/null
@@ -0,0 +1,7 @@
+apiVersion: v1
+kind: Namespace
+metadata:
+  name: openshift-machine-config-operator
+  labels:
+    name: openshift-machine-config-operator
+    openshift.io/run-level: "1"
diff --git a/aws/1-node/manifests/cluster-config.yaml b/aws/1-node/manifests/cluster-config.yaml
new file mode 100644 (file)
index 0000000..b7b4d75
--- /dev/null
@@ -0,0 +1,32 @@
+apiVersion: v1
+data:
+  install-config: |
+    apiVersion: v1beta3
+    baseDomain: {{ settings.baseDomain }}
+    compute:
+    - name: worker
+      platform: {}
+      replicas: 1
+    controlPlane:
+      name: master
+      platform: {}
+      replicas: 1
+    metadata:
+      creationTimestamp: null
+      name: {{ settings.clusterName }}
+    networking:
+      clusterNetworks:
+      - cidr: {{ settings.clusterCIDR }}
+        hostSubnetLength: {{ settings.hostSubnetLength }}
+      machineCIDR: {{ settings.machineCIDR }}
+      serviceCIDR: {{ settings.serviceCIDR }}
+      type: {{ settings.SDNType}}
+    platform:
+      aws:
+        region: {{ settings.region }}
+    pullSecret: '{{ settings.pullSecret }}'
+    sshKey: |
+      {{ settings.sshKey }}
+metadata:
+  name: cluster-config-v1
+  namespace: kube-system
diff --git a/aws/1-node/manifests/cluster-dns-02-config.yml b/aws/1-node/manifests/cluster-dns-02-config.yml
new file mode 100644 (file)
index 0000000..9669c9e
--- /dev/null
@@ -0,0 +1,15 @@
+apiVersion: config.openshift.io/v1
+kind: DNS
+metadata:
+  creationTimestamp: null
+  name: cluster
+spec:
+  baseDomain: {{ settings.clusterName }}.{{ settings.baseDomain }}
+  privateZone:
+    tags:
+      Name: {{ settings.clusterName }}_int
+      kubernetes.io/cluster/{{ settings.clusterName }}: owned
+      openshiftClusterID: {{ settings.clusterID }}
+  publicZone:
+    id: {{ settings.publicZoneID }}
+status: {}
diff --git a/aws/1-node/manifests/cluster-infrastructure-02-config.yml b/aws/1-node/manifests/cluster-infrastructure-02-config.yml
new file mode 100644 (file)
index 0000000..e3fec3e
--- /dev/null
@@ -0,0 +1,10 @@
+apiVersion: config.openshift.io/v1
+kind: Infrastructure
+metadata:
+  creationTimestamp: null
+  name: cluster
+spec: {}
+status:
+  apiServerURL: https://api.{{ settings.clusterName}}.{{ settings.baseDomain }}:6443
+  etcdDiscoveryDomain: {{ settings.clusterName }}.{{ settings.baseDomain }}
+  platform: AWS
diff --git a/aws/1-node/manifests/cluster-ingress-02-config.yml b/aws/1-node/manifests/cluster-ingress-02-config.yml
new file mode 100644 (file)
index 0000000..a72a0de
--- /dev/null
@@ -0,0 +1,8 @@
+apiVersion: config.openshift.io/v1
+kind: Ingress
+metadata:
+  creationTimestamp: null
+  name: cluster
+spec:
+  domain: apps.{{ settings.clusterName }}.{{ settings.BaseDomain }}
+status: {}
diff --git a/aws/1-node/manifests/cluster-network-01-crd.yml b/aws/1-node/manifests/cluster-network-01-crd.yml
new file mode 100644 (file)
index 0000000..59076ce
--- /dev/null
@@ -0,0 +1,21 @@
+
+---
+# This is the advanced network configuration CRD
+# Only necessary if you need to tweak certain settings.
+# See https://github.com/openshift/cluster-network-operator#configuring
+apiVersion: apiextensions.k8s.io/v1beta1
+kind: CustomResourceDefinition
+metadata:
+  name: networkconfigs.networkoperator.openshift.io
+spec:
+  group: networkoperator.openshift.io
+  names:
+    kind: NetworkConfig
+    listKind: NetworkConfigList
+    plural: networkconfigs
+    singular: networkconfig
+  scope: Cluster
+  versions:
+  - name: v1
+    served: true
+    storage: true
diff --git a/aws/1-node/manifests/cluster-network-02-config.yml b/aws/1-node/manifests/cluster-network-02-config.yml
new file mode 100644 (file)
index 0000000..a1ce3a3
--- /dev/null
@@ -0,0 +1,17 @@
+apiVersion: config.openshift.io/v1
+kind: Network
+metadata:
+  creationTimestamp: null
+  name: cluster
+spec:
+  clusterNetwork:
+  - cidr: {{ settings.clusterCIDR }}
+    hostPrefix: 23
+  networkType: {{ settings.SDNType }}
+  serviceNetwork:
+  - {{ settings.serviceNetworkCIDR }}
+status:
+  clusterNetwork: null
+  clusterNetworkMTU: 0
+  networkType: ""
+  serviceNetwork: null
diff --git a/aws/1-node/manifests/cvo-overrides.yaml b/aws/1-node/manifests/cvo-overrides.yaml
new file mode 100644 (file)
index 0000000..b599042
--- /dev/null
@@ -0,0 +1,9 @@
+apiVersion: config.openshift.io/v1
+kind: ClusterVersion
+metadata:
+  namespace: openshift-cluster-version
+  name: version
+spec:
+  upstream: https://api.openshift.com/api/upgrades_info/v1/graph
+  channel: stable-4.0
+  clusterID: 984b7e11-bfd5-4494-a508-f7ce8b972474
diff --git a/aws/1-node/manifests/etcd-service.yaml b/aws/1-node/manifests/etcd-service.yaml
new file mode 100644 (file)
index 0000000..9a24566
--- /dev/null
@@ -0,0 +1,15 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: etcd
+  namespace: kube-system
+  labels:
+    # this label is used to indicate that it should be scraped by prometheus
+    k8s-app: etcd
+spec:
+  selector:
+    k8s-app: etcd
+  ports:
+  - name: etcd
+    port: 2379
+    protocol: TCP
diff --git a/aws/1-node/manifests/host-etcd-service-endpoints.yaml b/aws/1-node/manifests/host-etcd-service-endpoints.yaml
new file mode 100644 (file)
index 0000000..f7cc6bf
--- /dev/null
@@ -0,0 +1,15 @@
+apiVersion: v1
+kind: Endpoints
+metadata:
+  name: host-etcd
+  namespace: kube-system
+  annotations:
+    alpha.installer.openshift.io/dns-suffix: {{ settings.clusterName }}.{{ settings.baseDomain }}
+subsets:
+- addresses:
+  - ip: 192.0.2.1
+    hostname: etcd-0
+  ports:
+  - name: etcd
+    port: 2379
+    protocol: TCP
diff --git a/aws/1-node/manifests/host-etcd-service.yaml b/aws/1-node/manifests/host-etcd-service.yaml
new file mode 100644 (file)
index 0000000..348a29b
--- /dev/null
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: host-etcd
+  namespace: kube-system
+  labels:
+    # this label is used to indicate that it should be scraped by prometheus
+    k8s-app: etcd
+spec:
+  clusterIP: None
+  ports:
+  - name: etcd
+    port: 2379
+    protocol: TCP
diff --git a/aws/1-node/manifests/kube-cloud-config.yaml b/aws/1-node/manifests/kube-cloud-config.yaml
new file mode 100644 (file)
index 0000000..b42fdad
--- /dev/null
@@ -0,0 +1,8 @@
+apiVersion: v1
+kind: Secret
+metadata:
+  name: kube-cloud-cfg
+  namespace: kube-system
+type: Opaque
+data:
+  config: ""
diff --git a/aws/1-node/manifests/kube-system-configmap-etcd-serving-ca.yaml b/aws/1-node/manifests/kube-system-configmap-etcd-serving-ca.yaml
new file mode 100644 (file)
index 0000000..973842f
--- /dev/null
@@ -0,0 +1,8 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: etcd-serving-ca
+  namespace: kube-system
+data:
+  ca-bundle.crt: |
+    {{ settings.caBundleCRT }}
diff --git a/aws/1-node/manifests/kube-system-configmap-root-ca.yaml b/aws/1-node/manifests/kube-system-configmap-root-ca.yaml
new file mode 100644 (file)
index 0000000..3591c21
--- /dev/null
@@ -0,0 +1,8 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: root-ca
+  namespace: kube-system
+data:
+  ca.crt: |
+    {{ settings.rootCRT }}
diff --git a/aws/1-node/manifests/kube-system-secret-etcd-client.yaml b/aws/1-node/manifests/kube-system-secret-etcd-client.yaml
new file mode 100644 (file)
index 0000000..dd068e1
--- /dev/null
@@ -0,0 +1,9 @@
+apiVersion: v1
+kind: Secret
+metadata:
+  name: etcd-client
+  namespace: kube-system
+type: SecretTypeTLS
+data:
+  tls.crt: {{ settings.SecretTLSCRT }}
+  tls.key: {{ settings.SecretTLSKey }}
diff --git a/aws/1-node/manifests/machine-config-server-tls-secret.yaml b/aws/1-node/manifests/machine-config-server-tls-secret.yaml
new file mode 100644 (file)
index 0000000..854087a
--- /dev/null
@@ -0,0 +1,9 @@
+apiVersion: v1
+kind: Secret
+metadata:
+  name: machine-config-server-tls
+  namespace: openshift-machine-config-operator
+type: Opaque
+data:
+  tls.crt: {{ settings.MachineTLSCRT }}
+  tls.key: {{ settings.MachineTLSKey }}
diff --git a/aws/1-node/manifests/pull.json b/aws/1-node/manifests/pull.json
new file mode 100644 (file)
index 0000000..100d7e2
--- /dev/null
@@ -0,0 +1,12 @@
+{
+  "apiVersion": "v1",
+  "kind": "Secret",
+  "type": "kubernetes.io/dockerconfigjson",
+  "metadata": {
+    "namespace": "kube-system",
+    "name": "coreos-pull-secret"
+  },
+  "data": {
+    ".dockerconfigjson": "{{ settings.pullSecret }}"
+  }
+}
diff --git a/aws/1-node/openshift/99_binding-discovery.yaml b/aws/1-node/openshift/99_binding-discovery.yaml
new file mode 100644 (file)
index 0000000..79154a8
--- /dev/null
@@ -0,0 +1,13 @@
+kind: ClusterRoleBinding
+apiVersion: rbac.authorization.k8s.io/v1beta1
+metadata:
+  name: discovery
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: ClusterRole
+  name: system:discovery
+subjects:
+- kind: Group
+  name: 'system:unauthenticated'
+- kind: Group
+  name: 'system:authenticated'
diff --git a/aws/1-node/openshift/99_cloud-creds-secret.yaml b/aws/1-node/openshift/99_cloud-creds-secret.yaml
new file mode 100644 (file)
index 0000000..ef5cd93
--- /dev/null
@@ -0,0 +1,8 @@
+kind: Secret
+apiVersion: v1
+metadata:
+  namespace: kube-system
+  name: aws-creds
+data:
+  aws_access_key_id: {{ settings.AWSAccessKey }}
+  aws_secret_access_key: {{ settings.AWSSecretKey }}
diff --git a/aws/1-node/openshift/99_kubeadmin-password-secret.yaml b/aws/1-node/openshift/99_kubeadmin-password-secret.yaml
new file mode 100644 (file)
index 0000000..228b66d
--- /dev/null
@@ -0,0 +1,7 @@
+kind: Secret
+apiVersion: v1
+metadata:
+  namespace: kube-system
+  name: kubeadmin
+data:
+  kubeadmin: {{ settings.KubeAdminPassword }}
diff --git a/aws/1-node/openshift/99_openshift-cluster-api_cluster.yaml b/aws/1-node/openshift/99_openshift-cluster-api_cluster.yaml
new file mode 100644 (file)
index 0000000..9fd5ef1
--- /dev/null
@@ -0,0 +1,17 @@
+apiVersion: machine.openshift.io/v1beta1
+kind: Cluster
+metadata:
+  creationTimestamp: null
+  name: {{ settings.clusterName }}
+  namespace: openshift-machine-api
+spec:
+  clusterNetwork:
+    pods:
+      cidrBlocks:
+      - {{ settings.clusterCIDR }}
+    serviceDomain: ""
+    services:
+      cidrBlocks:
+      - {{ settings.serviceCIDR }}
+  providerSpec: {}
+status: {}
diff --git a/aws/1-node/openshift/99_openshift-cluster-api_master-machines-0.yaml b/aws/1-node/openshift/99_openshift-cluster-api_master-machines-0.yaml
new file mode 100644 (file)
index 0000000..0316dbf
--- /dev/null
@@ -0,0 +1,59 @@
+apiVersion: machine.openshift.io/v1beta1
+kind: Machine
+metadata:
+  creationTimestamp: null
+  labels:
+    sigs.k8s.io/cluster-api-cluster: {{ settings.clusterName }}
+    sigs.k8s.io/cluster-api-machine-role: master
+    sigs.k8s.io/cluster-api-machine-type: master
+  name: {{ settings.clusterName }}-master-0
+  namespace: openshift-machine-api
+spec:
+  metadata:
+    creationTimestamp: null
+  providerSpec:
+    value:
+      ami:
+        id: {{ settings.AmiID }}
+      apiVersion: awsproviderconfig.openshift.io/v1beta1
+      blockDevices:
+      - ebs:
+          iops: 0
+          volumeSize: 120
+          volumeType: gp2
+      deviceIndex: 0
+      iamInstanceProfile:
+        id: {{ settings.clusterName }}-master-profile
+      instanceType: m4.xlarge
+      kind: AWSMachineProviderConfig
+      loadBalancers:
+      - name: {{ settings.clusterName }}-ext
+        type: network
+      - name: {{ settings.clusterName }}-int
+        type: network
+      metadata:
+        creationTimestamp: null
+      placement:
+        availabilityZone: {{ settings.AWSAvailabilityZone }}
+        region: {{ settings.AWSRegion }}
+      publicIp: true
+      securityGroups:
+      - filters:
+        - name: tag:Name
+          values:
+          - {{ settings.clusterName }}_master_sg
+      subnet:
+        filters:
+        - name: tag:Name
+          values:
+          - {{ settings.clusterName }}-private-{{ settings.AWSAvailabilityZone }}
+      tags:
+      - name: openshiftClusterID
+        value: {{ settings.clusterID }}
+      - name: kubernetes.io/cluster/{{ settings.clusterName }}
+        value: owned
+      userDataSecret:
+        name: master-user-data
+  versions:
+    kubelet: ""
+status: {}
diff --git a/aws/1-node/openshift/99_openshift-cluster-api_master-user-data-secret.yaml b/aws/1-node/openshift/99_openshift-cluster-api_master-user-data-secret.yaml
new file mode 100644 (file)
index 0000000..3d40d47
--- /dev/null
@@ -0,0 +1,16 @@
+
+kind: List
+apiVersion: v1
+metadata:
+  resourceVersion: ""
+  selfLink: ""
+items:
+- apiVersion: v1
+  kind: Secret
+  metadata:
+    name: master-user-data
+    namespace: openshift-machine-api
+  type: Opaque
+  data:
+    userData: {{ settings.masterUserData }}
+
diff --git a/aws/1-node/openshift/99_openshift-cluster-api_worker-machineset.yaml b/aws/1-node/openshift/99_openshift-cluster-api_worker-machineset.yaml
new file mode 100644 (file)
index 0000000..fb458d4
--- /dev/null
@@ -0,0 +1,142 @@
+apiVersion: v1
+items:
+- apiVersion: machine.openshift.io/v1beta1
+  kind: MachineSet
+  metadata:
+    creationTimestamp: null
+    labels:
+      sigs.k8s.io/cluster-api-cluster: {{ settings.clusterName }}
+      sigs.k8s.io/cluster-api-machine-role: worker
+      sigs.k8s.io/cluster-api-machine-type: worker
+    name: {{ settings.clusterName }}-worker-{{ settings.AWSAvailabilityZone }}
+    namespace: openshift-machine-api
+  spec:
+    replicas: 1
+    selector:
+      matchLabels:
+        sigs.k8s.io/cluster-api-cluster: {{ settings.clusterName }}
+        sigs.k8s.io/cluster-api-machineset: {{ settings.clusterName }}-worker-{{ settings.AWSAvailabilityZone }}
+    template:
+      metadata:
+        creationTimestamp: null
+        labels:
+          sigs.k8s.io/cluster-api-cluster: {{ settings.clusterName }}
+          sigs.k8s.io/cluster-api-machine-role: worker
+          sigs.k8s.io/cluster-api-machine-type: worker
+          sigs.k8s.io/cluster-api-machineset: {{ settings.clusterName }}-worker-{{ settings.AWSAvailabilityZone }}
+      spec:
+        metadata:
+          creationTimestamp: null
+        providerSpec:
+          value:
+            ami:
+              id: {{ settings.AmiID }}
+            apiVersion: awsproviderconfig.openshift.io/v1beta1
+            blockDevices:
+            - ebs:
+                iops: 0
+                volumeSize: 120
+                volumeType: gp2
+            deviceIndex: 0
+            iamInstanceProfile:
+              id: {{ settings.clusterName }}-worker-profile
+            instanceType: m4.large
+            kind: AWSMachineProviderConfig
+            metadata:
+              creationTimestamp: null
+            placement:
+              availabilityZone: {{ settings.AWSAvailabilityZone }}
+              region: {{ settings.AWSRegion }}
+            publicIp: null
+            securityGroups:
+            - filters:
+              - name: tag:Name
+                values:
+                - {{ settings.clusterName }}_worker_sg
+            subnet:
+              filters:
+              - name: tag:Name
+                values:
+                - {{ settings.clusterName }}-private-{{ settings.AWSAvailabilityZone }}
+            tags:
+            - name: openshiftClusterID
+              value: {{ settings.clusterID }}
+            - name: kubernetes.io/cluster/{{ settings.clusterName }}
+              value: owned
+            userDataSecret:
+              name: worker-user-data
+        versions:
+          kubelet: ""
+  status:
+    replicas: 0
+- apiVersion: machine.openshift.io/v1beta1
+  kind: MachineSet
+  metadata:
+    creationTimestamp: null
+    labels:
+      sigs.k8s.io/cluster-api-cluster: {{ settings.clusterName }}
+      sigs.k8s.io/cluster-api-machine-role: worker
+      sigs.k8s.io/cluster-api-machine-type: worker
+    name: {{ settings.clusterName }}-worker-{{ settings.AWSAvailabilityZone }}
+    namespace: openshift-machine-api
+  spec:
+    replicas: 0
+    selector:
+      matchLabels:
+        sigs.k8s.io/cluster-api-cluster: {{ settings.clusterName }}
+        sigs.k8s.io/cluster-api-machineset: {{ settings.clusterName }}-worker-{{ settings.AWSAvailabilityZone }}
+    template:
+      metadata:
+        creationTimestamp: null
+        labels:
+          sigs.k8s.io/cluster-api-cluster: {{ settings.clusterName }}
+          sigs.k8s.io/cluster-api-machine-role: worker
+          sigs.k8s.io/cluster-api-machine-type: worker
+          sigs.k8s.io/cluster-api-machineset: {{ settings.clusterName }}-worker-{{ settings.AWSAvailabilityZone }}
+      spec:
+        metadata:
+          creationTimestamp: null
+        providerSpec:
+          value:
+            ami:
+              id: {{ settings.AmiID }}
+            apiVersion: awsproviderconfig.openshift.io/v1beta1
+            blockDevices:
+            - ebs:
+                iops: 0
+                volumeSize: 120
+                volumeType: gp2
+            deviceIndex: 0
+            iamInstanceProfile:
+              id: {{ settings.clusterName }}-worker-profile
+            instanceType: m4.large
+            kind: AWSMachineProviderConfig
+            metadata:
+              creationTimestamp: null
+            placement:
+              availabilityZone: {{ settings.AWSAvailabilityZone }}
+              region: {{ settings.AWSRegion }}
+            publicIp: null
+            securityGroups:
+            - filters:
+              - name: tag:Name
+                values:
+                - {{ settings.clusterName }}_worker_sg
+            subnet:
+              filters:
+              - name: tag:Name
+                values:
+                - {{ settings.clusterName }}-private-{{ settings.AWSAvailabilityZone }}
+            tags:
+            - name: openshiftClusterID
+              value: {{ settings.clusterID }}
+            - name: kubernetes.io/cluster/{{ settings.clusterName }}
+              value: owned
+            userDataSecret:
+              name: worker-user-data
+        versions:
+          kubelet: ""
+  status:
+    replicas: 0
+kind: List
+metadata: {}
diff --git a/aws/1-node/openshift/99_openshift-cluster-api_worker-user-data-secret.yaml b/aws/1-node/openshift/99_openshift-cluster-api_worker-user-data-secret.yaml
new file mode 100644 (file)
index 0000000..e57fbc4
--- /dev/null
@@ -0,0 +1,15 @@
+
+kind: List
+apiVersion: v1
+metadata:
+  resourceVersion: ""
+  selfLink: ""
+items:
+- apiVersion: v1
+  kind: Secret
+  metadata:
+    name: worker-user-data
+    namespace: openshift-machine-api
+  type: Opaque
+  data:
+    userData: {{ settings.workerUserData }}
diff --git a/aws/1-node/openshift/99_role-cloud-creds-secret-reader.yaml b/aws/1-node/openshift/99_role-cloud-creds-secret-reader.yaml
new file mode 100644 (file)
index 0000000..35d5771
--- /dev/null
@@ -0,0 +1,10 @@
+kind: Role
+apiVersion: rbac.authorization.k8s.io/v1beta1
+metadata:
+  namespace: kube-system
+  name: aws-creds-secret-reader
+rules:
+- apiGroups: [""]
+  resources: ["secrets"]
+  resourceNames: ["aws-creds"]
+  verbs: ["get"]
diff --git a/aws/3-node/install-config.yaml.go b/aws/3-node/install-config.yaml.go
new file mode 100644 (file)
index 0000000..df00281
--- /dev/null
@@ -0,0 +1,26 @@
+apiVersion: v1beta3
+baseDomain: {{ .baseDomain }}
+compute:
+- name: worker
+  platform: {}
+  replicas: 3
+controlPlane:
+  name: master
+  platform: {}
+  replicas: 3
+metadata:
+  creationTimestamp: null
+  name: {{ .clusterName }}
+networking:
+  clusterNetworks:
+  - cidr: {{ .clusterCIDR }}
+    hostSubnetLength: {{ .clusterSubnetLength }}
+  machineCIDR: {{ .machineCIDR }}
+  serviceCIDR: {{ .serviceCIDR }}
+  type: {{ .SDNType }}
+platform:
+  aws:
+    region: {{ .AWSRegion }}
+pullSecret: '{{ .pullSecret }}'
+sshKey: |
+  {{ .SSHKey }}
diff --git a/aws/3-node/manifests/04-openshift-machine-config-operator.yaml b/aws/3-node/manifests/04-openshift-machine-config-operator.yaml
new file mode 100644 (file)
index 0000000..83c8515
--- /dev/null
@@ -0,0 +1,7 @@
+apiVersion: v1
+kind: Namespace
+metadata:
+  name: openshift-machine-config-operator
+  labels:
+    name: openshift-machine-config-operator
+    openshift.io/run-level: "1"
diff --git a/aws/3-node/manifests/cluster-config.yaml b/aws/3-node/manifests/cluster-config.yaml
new file mode 100644 (file)
index 0000000..17a2a70
--- /dev/null
@@ -0,0 +1,33 @@
+apiVersion: v1
+data:
+  install-config: |
+    apiVersion: v1beta3
+    baseDomain: {{ settings.baseDomain }}
+    compute:
+    - name: worker
+      platform: {}
+      replicas: {{ settings.numWorkers }}
+    controlPlane:
+      name: master
+      platform: {}
+      replicas: 3
+    metadata:
+      creationTimestamp: null
+      name: {{ settings.clusterName }}
+    networking:
+      clusterNetworks:
+      - cidr: {{ settings.clusterCIDR }}
+        hostSubnetLength: {{ settings.hostSubnetLength }}
+      machineCIDR: {{ settings.machineCIDR }}
+      serviceCIDR: {{ settings.serviceCIDR }}
+      type: {{ settings.SDNType}}
+    platform:
+      aws:
+        region: {{ settings.AWSRegion }}
+    pullSecret: '{{ settings.pullSecret }}'
+    sshKey: |
+      {{ settings.sshKey }}
+kind: ConfigMap
+metadata:
+  name: cluster-config-v1
+  namespace: kube-system
diff --git a/aws/3-node/manifests/cluster-dns-02-config.yml b/aws/3-node/manifests/cluster-dns-02-config.yml
new file mode 100644 (file)
index 0000000..5115983
--- /dev/null
@@ -0,0 +1,14 @@
+apiVersion: config.openshift.io/v1
+kind: DNS
+metadata:
+  creationTimestamp: null
+  name: cluster
+spec:
+  baseDomain: {{ settings.clusterName }}.{{ settings.baseDomain }}
+  privateZone:
+    tags:
+      Name: {{ settings.clusterName }}-int
+      kubernetes.io/cluster/{{ settings.clusterName }}: owned
+  publicZone:
+    id: {{ settings.AWSDNSZoneID }}
+status: {}
diff --git a/aws/3-node/manifests/cluster-infrastructure-02-config.yml b/aws/3-node/manifests/cluster-infrastructure-02-config.yml
new file mode 100644 (file)
index 0000000..078cde8
--- /dev/null
@@ -0,0 +1,10 @@
+apiVersion: config.openshift.io/v1
+kind: Infrastructure
+metadata:
+  creationTimestamp: null
+  name: cluster
+spec: {}
+status:
+  apiServerURL: https://api.{{ settings.clusterName}}.{{ settings.baseDomain }}:6443
+  etcdDiscoveryDomain: {{ settings.clusterName}}.{{ settings.baseDomain }}
+  platform: AWS
diff --git a/aws/3-node/manifests/cluster-ingress-02-config.yml b/aws/3-node/manifests/cluster-ingress-02-config.yml
new file mode 100644 (file)
index 0000000..a72a0de
--- /dev/null
@@ -0,0 +1,8 @@
+apiVersion: config.openshift.io/v1
+kind: Ingress
+metadata:
+  creationTimestamp: null
+  name: cluster
+spec:
+  domain: apps.{{ settings.clusterName }}.{{ settings.BaseDomain }}
+status: {}
diff --git a/aws/3-node/manifests/cluster-network-01-crd.yml b/aws/3-node/manifests/cluster-network-01-crd.yml
new file mode 100644 (file)
index 0000000..59076ce
--- /dev/null
@@ -0,0 +1,21 @@
+
+---
+# This is the advanced network configuration CRD
+# Only necessary if you need to tweak certain settings.
+# See https://github.com/openshift/cluster-network-operator#configuring
+apiVersion: apiextensions.k8s.io/v1beta1
+kind: CustomResourceDefinition
+metadata:
+  name: networkconfigs.networkoperator.openshift.io
+spec:
+  group: networkoperator.openshift.io
+  names:
+    kind: NetworkConfig
+    listKind: NetworkConfigList
+    plural: networkconfigs
+    singular: networkconfig
+  scope: Cluster
+  versions:
+  - name: v1
+    served: true
+    storage: true
diff --git a/aws/3-node/manifests/cluster-network-02-config.yml b/aws/3-node/manifests/cluster-network-02-config.yml
new file mode 100644 (file)
index 0000000..a1ce3a3
--- /dev/null
@@ -0,0 +1,17 @@
+apiVersion: config.openshift.io/v1
+kind: Network
+metadata:
+  creationTimestamp: null
+  name: cluster
+spec:
+  clusterNetwork:
+  - cidr: {{ settings.clusterCIDR }}
+    hostPrefix: 23
+  networkType: {{ settings.SDNType }}
+  serviceNetwork:
+  - {{ settings.serviceNetworkCIDR }}
+status:
+  clusterNetwork: null
+  clusterNetworkMTU: 0
+  networkType: ""
+  serviceNetwork: null
diff --git a/aws/3-node/manifests/cvo-overrides.yaml b/aws/3-node/manifests/cvo-overrides.yaml
new file mode 100644 (file)
index 0000000..10bf85d
--- /dev/null
@@ -0,0 +1,9 @@
+apiVersion: config.openshift.io/v1
+kind: ClusterVersion
+metadata:
+  namespace: openshift-cluster-version
+  name: version
+spec:
+  upstream: https://api.openshift.com/api/upgrades_info/v1/graph
+  channel: stable-4.0
+  clusterID: 27495a50-7c22-4748-b12f-300c63563937
diff --git a/aws/3-node/manifests/etcd-service.yaml b/aws/3-node/manifests/etcd-service.yaml
new file mode 100644 (file)
index 0000000..9a24566
--- /dev/null
@@ -0,0 +1,15 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: etcd
+  namespace: kube-system
+  labels:
+    # this label is used to indicate that it should be scraped by prometheus
+    k8s-app: etcd
+spec:
+  selector:
+    k8s-app: etcd
+  ports:
+  - name: etcd
+    port: 2379
+    protocol: TCP
diff --git a/aws/3-node/manifests/host-etcd-service-endpoints.yaml b/aws/3-node/manifests/host-etcd-service-endpoints.yaml
new file mode 100644 (file)
index 0000000..f094dcf
--- /dev/null
@@ -0,0 +1,19 @@
+apiVersion: v1
+kind: Endpoints
+metadata:
+  name: host-etcd
+  namespace: kube-system
+  annotations:
+    alpha.installer.openshift.io/dns-suffix: {{ settings.clusterName }}.{{ settings.BaseDomain }}
+subsets:
+- addresses:
+  - ip: 192.0.2.1
+    hostname: etcd-0
+  - ip: 192.0.2.2
+    hostname: etcd-1
+  - ip: 192.0.2.3
+    hostname: etcd-2
+  ports:
+  - name: etcd
+    port: 2379
+    protocol: TCP
diff --git a/aws/3-node/manifests/host-etcd-service.yaml b/aws/3-node/manifests/host-etcd-service.yaml
new file mode 100644 (file)
index 0000000..348a29b
--- /dev/null
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: host-etcd
+  namespace: kube-system
+  labels:
+    # this label is used to indicate that it should be scraped by prometheus
+    k8s-app: etcd
+spec:
+  clusterIP: None
+  ports:
+  - name: etcd
+    port: 2379
+    protocol: TCP
diff --git a/aws/3-node/manifests/kube-cloud-config.yaml b/aws/3-node/manifests/kube-cloud-config.yaml
new file mode 100644 (file)
index 0000000..b42fdad
--- /dev/null
@@ -0,0 +1,8 @@
+apiVersion: v1
+kind: Secret
+metadata:
+  name: kube-cloud-cfg
+  namespace: kube-system
+type: Opaque
+data:
+  config: ""
diff --git a/aws/3-node/manifests/kube-system-configmap-etcd-serving-ca.yaml b/aws/3-node/manifests/kube-system-configmap-etcd-serving-ca.yaml
new file mode 100644 (file)
index 0000000..973842f
--- /dev/null
@@ -0,0 +1,8 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: etcd-serving-ca
+  namespace: kube-system
+data:
+  ca-bundle.crt: |
+    {{ settings.caBundleCRT }}
diff --git a/aws/3-node/manifests/kube-system-configmap-root-ca.yaml b/aws/3-node/manifests/kube-system-configmap-root-ca.yaml
new file mode 100644 (file)
index 0000000..3591c21
--- /dev/null
@@ -0,0 +1,8 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: root-ca
+  namespace: kube-system
+data:
+  ca.crt: |
+    {{ settings.rootCRT }}
diff --git a/aws/3-node/manifests/kube-system-secret-etcd-client.yaml b/aws/3-node/manifests/kube-system-secret-etcd-client.yaml
new file mode 100644 (file)
index 0000000..dd068e1
--- /dev/null
@@ -0,0 +1,9 @@
+apiVersion: v1
+kind: Secret
+metadata:
+  name: etcd-client
+  namespace: kube-system
+type: SecretTypeTLS
+data:
+  tls.crt: {{ settings.SecretTLSCRT }}
+  tls.key: {{ settings.SecretTLSKey }}
diff --git a/aws/3-node/manifests/machine-config-server-tls-secret.yaml b/aws/3-node/manifests/machine-config-server-tls-secret.yaml
new file mode 100644 (file)
index 0000000..854087a
--- /dev/null
@@ -0,0 +1,9 @@
+apiVersion: v1
+kind: Secret
+metadata:
+  name: machine-config-server-tls
+  namespace: openshift-machine-config-operator
+type: Opaque
+data:
+  tls.crt: {{ settings.MachineTLSCRT }}
+  tls.key: {{ settings.MachineTLSKey }}
diff --git a/aws/3-node/manifests/pull.json b/aws/3-node/manifests/pull.json
new file mode 100644 (file)
index 0000000..100d7e2
--- /dev/null
@@ -0,0 +1,12 @@
+{
+  "apiVersion": "v1",
+  "kind": "Secret",
+  "type": "kubernetes.io/dockerconfigjson",
+  "metadata": {
+    "namespace": "kube-system",
+    "name": "coreos-pull-secret"
+  },
+  "data": {
+    ".dockerconfigjson": "{{ settings.pullSecret }}"
+  }
+}
diff --git a/aws/3-node/openshift/99_binding-discovery.yaml b/aws/3-node/openshift/99_binding-discovery.yaml
new file mode 100644 (file)
index 0000000..79154a8
--- /dev/null
@@ -0,0 +1,13 @@
+kind: ClusterRoleBinding
+apiVersion: rbac.authorization.k8s.io/v1beta1
+metadata:
+  name: discovery
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: ClusterRole
+  name: system:discovery
+subjects:
+- kind: Group
+  name: 'system:unauthenticated'
+- kind: Group
+  name: 'system:authenticated'
diff --git a/aws/3-node/openshift/99_cloud-creds-secret.yaml b/aws/3-node/openshift/99_cloud-creds-secret.yaml
new file mode 100644 (file)
index 0000000..e3de44a
--- /dev/null
@@ -0,0 +1,8 @@
+kind: Secret
+apiVersion: v1
+metadata:
+  namespace: kube-system
+  name: aws-creds
+data:
+  aws_access_key_id: {{ settings.AWSAccessKey}}
+  aws_secret_access_key: {{ settings.AWSSecretKey }}
diff --git a/aws/3-node/openshift/99_kubeadmin-password-secret.yaml b/aws/3-node/openshift/99_kubeadmin-password-secret.yaml
new file mode 100644 (file)
index 0000000..228b66d
--- /dev/null
@@ -0,0 +1,7 @@
+kind: Secret
+apiVersion: v1
+metadata:
+  namespace: kube-system
+  name: kubeadmin
+data:
+  kubeadmin: {{ settings.KubeAdminPassword }}
diff --git a/aws/3-node/openshift/99_openshift-cluster-api_cluster.yaml b/aws/3-node/openshift/99_openshift-cluster-api_cluster.yaml
new file mode 100644 (file)
index 0000000..9fd5ef1
--- /dev/null
@@ -0,0 +1,17 @@
+apiVersion: machine.openshift.io/v1beta1
+kind: Cluster
+metadata:
+  creationTimestamp: null
+  name: {{ settings.clusterName }}
+  namespace: openshift-machine-api
+spec:
+  clusterNetwork:
+    pods:
+      cidrBlocks:
+      - {{ settings.clusterCIDR }}
+    serviceDomain: ""
+    services:
+      cidrBlocks:
+      - {{ settings.serviceCIDR }}
+  providerSpec: {}
+status: {}
diff --git a/aws/3-node/openshift/99_openshift-cluster-api_master-machines-0.yaml b/aws/3-node/openshift/99_openshift-cluster-api_master-machines-0.yaml
new file mode 100644 (file)
index 0000000..e03527d
--- /dev/null
@@ -0,0 +1,57 @@
+apiVersion: machine.openshift.io/v1beta1
+kind: Machine
+metadata:
+  creationTimestamp: null
+  labels:
+    sigs.k8s.io/cluster-api-cluster: {{ settings.clusterName }}
+    sigs.k8s.io/cluster-api-machine-role: master
+    sigs.k8s.io/cluster-api-machine-type: master
+  name: {{ settings.clusterName }}-master-0
+  namespace: openshift-machine-api
+spec:
+  metadata:
+    creationTimestamp: null
+  providerSpec:
+    value:
+      ami:
+        id: {{ settings.AmiID }}
+      apiVersion: awsproviderconfig.openshift.io/v1beta1
+      blockDevices:
+      - ebs:
+          iops: 0
+          volumeSize: 120
+          volumeType: gp2
+      deviceIndex: 0
+      iamInstanceProfile:
+        id: {{ settings.clusterName }}-master-profile
+      instanceType: m4.xlarge
+      kind: AWSMachineProviderConfig
+      loadBalancers:
+      - name: {{ settings.clusterName }}-ext
+        type: network
+      - name: {{ settings.clusterName }}-int
+        type: network
+      metadata:
+        creationTimestamp: null
+      placement:
+        availabilityZone: {{ settings.AWSRegion }}a
+        region: {{ settings.AWSRegion }}
+      publicIp: null
+      securityGroups:
+      - filters:
+        - name: tag:Name
+          values:
+          - {{ settings.clusterName }}-master-sg
+      subnet:
+        filters:
+        - name: tag:Name
+          values:
+          - {{ settings.clusterName }}-private-{{ settings.AWSRegion }}-1a
+      tags:
+      - name: kubernetes.io/cluster/{{ settings.clusterName }}
+        value: owned
+      userDataSecret:
+        name: master-user-data
+  versions:
+    kubelet: ""
+status: {}
diff --git a/aws/3-node/openshift/99_openshift-cluster-api_master-machines-1.yaml b/aws/3-node/openshift/99_openshift-cluster-api_master-machines-1.yaml
new file mode 100644 (file)
index 0000000..04cfec2
--- /dev/null
@@ -0,0 +1,57 @@
+apiVersion: machine.openshift.io/v1beta1
+kind: Machine
+metadata:
+  creationTimestamp: null
+  labels:
+    sigs.k8s.io/cluster-api-cluster: {{ settings.clusterName }}
+    sigs.k8s.io/cluster-api-machine-role: master
+    sigs.k8s.io/cluster-api-machine-type: master
+  name: {{ settings.clusterName }}-master-1
+  namespace: openshift-machine-api
+spec:
+  metadata:
+    creationTimestamp: null
+  providerSpec:
+    value:
+      ami:
+        id: {{ AWS.AmiID }}
+      apiVersion: awsproviderconfig.openshift.io/v1beta1
+      blockDevices:
+      - ebs:
+          iops: 0
+          volumeSize: 120
+          volumeType: gp2
+      deviceIndex: 0
+      iamInstanceProfile:
+        id: {{ settings.clusterName }}-master-profile
+      instanceType: m4.xlarge
+      kind: AWSMachineProviderConfig
+      loadBalancers:
+      - name: {{ settings.clusterName }}-ext
+        type: network
+      - name: {{ settings.clusterName }}-int
+        type: network
+      metadata:
+        creationTimestamp: null
+      placement:
+        availabilityZone: {{ settings.AWSRegion }}b
+        region: {{ settings.AWSRegion }}
+      publicIp: null
+      securityGroups:
+      - filters:
+        - name: tag:Name
+          values:
+          - {{ settings.clusterName }}-master-sg
+      subnet:
+        filters:
+        - name: tag:Name
+          values:
+          - {{ settings.clusterName }}-private-{{ settings.AWSRegion }}b
+      tags:
+      - name: kubernetes.io/cluster/{{ settings.clusterName }}
+        value: owned
+      userDataSecret:
+        name: master-user-data
+  versions:
+    kubelet: ""
+status: {}
diff --git a/aws/3-node/openshift/99_openshift-cluster-api_master-machines-2.yaml b/aws/3-node/openshift/99_openshift-cluster-api_master-machines-2.yaml
new file mode 100644 (file)
index 0000000..74af9c8
--- /dev/null
@@ -0,0 +1,57 @@
+apiVersion: machine.openshift.io/v1beta1
+kind: Machine
+metadata:
+  creationTimestamp: null
+  labels:
+    sigs.k8s.io/cluster-api-cluster: {{ settings.clusterName }}
+    sigs.k8s.io/cluster-api-machine-role: master
+    sigs.k8s.io/cluster-api-machine-type: master
+  name: {{ settings.clusterName }}-master-2
+  namespace: openshift-machine-api
+spec:
+  metadata:
+    creationTimestamp: null
+  providerSpec:
+    value:
+      ami:
+        id: {{ settings.AmiID }}
+      apiVersion: awsproviderconfig.openshift.io/v1beta1
+      blockDevices:
+      - ebs:
+          iops: 0
+          volumeSize: 120
+          volumeType: gp2
+      deviceIndex: 0
+      iamInstanceProfile:
+        id: {{ settings.clusterName }}-master-profile
+      instanceType: m4.xlarge
+      kind: AWSMachineProviderConfig
+      loadBalancers:
+      - name: {{ settings.clusterName }}-ext
+        type: network
+      - name: {{ settings.clusterName }}-int
+        type: network
+      metadata:
+        creationTimestamp: null
+      placement:
+        availabilityZone: {{ settings.AWSRegion }}a
+        region: {{ settings.AWSRegion }}
+      publicIp: null
+      securityGroups:
+      - filters:
+        - name: tag:Name
+          values:
+          - {{ settings.clusterName }}-master-sg
+      subnet:
+        filters:
+        - name: tag:Name
+          values:
+          - {{ settings.clusterName }}-private-{{ settings.AWSRegion }}a
+      tags:
+      - name: kubernetes.io/cluster/{{ settings.clusterName }}
+        value: owned
+      userDataSecret:
+        name: master-user-data
+  versions:
+    kubelet: ""
+status: {}
diff --git a/aws/3-node/openshift/99_openshift-cluster-api_master-user-data-secret.yaml b/aws/3-node/openshift/99_openshift-cluster-api_master-user-data-secret.yaml
new file mode 100644 (file)
index 0000000..edee210
--- /dev/null
@@ -0,0 +1,15 @@
+
+kind: List
+apiVersion: v1
+metadata:
+  resourceVersion: ""
+  selfLink: ""
+items:
+- apiVersion: v1
+  kind: Secret
+  metadata:
+    name: master-user-data
+    namespace: openshift-machine-api
+  type: Opaque
+  data:
+    userData: {{ settings.masterUserData }}
diff --git a/aws/3-node/openshift/99_openshift-cluster-api_worker-machineset.yaml b/aws/3-node/openshift/99_openshift-cluster-api_worker-machineset.yaml
new file mode 100644 (file)
index 0000000..84d8c7c
--- /dev/null
@@ -0,0 +1,138 @@
+apiVersion: v1
+items:
+- apiVersion: machine.openshift.io/v1beta1
+  kind: MachineSet
+  metadata:
+    creationTimestamp: null
+    labels:
+      sigs.k8s.io/cluster-api-cluster: {{ settings.clusterName }}
+      sigs.k8s.io/cluster-api-machine-role: worker
+      sigs.k8s.io/cluster-api-machine-type: worker
+    name: {{ settings.clusterName }}-worker-{{ settings.AWSRegion }}a
+    namespace: openshift-machine-api
+  spec:
+    replicas: 2
+    selector:
+      matchLabels:
+        sigs.k8s.io/cluster-api-cluster: {{ settings.clusterName }}
+        sigs.k8s.io/cluster-api-machineset: {{ settings.clusterName }}-worker-{{ settings.AWSRegion }}a
+    template:
+      metadata:
+        creationTimestamp: null
+        labels:
+          sigs.k8s.io/cluster-api-cluster: {{ settings.clusterName }}
+          sigs.k8s.io/cluster-api-machine-role: worker
+          sigs.k8s.io/cluster-api-machine-type: worker
+          sigs.k8s.io/cluster-api-machineset: {{ settings.clusterName }}-worker-{{ settings.AWSRegion }}a
+      spec:
+        metadata:
+          creationTimestamp: null
+        providerSpec:
+          value:
+            ami:
+              id: {{ settings.AmiID }}
+            apiVersion: awsproviderconfig.openshift.io/v1beta1
+            blockDevices:
+            - ebs:
+                iops: 0
+                volumeSize: 120
+                volumeType: gp2
+            deviceIndex: 0
+            iamInstanceProfile:
+              id: {{ settings.clusterName }}-worker-profile
+            instanceType: m4.large
+            kind: AWSMachineProviderConfig
+            metadata:
+              creationTimestamp: null
+            placement:
+              availabilityZone: {{ settings.AWSRegion }}a
+              region: {{ settings.AWSRegion }}
+            publicIp: null
+            securityGroups:
+            - filters:
+              - name: tag:Name
+                values:
+                - {{ settings.clusterName }}-worker-sg
+            subnet:
+              filters:
+              - name: tag:Name
+                values:
+                - {{ settings.clusterName }}-private-{{ settings.AWSRegion }}a
+            tags:
+            - name: kubernetes.io/cluster/{{ settings.clusterName }}
+              value: owned
+            userDataSecret:
+              name: worker-user-data
+        versions:
+          kubelet: ""
+  status:
+    replicas: 0
+- apiVersion: machine.openshift.io/v1beta1
+  kind: MachineSet
+  metadata:
+    creationTimestamp: null
+    labels:
+      sigs.k8s.io/cluster-api-cluster: {{ settings.clusterName }}
+      sigs.k8s.io/cluster-api-machine-role: worker
+      sigs.k8s.io/cluster-api-machine-type: worker
+    name: {{ settings.clusterName }}-worker-{{ settings.AWSRegion }}b
+    namespace: openshift-machine-api
+  spec:
+    replicas: 1
+    selector:
+      matchLabels:
+        sigs.k8s.io/cluster-api-cluster: {{ settings.clusterName }}
+        sigs.k8s.io/cluster-api-machineset: {{ settings.clusterName }}-worker-{{ settings.AWSRegion }}b
+    template:
+      metadata:
+        creationTimestamp: null
+        labels:
+          sigs.k8s.io/cluster-api-cluster: {{ settings.clusterName }}
+          sigs.k8s.io/cluster-api-machine-role: worker
+          sigs.k8s.io/cluster-api-machine-type: worker
+          sigs.k8s.io/cluster-api-machineset: {{ settings.clusterName }}-worker-{{ settings.AWSRegion }}b
+      spec:
+        metadata:
+          creationTimestamp: null
+        providerSpec:
+          value:
+            ami:
+              id: {{ settings.AmiID }}
+            apiVersion: awsproviderconfig.openshift.io/v1beta1
+            blockDevices:
+            - ebs:
+                iops: 0
+                volumeSize: 120
+                volumeType: gp2
+            deviceIndex: 0
+            iamInstanceProfile:
+              id: {{ settings.clusterName }}-worker-profile
+            instanceType: m4.large
+            kind: AWSMachineProviderConfig
+            metadata:
+              creationTimestamp: null
+            placement:
+              availabilityZone: {{ settings.AWSRegion }}b
+              region: {{ settings.AWSRegion }}
+            publicIp: null
+            securityGroups:
+            - filters:
+              - name: tag:Name
+                values:
+                - {{ settings.clusterName }}-worker-sg
+            subnet:
+              filters:
+              - name: tag:Name
+                values:
+                - {{ settings.clusterName }}-private-{{ settings.AWSRegion }}b
+            tags:
+            - name: kubernetes.io/cluster/{{ settings.clusterName }}
+              value: owned
+            userDataSecret:
+              name: worker-user-data
+        versions:
+          kubelet: ""
+  status:
+    replicas: 0
+kind: List
+metadata: {}
diff --git a/aws/3-node/openshift/99_openshift-cluster-api_worker-user-data-secret.yaml b/aws/3-node/openshift/99_openshift-cluster-api_worker-user-data-secret.yaml
new file mode 100644 (file)
index 0000000..e57fbc4
--- /dev/null
@@ -0,0 +1,15 @@
+
+kind: List
+apiVersion: v1
+metadata:
+  resourceVersion: ""
+  selfLink: ""
+items:
+- apiVersion: v1
+  kind: Secret
+  metadata:
+    name: worker-user-data
+    namespace: openshift-machine-api
+  type: Opaque
+  data:
+    userData: {{ settings.workerUserData }}
diff --git a/aws/3-node/openshift/99_role-cloud-creds-secret-reader.yaml b/aws/3-node/openshift/99_role-cloud-creds-secret-reader.yaml
new file mode 100644 (file)
index 0000000..35d5771
--- /dev/null
@@ -0,0 +1,10 @@
+kind: Role
+apiVersion: rbac.authorization.k8s.io/v1beta1
+metadata:
+  namespace: kube-system
+  name: aws-creds-secret-reader
+rules:
+- apiGroups: [""]
+  resources: ["secrets"]
+  resourceNames: ["aws-creds"]
+  verbs: ["get"]
diff --git a/aws/sample_settings.yaml b/aws/sample_settings.yaml
new file mode 100644 (file)
index 0000000..5f99ce8
--- /dev/null
@@ -0,0 +1,9 @@
+settings:
+  baseDomain: "devcluster.openshift.com"
+  clusterName: "kni-edge"
+  clusterCIDR: "10.128.0.0/14"
+  clusterSubnetLength: 9
+  machineCIDR: "10.0.0.0/16"
+  serviceCIDR: "172.30.0.0/16"
+  SDNType: "OpenShiftSDN"
+  AWSRegion: "us-west-1"
diff --git a/libvirt/1-node/install-config.yaml.go b/libvirt/1-node/install-config.yaml.go
new file mode 100644 (file)
index 0000000..f17b519
--- /dev/null
@@ -0,0 +1,26 @@
+apiVersion: v1beta3
+baseDomain: {{ .baseDomain }}
+compute:
+- name: worker
+  platform: {}
+  replicas: 1
+controlPlane:
+  name: master
+  platform: {}
+  replicas: 1
+metadata:
+  creationTimestamp: null
+  name: {{ .clusterName }}
+networking:
+  clusterNetworks:
+  - cidr: {{ .clusterCIDR }}
+    hostSubnetLength: {{ .clusterSubnetLength }}
+  machineCIDR: {{ .machineCIDR }}
+  serviceCIDR: {{ .serviceCIDR }}
+  type: {{ .SDNType }}
+platform:
+  libvirt:
+    URI: {{ .libvirtURI }}
+pullSecret: '{{ .pullSecret }}'
+sshKey: |
+  {{ .SSHKey }}
diff --git a/libvirt/1-node/manifests/04-openshift-machine-config-operator.yaml b/libvirt/1-node/manifests/04-openshift-machine-config-operator.yaml
new file mode 100644 (file)
index 0000000..83c8515
--- /dev/null
@@ -0,0 +1,7 @@
+apiVersion: v1
+kind: Namespace
+metadata:
+  name: openshift-machine-config-operator
+  labels:
+    name: openshift-machine-config-operator
+    openshift.io/run-level: "1"
diff --git a/libvirt/1-node/manifests/cluster-config.yaml b/libvirt/1-node/manifests/cluster-config.yaml
new file mode 100644 (file)
index 0000000..11d9d03
--- /dev/null
@@ -0,0 +1,35 @@
+apiVersion: v1
+data:
+  install-config: |
+    apiVersion: v1beta3
+    baseDomain: {{ settings.baseDomain }}
+    compute:
+    - name: worker
+      platform: {}
+      replicas: {{ settings.numWorkers }}
+    controlPlane:
+      name: master
+      platform: {}
+      replicas: 1
+    metadata:
+      creationTimestamp: null
+      name: {{ settings.clusterName }}
+    networking:
+      clusterNetworks:
+      - cidr: {{ settings.clusterCIDR }}
+        hostSubnetLength: {{ settings.hostSubnetLength }}
+      machineCIDR: {{ settings.machineCIDR }}
+      serviceCIDR: {{ settings.serviceCIDR }}
+      type: {{ settings.SDNType}}
+    platform:
+      libvirt:
+        URI: {{ settings.libvirtURI }}
+        network:
+          if: {{ settings.interface }}
+    pullSecret: '{{ settings.pullSecret }}'
+    sshKey: |
+      {{ settings.sshKey }}
+kind: ConfigMap
+metadata:
+  name: cluster-config-v1
+  namespace: kube-system
diff --git a/libvirt/1-node/manifests/cluster-dns-02-config.yml b/libvirt/1-node/manifests/cluster-dns-02-config.yml
new file mode 100644 (file)
index 0000000..2482ab7
--- /dev/null
@@ -0,0 +1,8 @@
+apiVersion: config.openshift.io/v1
+kind: DNS
+metadata:
+  creationTimestamp: null
+  name: cluster
+spec:
+  baseDomain: {{ settings.clusterName }}.{{ settings.baseDomain }}
+status: {}
diff --git a/libvirt/1-node/manifests/cluster-infrastructure-02-config.yml b/libvirt/1-node/manifests/cluster-infrastructure-02-config.yml
new file mode 100644 (file)
index 0000000..27982e0
--- /dev/null
@@ -0,0 +1,10 @@
+apiVersion: config.openshift.io/v1
+kind: Infrastructure
+metadata:
+  creationTimestamp: null
+  name: cluster
+spec: {}
+status:
+  apiServerURL: https://api.{{ settings.clusterName}}.{{ settings.baseDomain }}:6443
+  etcdDiscoveryDomain: {{ settings.clusterName}}.{{ settings.baseDomain }}
+  platform: Libvirt
diff --git a/libvirt/1-node/manifests/cluster-ingress-02-config.yml b/libvirt/1-node/manifests/cluster-ingress-02-config.yml
new file mode 100644 (file)
index 0000000..a72a0de
--- /dev/null
@@ -0,0 +1,8 @@
+apiVersion: config.openshift.io/v1
+kind: Ingress
+metadata:
+  creationTimestamp: null
+  name: cluster
+spec:
+  domain: apps.{{ settings.clusterName }}.{{ settings.BaseDomain }}
+status: {}
diff --git a/libvirt/1-node/manifests/cluster-network-01-crd.yml b/libvirt/1-node/manifests/cluster-network-01-crd.yml
new file mode 100644 (file)
index 0000000..59076ce
--- /dev/null
@@ -0,0 +1,21 @@
+
+---
+# This is the advanced network configuration CRD
+# Only necessary if you need to tweak certain settings.
+# See https://github.com/openshift/cluster-network-operator#configuring
+apiVersion: apiextensions.k8s.io/v1beta1
+kind: CustomResourceDefinition
+metadata:
+  name: networkconfigs.networkoperator.openshift.io
+spec:
+  group: networkoperator.openshift.io
+  names:
+    kind: NetworkConfig
+    listKind: NetworkConfigList
+    plural: networkconfigs
+    singular: networkconfig
+  scope: Cluster
+  versions:
+  - name: v1
+    served: true
+    storage: true
diff --git a/libvirt/1-node/manifests/cluster-network-02-config.yml b/libvirt/1-node/manifests/cluster-network-02-config.yml
new file mode 100644 (file)
index 0000000..a1ce3a3
--- /dev/null
@@ -0,0 +1,17 @@
+apiVersion: config.openshift.io/v1
+kind: Network
+metadata:
+  creationTimestamp: null
+  name: cluster
+spec:
+  clusterNetwork:
+  - cidr: {{ settings.clusterCIDR }}
+    hostPrefix: 23
+  networkType: {{ settings.SDNType }}
+  serviceNetwork:
+  - {{ settings.serviceNetworkCIDR }}
+status:
+  clusterNetwork: null
+  clusterNetworkMTU: 0
+  networkType: ""
+  serviceNetwork: null
diff --git a/libvirt/1-node/manifests/cvo-overrides.yaml b/libvirt/1-node/manifests/cvo-overrides.yaml
new file mode 100644 (file)
index 0000000..98bc7a8
--- /dev/null
@@ -0,0 +1,9 @@
+apiVersion: config.openshift.io/v1
+kind: ClusterVersion
+metadata:
+  namespace: openshift-cluster-version
+  name: version
+spec:
+  upstream: https://api.openshift.com/api/upgrades_info/v1/graph
+  channel: stable-4.0
+  clusterID: 982757a4-76b7-4c4d-98f2-7f053599cb55
diff --git a/libvirt/1-node/manifests/etcd-service.yaml b/libvirt/1-node/manifests/etcd-service.yaml
new file mode 100644 (file)
index 0000000..9a24566
--- /dev/null
@@ -0,0 +1,15 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: etcd
+  namespace: kube-system
+  labels:
+    # this label is used to indicate that it should be scraped by prometheus
+    k8s-app: etcd
+spec:
+  selector:
+    k8s-app: etcd
+  ports:
+  - name: etcd
+    port: 2379
+    protocol: TCP
diff --git a/libvirt/1-node/manifests/host-etcd-service-endpoints.yaml b/libvirt/1-node/manifests/host-etcd-service-endpoints.yaml
new file mode 100644 (file)
index 0000000..86b77d2
--- /dev/null
@@ -0,0 +1,15 @@
+apiVersion: v1
+kind: Endpoints
+metadata:
+  name: host-etcd
+  namespace: kube-system
+  annotations:
+    alpha.installer.openshift.io/dns-suffix: {{ settings.clusterName }}.{{ settings.BaseDomain }}
+subsets:
+- addresses:
+  - ip: 192.0.2.1
+    hostname: etcd-0
+  ports:
+  - name: etcd
+    port: 2379
+    protocol: TCP
diff --git a/libvirt/1-node/manifests/host-etcd-service.yaml b/libvirt/1-node/manifests/host-etcd-service.yaml
new file mode 100644 (file)
index 0000000..348a29b
--- /dev/null
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: host-etcd
+  namespace: kube-system
+  labels:
+    # this label is used to indicate that it should be scraped by prometheus
+    k8s-app: etcd
+spec:
+  clusterIP: None
+  ports:
+  - name: etcd
+    port: 2379
+    protocol: TCP
diff --git a/libvirt/1-node/manifests/kube-cloud-config.yaml b/libvirt/1-node/manifests/kube-cloud-config.yaml
new file mode 100644 (file)
index 0000000..b42fdad
--- /dev/null
@@ -0,0 +1,8 @@
+apiVersion: v1
+kind: Secret
+metadata:
+  name: kube-cloud-cfg
+  namespace: kube-system
+type: Opaque
+data:
+  config: ""
diff --git a/libvirt/1-node/manifests/kube-system-configmap-etcd-serving-ca.yaml b/libvirt/1-node/manifests/kube-system-configmap-etcd-serving-ca.yaml
new file mode 100644 (file)
index 0000000..973842f
--- /dev/null
@@ -0,0 +1,8 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: etcd-serving-ca
+  namespace: kube-system
+data:
+  ca-bundle.crt: |
+    {{ settings.caBundleCRT }}
diff --git a/libvirt/1-node/manifests/kube-system-configmap-root-ca.yaml b/libvirt/1-node/manifests/kube-system-configmap-root-ca.yaml
new file mode 100644 (file)
index 0000000..3591c21
--- /dev/null
@@ -0,0 +1,8 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: root-ca
+  namespace: kube-system
+data:
+  ca.crt: |
+    {{ settings.rootCRT }}
diff --git a/libvirt/1-node/manifests/kube-system-secret-etcd-client.yaml b/libvirt/1-node/manifests/kube-system-secret-etcd-client.yaml
new file mode 100644 (file)
index 0000000..dd068e1
--- /dev/null
@@ -0,0 +1,9 @@
+apiVersion: v1
+kind: Secret
+metadata:
+  name: etcd-client
+  namespace: kube-system
+type: SecretTypeTLS
+data:
+  tls.crt: {{ settings.SecretTLSCRT }}
+  tls.key: {{ settings.SecretTLSKey }}
diff --git a/libvirt/1-node/manifests/machine-config-server-tls-secret.yaml b/libvirt/1-node/manifests/machine-config-server-tls-secret.yaml
new file mode 100644 (file)
index 0000000..854087a
--- /dev/null
@@ -0,0 +1,9 @@
+apiVersion: v1
+kind: Secret
+metadata:
+  name: machine-config-server-tls
+  namespace: openshift-machine-config-operator
+type: Opaque
+data:
+  tls.crt: {{ settings.MachineTLSCRT }}
+  tls.key: {{ settings.MachineTLSKey }}
diff --git a/libvirt/1-node/manifests/pull.json b/libvirt/1-node/manifests/pull.json
new file mode 100644 (file)
index 0000000..100d7e2
--- /dev/null
@@ -0,0 +1,12 @@
+{
+  "apiVersion": "v1",
+  "kind": "Secret",
+  "type": "kubernetes.io/dockerconfigjson",
+  "metadata": {
+    "namespace": "kube-system",
+    "name": "coreos-pull-secret"
+  },
+  "data": {
+    ".dockerconfigjson": "{{ settings.pullSecret }}"
+  }
+}
diff --git a/libvirt/1-node/openshift/99_binding-discovery.yaml b/libvirt/1-node/openshift/99_binding-discovery.yaml
new file mode 100644 (file)
index 0000000..79154a8
--- /dev/null
@@ -0,0 +1,13 @@
+kind: ClusterRoleBinding
+apiVersion: rbac.authorization.k8s.io/v1beta1
+metadata:
+  name: discovery
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: ClusterRole
+  name: system:discovery
+subjects:
+- kind: Group
+  name: 'system:unauthenticated'
+- kind: Group
+  name: 'system:authenticated'
diff --git a/libvirt/1-node/openshift/99_kubeadmin-password-secret.yaml b/libvirt/1-node/openshift/99_kubeadmin-password-secret.yaml
new file mode 100644 (file)
index 0000000..228b66d
--- /dev/null
@@ -0,0 +1,7 @@
+kind: Secret
+apiVersion: v1
+metadata:
+  namespace: kube-system
+  name: kubeadmin
+data:
+  kubeadmin: {{ settings.KubeAdminPassword }}
diff --git a/libvirt/1-node/openshift/99_openshift-cluster-api_cluster.yaml b/libvirt/1-node/openshift/99_openshift-cluster-api_cluster.yaml
new file mode 100644 (file)
index 0000000..9fd5ef1
--- /dev/null
@@ -0,0 +1,17 @@
+apiVersion: machine.openshift.io/v1beta1
+kind: Cluster
+metadata:
+  creationTimestamp: null
+  name: {{ settings.clusterName }}
+  namespace: openshift-machine-api
+spec:
+  clusterNetwork:
+    pods:
+      cidrBlocks:
+      - {{ settings.clusterCIDR }}
+    serviceDomain: ""
+    services:
+      cidrBlocks:
+      - {{ settings.serviceCIDR }}
+  providerSpec: {}
+status: {}
diff --git a/libvirt/1-node/openshift/99_openshift-cluster-api_master-machines-0.yaml b/libvirt/1-node/openshift/99_openshift-cluster-api_master-machines-0.yaml
new file mode 100644 (file)
index 0000000..8525e2c
--- /dev/null
@@ -0,0 +1,36 @@
+apiVersion: machine.openshift.io/v1beta1
+kind: Machine
+metadata:
+  creationTimestamp: null
+  labels:
+    sigs.k8s.io/cluster-api-cluster: {{ settings.clusterName }}
+    sigs.k8s.io/cluster-api-machine-role: master
+    sigs.k8s.io/cluster-api-machine-type: master
+  name: {{ settings.clusterName }}-master-0
+  namespace: openshift-machine-api
+spec:
+  metadata:
+    creationTimestamp: null
+  providerSpec:
+    value:
+      apiVersion: libvirtproviderconfig.k8s.io/v1alpha1
+      autostart: false
+      cloudInit: null
+      domainMemory: 2048
+      domainVcpu: 2
+      ignKey: ""
+      ignition:
+        userDataSecret: master-user-data
+      kind: LibvirtMachineProviderConfig
+      networkInterfaceAddress: 192.168.126.0/24
+      networkInterfaceHostname: ""
+      networkInterfaceName: test
+      networkUUID: ""
+      uri: {{ settings.libvirtURI }}
+      volume:
+        baseVolumeID: /var/lib/libvirt/images/test-base
+        poolName: default
+        volumeName: ""
+  versions:
+    kubelet: ""
+status: {}
diff --git a/libvirt/1-node/openshift/99_openshift-cluster-api_master-user-data-secret.yaml b/libvirt/1-node/openshift/99_openshift-cluster-api_master-user-data-secret.yaml
new file mode 100644 (file)
index 0000000..edee210
--- /dev/null
@@ -0,0 +1,15 @@
+
+kind: List
+apiVersion: v1
+metadata:
+  resourceVersion: ""
+  selfLink: ""
+items:
+- apiVersion: v1
+  kind: Secret
+  metadata:
+    name: master-user-data
+    namespace: openshift-machine-api
+  type: Opaque
+  data:
+    userData: {{ settings.masterUserData }}
diff --git a/libvirt/1-node/openshift/99_openshift-cluster-api_worker-machineset.yaml b/libvirt/1-node/openshift/99_openshift-cluster-api_worker-machineset.yaml
new file mode 100644 (file)
index 0000000..addc47f
--- /dev/null
@@ -0,0 +1,55 @@
+apiVersion: v1
+items:
+- apiVersion: machine.openshift.io/v1beta1
+  kind: MachineSet
+  metadata:
+    creationTimestamp: null
+    labels:
+      sigs.k8s.io/cluster-api-cluster: {{ settings.clusterName }}
+      sigs.k8s.io/cluster-api-machine-role: worker
+      sigs.k8s.io/cluster-api-machine-type: worker
+    name: {{ settings.clusterName }}-worker-0
+    namespace: openshift-machine-api
+  spec:
+    replicas: 2
+    selector:
+      matchLabels:
+        sigs.k8s.io/cluster-api-cluster: {{ settings.clusterName }}
+        sigs.k8s.io/cluster-api-machineset: {{ settings.clusterName }}-worker-0
+    template:
+      metadata:
+        creationTimestamp: null
+        labels:
+          sigs.k8s.io/cluster-api-cluster: {{ settings.clusterName }}
+          sigs.k8s.io/cluster-api-machine-role: worker
+          sigs.k8s.io/cluster-api-machine-type: worker
+          sigs.k8s.io/cluster-api-machineset: {{ settings.clusterName }}-worker-0
+      spec:
+        metadata:
+          creationTimestamp: null
+        providerSpec:
+          value:
+            apiVersion: libvirtproviderconfig.k8s.io/v1alpha1
+            autostart: false
+            cloudInit: null
+            domainMemory: 2048
+            domainVcpu: 2
+            ignKey: ""
+            ignition:
+              userDataSecret: worker-user-data
+            kind: LibvirtMachineProviderConfig
+            networkInterfaceAddress: 192.168.126.0/24
+            networkInterfaceHostname: ""
+            networkInterfaceName: test
+            networkUUID: ""
+            uri: {{ settings.libvirtURI }}
+            volume:
+              baseVolumeID: /var/lib/libvirt/images/test-base
+              poolName: default
+              volumeName: ""
+        versions:
+          kubelet: ""
+  status:
+    replicas: 0
+kind: List
+metadata: {}
diff --git a/libvirt/1-node/openshift/99_openshift-cluster-api_worker-user-data-secret.yaml b/libvirt/1-node/openshift/99_openshift-cluster-api_worker-user-data-secret.yaml
new file mode 100644 (file)
index 0000000..e57fbc4
--- /dev/null
@@ -0,0 +1,15 @@
+
+kind: List
+apiVersion: v1
+metadata:
+  resourceVersion: ""
+  selfLink: ""
+items:
+- apiVersion: v1
+  kind: Secret
+  metadata:
+    name: worker-user-data
+    namespace: openshift-machine-api
+  type: Opaque
+  data:
+    userData: {{ settings.workerUserData }}
diff --git a/libvirt/3-node/install-config.yaml.go b/libvirt/3-node/install-config.yaml.go
new file mode 100644 (file)
index 0000000..e63178e
--- /dev/null
@@ -0,0 +1,28 @@
+apiVersion: v1beta3
+baseDomain: {{ .baseDomain }}
+compute:
+- name: worker
+  platform: {}
+  replicas: 3
+controlPlane:
+  name: master
+  platform: {}
+  replicas: 3
+metadata:
+  creationTimestamp: null
+  name: {{ .clusterName }}
+networking:
+  clusterNetworks:
+  - cidr: {{ .clusterCIDR }}
+    hostSubnetLength: {{ .clusterSubnetLength }}
+  machineCIDR: {{ .machineCIDR }}
+  serviceCIDR: {{ .serviceCIDR }}
+  type: {{ .SDNType }}
+platform:
+  libvirt:
+    URI: {{ .libvirtURI }}
+    network:
+      if: tt0
+pullSecret: '{{ .pullSecret }}'
+sshKey: |
+  {{ .SSHKey }}
diff --git a/libvirt/3-node/manifests/04-openshift-machine-config-operator.yaml b/libvirt/3-node/manifests/04-openshift-machine-config-operator.yaml
new file mode 100644 (file)
index 0000000..83c8515
--- /dev/null
@@ -0,0 +1,7 @@
+apiVersion: v1
+kind: Namespace
+metadata:
+  name: openshift-machine-config-operator
+  labels:
+    name: openshift-machine-config-operator
+    openshift.io/run-level: "1"
diff --git a/libvirt/3-node/manifests/cluster-config.yaml b/libvirt/3-node/manifests/cluster-config.yaml
new file mode 100644 (file)
index 0000000..8f63889
--- /dev/null
@@ -0,0 +1,35 @@
+apiVersion: v1
+data:
+  install-config: |
+    apiVersion: v1beta3
+    baseDomain: {{ settings.baseDomain }}
+    compute:
+    - name: worker
+      platform: {}
+      replicas: 3
+    controlPlane:
+      name: master
+      platform: {}
+      replicas: 3
+    metadata:
+      creationTimestamp: null
+      name: {{ settings.clusterName }}
+    networking:
+      clusterNetworks:
+      - cidr: {{ settings.clusterCIDR }}
+        hostSubnetLength: {{ settings.hostSubnetLength }}
+      machineCIDR: {{ settings.machineCIDR }}
+      serviceCIDR: {{ settings.serviceCIDR }}
+      type: {{ settings.SDNType }}
+    platform:
+      libvirt:
+        URI: {{ settings.libvirtURI }}
+        network:
+          if: tt0
+    pullSecret: '{{ settings.pullSecret }}'
+    sshKey: |
+      {{ settings.sshKey }}
+kind: ConfigMap
+metadata:
+  name: cluster-config-v1
+  namespace: kube-system
diff --git a/libvirt/3-node/manifests/cluster-dns-02-config.yml b/libvirt/3-node/manifests/cluster-dns-02-config.yml
new file mode 100644 (file)
index 0000000..2482ab7
--- /dev/null
@@ -0,0 +1,8 @@
+apiVersion: config.openshift.io/v1
+kind: DNS
+metadata:
+  creationTimestamp: null
+  name: cluster
+spec:
+  baseDomain: {{ settings.clusterName }}.{{ settings.baseDomain }}
+status: {}
diff --git a/libvirt/3-node/manifests/cluster-infrastructure-02-config.yml b/libvirt/3-node/manifests/cluster-infrastructure-02-config.yml
new file mode 100644 (file)
index 0000000..2b23549
--- /dev/null
@@ -0,0 +1,10 @@
+apiVersion: config.openshift.io/v1
+kind: Infrastructure
+metadata:
+  creationTimestamp: null
+  name: cluster
+spec: {}
+status:
+  apiServerURL: https://api.{{ settings.clusterName }}.{{ settings.baseDomain }}:6443
+  etcdDiscoveryDomain: {{ settings.clusterName }}.{{ settings.baseDomain }}
+  platform: Libvirt
diff --git a/libvirt/3-node/manifests/cluster-ingress-02-config.yml b/libvirt/3-node/manifests/cluster-ingress-02-config.yml
new file mode 100644 (file)
index 0000000..a72a0de
--- /dev/null
@@ -0,0 +1,8 @@
+apiVersion: config.openshift.io/v1
+kind: Ingress
+metadata:
+  creationTimestamp: null
+  name: cluster
+spec:
+  domain: apps.{{ settings.clusterName }}.{{ settings.BaseDomain }}
+status: {}
diff --git a/libvirt/3-node/manifests/cluster-network-01-crd.yml b/libvirt/3-node/manifests/cluster-network-01-crd.yml
new file mode 100644 (file)
index 0000000..59076ce
--- /dev/null
@@ -0,0 +1,21 @@
+
+---
+# This is the advanced network configuration CRD
+# Only necessary if you need to tweak certain settings.
+# See https://github.com/openshift/cluster-network-operator#configuring
+apiVersion: apiextensions.k8s.io/v1beta1
+kind: CustomResourceDefinition
+metadata:
+  name: networkconfigs.networkoperator.openshift.io
+spec:
+  group: networkoperator.openshift.io
+  names:
+    kind: NetworkConfig
+    listKind: NetworkConfigList
+    plural: networkconfigs
+    singular: networkconfig
+  scope: Cluster
+  versions:
+  - name: v1
+    served: true
+    storage: true
diff --git a/libvirt/3-node/manifests/cluster-network-02-config.yml b/libvirt/3-node/manifests/cluster-network-02-config.yml
new file mode 100644 (file)
index 0000000..a1ce3a3
--- /dev/null
@@ -0,0 +1,17 @@
+apiVersion: config.openshift.io/v1
+kind: Network
+metadata:
+  creationTimestamp: null
+  name: cluster
+spec:
+  clusterNetwork:
+  - cidr: {{ settings.clusterCIDR }}
+    hostPrefix: 23
+  networkType: {{ settings.SDNType }}
+  serviceNetwork:
+  - {{ settings.serviceNetworkCIDR }}
+status:
+  clusterNetwork: null
+  clusterNetworkMTU: 0
+  networkType: ""
+  serviceNetwork: null
diff --git a/libvirt/3-node/manifests/cvo-overrides.yaml b/libvirt/3-node/manifests/cvo-overrides.yaml
new file mode 100644 (file)
index 0000000..b7fdd56
--- /dev/null
@@ -0,0 +1,9 @@
+apiVersion: config.openshift.io/v1
+kind: ClusterVersion
+metadata:
+  namespace: openshift-cluster-version
+  name: version
+spec:
+  upstream: https://api.openshift.com/api/upgrades_info/v1/graph
+  channel: stable-4.0
+  clusterID: 763dddad-2ced-488c-9c0f-4f925b4f7f47
diff --git a/libvirt/3-node/manifests/etcd-service.yaml b/libvirt/3-node/manifests/etcd-service.yaml
new file mode 100644 (file)
index 0000000..9a24566
--- /dev/null
@@ -0,0 +1,15 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: etcd
+  namespace: kube-system
+  labels:
+    # this label is used to indicate that it should be scraped by prometheus
+    k8s-app: etcd
+spec:
+  selector:
+    k8s-app: etcd
+  ports:
+  - name: etcd
+    port: 2379
+    protocol: TCP
diff --git a/libvirt/3-node/manifests/host-etcd-service-endpoints.yaml b/libvirt/3-node/manifests/host-etcd-service-endpoints.yaml
new file mode 100644 (file)
index 0000000..f094dcf
--- /dev/null
@@ -0,0 +1,19 @@
+apiVersion: v1
+kind: Endpoints
+metadata:
+  name: host-etcd
+  namespace: kube-system
+  annotations:
+    alpha.installer.openshift.io/dns-suffix: {{ settings.clusterName }}.{{ settings.BaseDomain }}
+subsets:
+- addresses:
+  - ip: 192.0.2.1
+    hostname: etcd-0
+  - ip: 192.0.2.2
+    hostname: etcd-1
+  - ip: 192.0.2.3
+    hostname: etcd-2
+  ports:
+  - name: etcd
+    port: 2379
+    protocol: TCP
diff --git a/libvirt/3-node/manifests/host-etcd-service.yaml b/libvirt/3-node/manifests/host-etcd-service.yaml
new file mode 100644 (file)
index 0000000..348a29b
--- /dev/null
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: Service
+metadata:
+  name: host-etcd
+  namespace: kube-system
+  labels:
+    # this label is used to indicate that it should be scraped by prometheus
+    k8s-app: etcd
+spec:
+  clusterIP: None
+  ports:
+  - name: etcd
+    port: 2379
+    protocol: TCP
diff --git a/libvirt/3-node/manifests/kube-cloud-config.yaml b/libvirt/3-node/manifests/kube-cloud-config.yaml
new file mode 100644 (file)
index 0000000..b42fdad
--- /dev/null
@@ -0,0 +1,8 @@
+apiVersion: v1
+kind: Secret
+metadata:
+  name: kube-cloud-cfg
+  namespace: kube-system
+type: Opaque
+data:
+  config: ""
diff --git a/libvirt/3-node/manifests/kube-system-configmap-etcd-serving-ca.yaml b/libvirt/3-node/manifests/kube-system-configmap-etcd-serving-ca.yaml
new file mode 100644 (file)
index 0000000..973842f
--- /dev/null
@@ -0,0 +1,8 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: etcd-serving-ca
+  namespace: kube-system
+data:
+  ca-bundle.crt: |
+    {{ settings.caBundleCRT }}
diff --git a/libvirt/3-node/manifests/kube-system-configmap-root-ca.yaml b/libvirt/3-node/manifests/kube-system-configmap-root-ca.yaml
new file mode 100644 (file)
index 0000000..3591c21
--- /dev/null
@@ -0,0 +1,8 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: root-ca
+  namespace: kube-system
+data:
+  ca.crt: |
+    {{ settings.rootCRT }}
diff --git a/libvirt/3-node/manifests/kube-system-secret-etcd-client.yaml b/libvirt/3-node/manifests/kube-system-secret-etcd-client.yaml
new file mode 100644 (file)
index 0000000..dd068e1
--- /dev/null
@@ -0,0 +1,9 @@
+apiVersion: v1
+kind: Secret
+metadata:
+  name: etcd-client
+  namespace: kube-system
+type: SecretTypeTLS
+data:
+  tls.crt: {{ settings.SecretTLSCRT }}
+  tls.key: {{ settings.SecretTLSKey }}
diff --git a/libvirt/3-node/manifests/machine-config-server-tls-secret.yaml b/libvirt/3-node/manifests/machine-config-server-tls-secret.yaml
new file mode 100644 (file)
index 0000000..854087a
--- /dev/null
@@ -0,0 +1,9 @@
+apiVersion: v1
+kind: Secret
+metadata:
+  name: machine-config-server-tls
+  namespace: openshift-machine-config-operator
+type: Opaque
+data:
+  tls.crt: {{ settings.MachineTLSCRT }}
+  tls.key: {{ settings.MachineTLSKey }}
diff --git a/libvirt/3-node/manifests/pull.json b/libvirt/3-node/manifests/pull.json
new file mode 100644 (file)
index 0000000..100d7e2
--- /dev/null
@@ -0,0 +1,12 @@
+{
+  "apiVersion": "v1",
+  "kind": "Secret",
+  "type": "kubernetes.io/dockerconfigjson",
+  "metadata": {
+    "namespace": "kube-system",
+    "name": "coreos-pull-secret"
+  },
+  "data": {
+    ".dockerconfigjson": "{{ settings.pullSecret }}"
+  }
+}
diff --git a/libvirt/3-node/openshift/99_binding-discovery.yaml b/libvirt/3-node/openshift/99_binding-discovery.yaml
new file mode 100644 (file)
index 0000000..79154a8
--- /dev/null
@@ -0,0 +1,13 @@
+kind: ClusterRoleBinding
+apiVersion: rbac.authorization.k8s.io/v1beta1
+metadata:
+  name: discovery
+roleRef:
+  apiGroup: rbac.authorization.k8s.io
+  kind: ClusterRole
+  name: system:discovery
+subjects:
+- kind: Group
+  name: 'system:unauthenticated'
+- kind: Group
+  name: 'system:authenticated'
diff --git a/libvirt/3-node/openshift/99_kubeadmin-password-secret.yaml b/libvirt/3-node/openshift/99_kubeadmin-password-secret.yaml
new file mode 100644 (file)
index 0000000..228b66d
--- /dev/null
@@ -0,0 +1,7 @@
+kind: Secret
+apiVersion: v1
+metadata:
+  namespace: kube-system
+  name: kubeadmin
+data:
+  kubeadmin: {{ settings.KubeAdminPassword }}
diff --git a/libvirt/3-node/openshift/99_openshift-cluster-api_cluster.yaml b/libvirt/3-node/openshift/99_openshift-cluster-api_cluster.yaml
new file mode 100644 (file)
index 0000000..9fd5ef1
--- /dev/null
@@ -0,0 +1,17 @@
+apiVersion: machine.openshift.io/v1beta1
+kind: Cluster
+metadata:
+  creationTimestamp: null
+  name: {{ settings.clusterName }}
+  namespace: openshift-machine-api
+spec:
+  clusterNetwork:
+    pods:
+      cidrBlocks:
+      - {{ settings.clusterCIDR }}
+    serviceDomain: ""
+    services:
+      cidrBlocks:
+      - {{ settings.serviceCIDR }}
+  providerSpec: {}
+status: {}
diff --git a/libvirt/3-node/openshift/99_openshift-cluster-api_master-machines-0.yaml b/libvirt/3-node/openshift/99_openshift-cluster-api_master-machines-0.yaml
new file mode 100644 (file)
index 0000000..7a15fdf
--- /dev/null
@@ -0,0 +1,36 @@
+apiVersion: machine.openshift.io/v1beta1
+kind: Machine
+metadata:
+  creationTimestamp: null
+  labels:
+    sigs.k8s.io/cluster-api-cluster: {{ settings.clusterName }}
+    sigs.k8s.io/cluster-api-machine-role: master
+    sigs.k8s.io/cluster-api-machine-type: master
+  name: {{ settings.clusterName }}-master-0
+  namespace: openshift-machine-api
+spec:
+  metadata:
+    creationTimestamp: null
+  providerSpec:
+    value:
+      apiVersion: libvirtproviderconfig.k8s.io/v1alpha1
+      autostart: false
+      cloudInit: null
+      domainMemory: 4096
+      domainVcpu: 2
+      ignKey: ""
+      ignition:
+        userDataSecret: master-user-data
+      kind: LibvirtMachineProviderConfig
+      networkInterfaceAddress: {{ settings.machineCIDR }}
+      networkInterfaceHostname: ""
+      networkInterfaceName: {{ settings.clusterName }}
+      networkUUID: ""
+      uri: {{ settings.libvirtURI }}
+      volume:
+        baseVolumeID: /var/lib/libvirt/images/{{ settings.clusterName }}-base
+        poolName: default
+        volumeName: ""
+  versions:
+    kubelet: ""
+status: {}
diff --git a/libvirt/3-node/openshift/99_openshift-cluster-api_master-machines-1.yaml b/libvirt/3-node/openshift/99_openshift-cluster-api_master-machines-1.yaml
new file mode 100644 (file)
index 0000000..ba3432a
--- /dev/null
@@ -0,0 +1,36 @@
+apiVersion: machine.openshift.io/v1beta1
+kind: Machine
+metadata:
+  creationTimestamp: null
+  labels:
+    sigs.k8s.io/cluster-api-cluster: {{ settings.clusterName }}
+    sigs.k8s.io/cluster-api-machine-role: master
+    sigs.k8s.io/cluster-api-machine-type: master
+  name: {{ settings.clusterName }}-master-1
+  namespace: openshift-machine-api
+spec:
+  metadata:
+    creationTimestamp: null
+  providerSpec:
+    value:
+      apiVersion: libvirtproviderconfig.k8s.io/v1alpha1
+      autostart: false
+      cloudInit: null
+      domainMemory: 4096
+      domainVcpu: 2
+      ignKey: ""
+      ignition:
+        userDataSecret: master-user-data
+      kind: LibvirtMachineProviderConfig
+      networkInterfaceAddress: {{ settings.machineCIDR }}
+      networkInterfaceHostname: ""
+      networkInterfaceName: {{ settings.clusterName }}
+      networkUUID: ""
+      uri: {{ settings.libvirtURI }}
+      volume:
+        baseVolumeID: /var/lib/libvirt/images/{{ settings.clusterName }}-base
+        poolName: default
+        volumeName: ""
+  versions:
+    kubelet: ""
+status: {}
diff --git a/libvirt/3-node/openshift/99_openshift-cluster-api_master-machines-2.yaml b/libvirt/3-node/openshift/99_openshift-cluster-api_master-machines-2.yaml
new file mode 100644 (file)
index 0000000..f28acb1
--- /dev/null
@@ -0,0 +1,36 @@
+apiVersion: machine.openshift.io/v1beta1
+kind: Machine
+metadata:
+  creationTimestamp: null
+  labels:
+    sigs.k8s.io/cluster-api-cluster: {{ settings.clusterName }}-6glhp
+    sigs.k8s.io/cluster-api-machine-role: master
+    sigs.k8s.io/cluster-api-machine-type: master
+  name: {{ settings.clusterName }}-master-2
+  namespace: openshift-machine-api
+spec:
+  metadata:
+    creationTimestamp: null
+  providerSpec:
+    value:
+      apiVersion: libvirtproviderconfig.k8s.io/v1alpha1
+      autostart: false
+      cloudInit: null
+      domainMemory: 4096
+      domainVcpu: 2
+      ignKey: ""
+      ignition:
+        userDataSecret: master-user-data
+      kind: LibvirtMachineProviderConfig
+      networkInterfaceAddress: {{ settings.machineCIDR }}
+      networkInterfaceHostname: ""
+      networkInterfaceName: {{ settings.clusterName }}-6glhp
+      networkUUID: ""
+      uri: {{ settings.libvirtURI }}
+      volume:
+        baseVolumeID: /var/lib/libvirt/images/{{ settings.clusterName }}-base
+        poolName: default
+        volumeName: ""
+  versions:
+    kubelet: ""
+status: {}
diff --git a/libvirt/3-node/openshift/99_openshift-cluster-api_master-user-data-secret.yaml b/libvirt/3-node/openshift/99_openshift-cluster-api_master-user-data-secret.yaml
new file mode 100644 (file)
index 0000000..e89e4f6
--- /dev/null
@@ -0,0 +1,15 @@
+
+kind: List
+apiVersion: v1
+metadata:
+  resourceVersion: ""
+  selfLink: ""
+items:
+- apiVersion: v1
+  kind: Secret
+  metadata:
+    name: master-user-data
+    namespace: openshift-machine-api
+  type: Opaque
+  data:
+    userData: eyJpZ25pdGlvbiI6eyJjb25maWciOnsiYXBwZW5kIjpbeyJzb3VyY2UiOiJodHRwczovL2FwaS50ZXN0LnR0LnRlc3Rpbmc6MjI2MjMvY29uZmlnL21hc3RlciIsInZlcmlmaWNhdGlvbiI6e319XX0sInNlY3VyaXR5Ijp7InRscyI6eyJjZXJ0aWZpY2F0ZUF1dGhvcml0aWVzIjpbeyJzb3VyY2UiOiJkYXRhOnRleHQvcGxhaW47Y2hhcnNldD11dGYtODtiYXNlNjQsTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVUkZSRU5EUVdacFowRjNTVUpCWjBsSlQxTmhXV3AxUm10NVRHZDNSRkZaU2t0dldrbG9kbU5PUVZGRlRFSlJRWGRLYWtWVFRVSkJSMEV4VlVVS1EzaE5TbUl6UW14aWJrNXZZVmRhTUUxU1FYZEVaMWxFVmxGUlJFVjNaSGxpTWprd1RGZE9hRTFDTkZoRVZFVTFUVVJOZDA1VVJYZE9WRmt4VDBadldBcEVWRWsxVFVSTmQwMXFSWGRPVkZreFQwWnZkMHBxUlZOTlFrRkhRVEZWUlVONFRVcGlNMEpzWW01T2IyRlhXakJOVWtGM1JHZFpSRlpSVVVSRmQyUjVDbUl5T1RCTVYwNW9UVWxKUWtscVFVNUNaMnR4YUd0cFJ6bDNNRUpCVVVWR1FVRlBRMEZST0VGTlNVbENRMmRMUTBGUlJVRjVhRk52VlVKbGRFbzJWMG9LUkV4RE5EQnlXR0pFUVhVclRsaHdiM0pNVlRCU1dTdEdlRlU1VGtWRlpUbENWMmRFWXpSc09URkRSVU5yYlhsMWIwbDVXVTl5ZWpaV2MwbGlNVFpxS3dwc1MwSkVaVXRrTmxSS2NYQjRkazkyYjNWRk5teHRTVUpvTTJ4eFZFZENRMEYyTmxkd2VHOWxXbWxGT0hKVGEyZ3dURFJsUVRkRWExaDFja2hZU0VkTUNqQkdVbTFYV21sVE9GRjRWMDE1YjBWUk4yaFhXak5GVUhweVlrVlhZV2Q0VlVzeFptMVZTVmswYm5Kd2VFdEdWMU5OT0RCdldqazVjWEZLVTJoNVdtUUthR1ZNU200NFZYQllNblUxVUhwYVZFaHVUbmt3VmtWSVdqUnVOUzh3WWxFeU1FSnZVRFJvZURBNVFscENTMEZGZFc5cFoyWjFVa3hZZUc5RmNXSnlOd3AxVEZabVFrZDFSekpFUzBJd1MweFlkVlk1T0RRNWFrSk1VRkJVTTBkbVJDOXpMMWg0WTBSMVIzUnZWSEZzZVhNcmJsWTNhbWczTkVGVlFVa3lUR3B0Q25WRlVVUlVkelZwYVZGSlJFRlJRVUp2TUVsM1VVUkJUMEpuVGxaSVVUaENRV1k0UlVKQlRVTkJjVkYzUkhkWlJGWlNNRlJCVVVndlFrRlZkMEYzUlVJS0wzcEJaRUpuVGxaSVVUUkZSbWRSVlU4NE1IZHVNRXhzU1c5cFlVbElUVVF4V0dab04wTm1TeXROUlhkRVVWbEtTMjlhU1doMlkwNUJVVVZNUWxGQlJBcG5aMFZDUVV0dVpFWlBWVFl4TmpkRVprOHlPU3RvZW5Cb1RsVlJWRk5QY1hoWFdWQklRbkp5TTJwVU5WZFpUbFV5Tkdwc1ZDdDRVV3B6Um5GMmIwcFFDa3BTZWxGTVNFOVZjWFFyTTJ0RlIwZEJWMVJLWldKSVlrMTFXSE5YYWpCaFptd3JWMWQ1ZVU1bFRrOXFTVXRQYTI5MmNraE5hblJUTkhGdmFEVjVlRFVLY1doQlRVSTJla0ZyYUdsdlEzcEJWV3BLTlhGNldHcEVkQ3RLYm5sWmFHVm1PV0U1Y1hsUFNqRmpNRXgzTDJOQk1ITnhkWGxhZW5GeE5HdE1OV0pNTUFwS1JGaDZhbTg0Tm1VNFRIVjNNVWwxV0ZsSFduUjJRVFZCYkdJMmNEQjBPVUpWVFRSWFEwMWpUMnBoTkV4T2NVRlZUMHRSTWpoaU0yTXlXbkp1VUdONENtRjJiVnA1WVhaUVowWnNOVFFyWVU0MlptSk9aRVJSWjFCSFVEZEtTVzlpZEc1aU5HUjVUek5FWlVoeFIxZzJZMGhtVDBGc1VtdEVhVXhXY0ZKamVrd0tNR1EwYzJaNU5VeHpNbWxVWnpjMU5raFRUQzg0UVdNelNESnZQUW90TFMwdExVVk9SQ0JEUlZKVVNVWkpRMEZVUlMwdExTMHRDZz09IiwidmVyaWZpY2F0aW9uIjp7fX1dfX0sInRpbWVvdXRzIjp7fSwidmVyc2lvbiI6IjIuMi4wIn0sIm5ldHdvcmtkIjp7fSwicGFzc3dkIjp7fSwic3RvcmFnZSI6e30sInN5c3RlbWQiOnt9fQ==
diff --git a/libvirt/3-node/openshift/99_openshift-cluster-api_worker-machineset.yaml b/libvirt/3-node/openshift/99_openshift-cluster-api_worker-machineset.yaml
new file mode 100644 (file)
index 0000000..41100ad
--- /dev/null
@@ -0,0 +1,55 @@
+apiVersion: v1
+items:
+- apiVersion: machine.openshift.io/v1beta1
+  kind: MachineSet
+  metadata:
+    creationTimestamp: null
+    labels:
+      sigs.k8s.io/cluster-api-cluster: {{ settings.clusterName }}
+      sigs.k8s.io/cluster-api-machine-role: worker
+      sigs.k8s.io/cluster-api-machine-type: worker
+    name: {{ settings.clusterName }}-worker-0
+    namespace: openshift-machine-api
+  spec:
+    replicas: 3
+    selector:
+      matchLabels:
+        sigs.k8s.io/cluster-api-cluster: {{ settings.clusterName }}
+        sigs.k8s.io/cluster-api-machineset: {{ settings.clusterName }}-worker-0
+    template:
+      metadata:
+        creationTimestamp: null
+        labels:
+          sigs.k8s.io/cluster-api-cluster: {{ settings.clusterName }}
+          sigs.k8s.io/cluster-api-machine-role: worker
+          sigs.k8s.io/cluster-api-machine-type: worker
+          sigs.k8s.io/cluster-api-machineset: {{ settings.clusterName }}-worker-0
+      spec:
+        metadata:
+          creationTimestamp: null
+        providerSpec:
+          value:
+            apiVersion: libvirtproviderconfig.k8s.io/v1alpha1
+            autostart: false
+            cloudInit: null
+            domainMemory: 4096
+            domainVcpu: 2
+            ignKey: ""
+            ignition:
+              userDataSecret: worker-user-data
+            kind: LibvirtMachineProviderConfig
+            networkInterfaceAddress: {{ settings.machineCIDR }}
+            networkInterfaceHostname: ""
+            networkInterfaceName: {{ settings.clusterName }}
+            networkUUID: ""
+            uri: {{ settings.libvirtURI }}
+            volume:
+              baseVolumeID: /var/lib/libvirt/images/{{ settings.clusterName }}-base
+              poolName: default
+              volumeName: ""
+        versions:
+          kubelet: ""
+  status:
+    replicas: 0
+kind: List
+metadata: {}
diff --git a/libvirt/3-node/openshift/99_openshift-cluster-api_worker-user-data-secret.yaml b/libvirt/3-node/openshift/99_openshift-cluster-api_worker-user-data-secret.yaml
new file mode 100644 (file)
index 0000000..aeab5f6
--- /dev/null
@@ -0,0 +1,15 @@
+
+kind: List
+apiVersion: v1
+metadata:
+  resourceVersion: ""
+  selfLink: ""
+items:
+- apiVersion: v1
+  kind: Secret
+  metadata:
+    name: worker-user-data
+    namespace: openshift-machine-api
+  type: Opaque
+  data:
+    userData: eyJpZ25pdGlvbiI6eyJjb25maWciOnsiYXBwZW5kIjpbeyJzb3VyY2UiOiJodHRwczovL2FwaS50ZXN0LnR0LnRlc3Rpbmc6MjI2MjMvY29uZmlnL3dvcmtlciIsInZlcmlmaWNhdGlvbiI6e319XX0sInNlY3VyaXR5Ijp7InRscyI6eyJjZXJ0aWZpY2F0ZUF1dGhvcml0aWVzIjpbeyJzb3VyY2UiOiJkYXRhOnRleHQvcGxhaW47Y2hhcnNldD11dGYtODtiYXNlNjQsTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVUkZSRU5EUVdacFowRjNTVUpCWjBsSlQxTmhXV3AxUm10NVRHZDNSRkZaU2t0dldrbG9kbU5PUVZGRlRFSlJRWGRLYWtWVFRVSkJSMEV4VlVVS1EzaE5TbUl6UW14aWJrNXZZVmRhTUUxU1FYZEVaMWxFVmxGUlJFVjNaSGxpTWprd1RGZE9hRTFDTkZoRVZFVTFUVVJOZDA1VVJYZE9WRmt4VDBadldBcEVWRWsxVFVSTmQwMXFSWGRPVkZreFQwWnZkMHBxUlZOTlFrRkhRVEZWUlVONFRVcGlNMEpzWW01T2IyRlhXakJOVWtGM1JHZFpSRlpSVVVSRmQyUjVDbUl5T1RCTVYwNW9UVWxKUWtscVFVNUNaMnR4YUd0cFJ6bDNNRUpCVVVWR1FVRlBRMEZST0VGTlNVbENRMmRMUTBGUlJVRjVhRk52VlVKbGRFbzJWMG9LUkV4RE5EQnlXR0pFUVhVclRsaHdiM0pNVlRCU1dTdEdlRlU1VGtWRlpUbENWMmRFWXpSc09URkRSVU5yYlhsMWIwbDVXVTl5ZWpaV2MwbGlNVFpxS3dwc1MwSkVaVXRrTmxSS2NYQjRkazkyYjNWRk5teHRTVUpvTTJ4eFZFZENRMEYyTmxkd2VHOWxXbWxGT0hKVGEyZ3dURFJsUVRkRWExaDFja2hZU0VkTUNqQkdVbTFYV21sVE9GRjRWMDE1YjBWUk4yaFhXak5GVUhweVlrVlhZV2Q0VlVzeFptMVZTVmswYm5Kd2VFdEdWMU5OT0RCdldqazVjWEZLVTJoNVdtUUthR1ZNU200NFZYQllNblUxVUhwYVZFaHVUbmt3VmtWSVdqUnVOUzh3WWxFeU1FSnZVRFJvZURBNVFscENTMEZGZFc5cFoyWjFVa3hZZUc5RmNXSnlOd3AxVEZabVFrZDFSekpFUzBJd1MweFlkVlk1T0RRNWFrSk1VRkJVTTBkbVJDOXpMMWg0WTBSMVIzUnZWSEZzZVhNcmJsWTNhbWczTkVGVlFVa3lUR3B0Q25WRlVVUlVkelZwYVZGSlJFRlJRVUp2TUVsM1VVUkJUMEpuVGxaSVVUaENRV1k0UlVKQlRVTkJjVkYzUkhkWlJGWlNNRlJCVVVndlFrRlZkMEYzUlVJS0wzcEJaRUpuVGxaSVVUUkZSbWRSVlU4NE1IZHVNRXhzU1c5cFlVbElUVVF4V0dab04wTm1TeXROUlhkRVVWbEtTMjlhU1doMlkwNUJVVVZNUWxGQlJBcG5aMFZDUVV0dVpFWlBWVFl4TmpkRVprOHlPU3RvZW5Cb1RsVlJWRk5QY1hoWFdWQklRbkp5TTJwVU5WZFpUbFV5Tkdwc1ZDdDRVV3B6Um5GMmIwcFFDa3BTZWxGTVNFOVZjWFFyTTJ0RlIwZEJWMVJLWldKSVlrMTFXSE5YYWpCaFptd3JWMWQ1ZVU1bFRrOXFTVXRQYTI5MmNraE5hblJUTkhGdmFEVjVlRFVLY1doQlRVSTJla0ZyYUdsdlEzcEJWV3BLTlhGNldHcEVkQ3RLYm5sWmFHVm1PV0U1Y1hsUFNqRmpNRXgzTDJOQk1ITnhkWGxhZW5GeE5HdE1OV0pNTUFwS1JGaDZhbTg0Tm1VNFRIVjNNVWwxV0ZsSFduUjJRVFZCYkdJMmNEQjBPVUpWVFRSWFEwMWpUMnBoTkV4T2NVRlZUMHRSTWpoaU0yTXlXbkp1VUdONENtRjJiVnA1WVhaUVowWnNOVFFyWVU0MlptSk9aRVJSWjFCSFVEZEtTVzlpZEc1aU5HUjVUek5FWlVoeFIxZzJZMGhtVDBGc1VtdEVhVXhXY0ZKamVrd0tNR1EwYzJaNU5VeHpNbWxVWnpjMU5raFRUQzg0UVdNelNESnZQUW90TFMwdExVVk9SQ0JEUlZKVVNVWkpRMEZVUlMwdExTMHRDZz09IiwidmVyaWZpY2F0aW9uIjp7fX1dfX0sInRpbWVvdXRzIjp7fSwidmVyc2lvbiI6IjIuMi4wIn0sIm5ldHdvcmtkIjp7fSwicGFzc3dkIjp7fSwic3RvcmFnZSI6e30sInN5c3RlbWQiOnt9fQ==
diff --git a/libvirt/sample_settings.yaml b/libvirt/sample_settings.yaml
new file mode 100644 (file)
index 0000000..a3ebbc6
--- /dev/null
@@ -0,0 +1,9 @@
+settings:
+  baseDomain: "tt.testing"
+  clusterName: "test"
+  clusterCIDR: "10.128.0.0/14"
+  clusterSubnetLength: 9
+  machineCIDR: "192.168.126.0/24"
+  serviceCIDR: "172.30.0.0/16"
+  SDNType: "OpenShiftSDN"
+  libvirtURI: "qemu+tcp://192.168.122.1/system"