diff --git a/kubernetes/capi-kustomize/README.md b/kubernetes/capi-kustomize/README.md new file mode 100644 index 0000000..bfc6a28 --- /dev/null +++ b/kubernetes/capi-kustomize/README.md @@ -0,0 +1,3 @@ +# Using Kustomize with Cluster API + +These files were created as examples to accompany [this blog post](https://blog.scottlowe.org/2019/11/04/using-kustomize-with-cluster-api-manifests/) on using `kustomize` with Cluster API (CAPI) manifests. diff --git a/kubernetes/capi-kustomize/base/cluster.yaml b/kubernetes/capi-kustomize/base/cluster.yaml new file mode 100644 index 0000000..73618d9 --- /dev/null +++ b/kubernetes/capi-kustomize/base/cluster.yaml @@ -0,0 +1,21 @@ +--- +apiVersion: cluster.x-k8s.io/v1alpha2 +kind: Cluster +metadata: + name: capi-quickstart +spec: + clusterNetwork: + pods: + cidrBlocks: ["192.168.0.0/16"] + infrastructureRef: + apiVersion: infrastructure.cluster.x-k8s.io/v1alpha2 + kind: AWSCluster + name: capi-quickstart +--- +apiVersion: infrastructure.cluster.x-k8s.io/v1alpha2 +kind: AWSCluster +metadata: + name: capi-quickstart +spec: + region: us-east-1 + sshKeyName: default diff --git a/kubernetes/capi-kustomize/base/controlplane.yaml b/kubernetes/capi-kustomize/base/controlplane.yaml new file mode 100644 index 0000000..2fdde3a --- /dev/null +++ b/kubernetes/capi-kustomize/base/controlplane.yaml @@ -0,0 +1,46 @@ +--- +apiVersion: cluster.x-k8s.io/v1alpha2 +kind: Machine +metadata: + name: capi-quickstart-controlplane-0 + labels: + cluster.x-k8s.io/control-plane: "true" + cluster.x-k8s.io/cluster-name: "capi-quickstart" +spec: + version: v1.15.3 + bootstrap: + configRef: + apiVersion: bootstrap.cluster.x-k8s.io/v1alpha2 + kind: KubeadmConfig + name: capi-quickstart-controlplane-0 + infrastructureRef: + apiVersion: infrastructure.cluster.x-k8s.io/v1alpha2 + kind: AWSMachine + name: capi-quickstart-controlplane-0 +--- +apiVersion: infrastructure.cluster.x-k8s.io/v1alpha2 +kind: AWSMachine +metadata: + name: capi-quickstart-controlplane-0 +spec: + instanceType: t3.large + iamInstanceProfile: "controllers.cluster-api-provider-aws.sigs.k8s.io" + sshKeyName: default +--- +apiVersion: bootstrap.cluster.x-k8s.io/v1alpha2 +kind: KubeadmConfig +metadata: + name: capi-quickstart-controlplane-0 +spec: + initConfiguration: + nodeRegistration: + name: '{{ ds.meta_data.hostname }}' + kubeletExtraArgs: + cloud-provider: aws + clusterConfiguration: + apiServer: + extraArgs: + cloud-provider: aws + controllerManager: + extraArgs: + cloud-provider: aws diff --git a/kubernetes/capi-kustomize/base/kustomization.yaml b/kubernetes/capi-kustomize/base/kustomization.yaml new file mode 100644 index 0000000..8c5ad0d --- /dev/null +++ b/kubernetes/capi-kustomize/base/kustomization.yaml @@ -0,0 +1,7 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - cluster.yaml + - controlplane.yaml + - workers.yaml diff --git a/kubernetes/capi-kustomize/base/workers.yaml b/kubernetes/capi-kustomize/base/workers.yaml new file mode 100644 index 0000000..cbf5042 --- /dev/null +++ b/kubernetes/capi-kustomize/base/workers.yaml @@ -0,0 +1,53 @@ +apiVersion: cluster.x-k8s.io/v1alpha2 +kind: MachineDeployment +metadata: + name: capi-quickstart-worker + labels: + cluster.x-k8s.io/cluster-name: capi-quickstart + nodepool: nodepool-0 +spec: + replicas: 1 + selector: + matchLabels: + cluster.x-k8s.io/cluster-name: capi-quickstart + nodepool: nodepool-0 + template: + metadata: + labels: + cluster.x-k8s.io/cluster-name: capi-quickstart + nodepool: nodepool-0 + spec: + version: v1.15.3 + bootstrap: + configRef: + name: capi-quickstart-worker + apiVersion: bootstrap.cluster.x-k8s.io/v1alpha2 + kind: KubeadmConfigTemplate + infrastructureRef: + name: capi-quickstart-worker + apiVersion: infrastructure.cluster.x-k8s.io/v1alpha2 + kind: AWSMachineTemplate +--- +apiVersion: infrastructure.cluster.x-k8s.io/v1alpha2 +kind: AWSMachineTemplate +metadata: + name: capi-quickstart-worker +spec: + template: + spec: + instanceType: t3.large + iamInstanceProfile: "nodes.cluster-api-provider-aws.sigs.k8s.io" + sshKeyName: default +--- +apiVersion: bootstrap.cluster.x-k8s.io/v1alpha2 +kind: KubeadmConfigTemplate +metadata: + name: capi-quickstart-worker +spec: + template: + spec: + joinConfiguration: + nodeRegistration: + name: '{{ ds.meta_data.hostname }}' + kubeletExtraArgs: + cloud-provider: aws diff --git a/kubernetes/capi-kustomize/overlays/use2-cluster1/kustomization.yaml b/kubernetes/capi-kustomize/overlays/use2-cluster1/kustomization.yaml new file mode 100644 index 0000000..c12b156 --- /dev/null +++ b/kubernetes/capi-kustomize/overlays/use2-cluster1/kustomization.yaml @@ -0,0 +1,5 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- ../../base diff --git a/kubernetes/capi-kustomize/overlays/usw2-cluster1/kustomization.yaml b/kubernetes/capi-kustomize/overlays/usw2-cluster1/kustomization.yaml new file mode 100644 index 0000000..c12b156 --- /dev/null +++ b/kubernetes/capi-kustomize/overlays/usw2-cluster1/kustomization.yaml @@ -0,0 +1,5 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- ../../base diff --git a/kubernetes/capi-kustomize/overlays/usw2-cluster2/kustomization.yaml b/kubernetes/capi-kustomize/overlays/usw2-cluster2/kustomization.yaml new file mode 100644 index 0000000..c12b156 --- /dev/null +++ b/kubernetes/capi-kustomize/overlays/usw2-cluster2/kustomization.yaml @@ -0,0 +1,5 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- ../../base