feat: Store cluster API provider manifests
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Danny Bessems 2023-10-12 11:24:56 +02:00
parent 8c6a9f38ba
commit ba7e233c27

View File

@ -85,6 +85,40 @@
--kubeconfig {{ kubeconfig.path }} --kubeconfig {{ kubeconfig.path }}
chdir: /opt/metacluster/cluster-api chdir: /opt/metacluster/cluster-api
- name: Initialize tempfolder
ansible.builtin.tempfile:
state: directory
register: capi_clustermanifest
- name: Pull existing repository
ansible.builtin.git:
repo: https://git.{{ vapp['metacluster.fqdn'] }}/mc/GitOps.ClusterAPI.git
dest: "{{ capi_clustermanifest.path }}"
version: main
- name: Generate Cluster API provider manifests
ansible.builtin.shell:
cmd: >-
clusterctl generate provider \
-v5 \
--{{ item.type }} {{ item.name }}:{{ item.version }} \
--config ./clusterctl.yaml > {{ capi_clustermanifest.path }}/provider-{{ item.name }}.yaml
chdir: /opt/metacluster/cluster-api
loop:
- type: infrastructure
name: vsphere
version: "{{ components.clusterapi.management.version.infrastructure_vsphere }}"
- type: ipam
name: in-cluster
version: "{{ components.clusterapi.management.version.ipam_incluster }}"
- name: Split cluster API provider manifests into separate files
ansible.builtin.shell:
cmd: >-
awk 'BEGINFILE {print "---"}{print}' provider-*.yaml | \
kubectl slice \
-o {{ capi_clustermanifest.path }}/providers
- name: Ensure controller availability - name: Ensure controller availability
kubernetes.core.k8s_info: kubernetes.core.k8s_info:
kind: Deployment kind: Deployment
@ -124,17 +158,6 @@
chdir: /opt/metacluster/cluster-api chdir: /opt/metacluster/cluster-api
register: clusterctl_newcluster register: clusterctl_newcluster
- name: Initialize tempfolder
ansible.builtin.tempfile:
state: directory
register: capi_clustermanifest
- name: Pull existing repository
ansible.builtin.git:
repo: https://git.{{ vapp['metacluster.fqdn'] }}/mc/GitOps.ClusterAPI.git
dest: "{{ capi_clustermanifest.path }}"
version: main
- name: Save workload cluster manifest - name: Save workload cluster manifest
ansible.builtin.copy: ansible.builtin.copy:
dest: "{{ capi_clustermanifest.path }}/new-cluster.yaml" dest: "{{ capi_clustermanifest.path }}/new-cluster.yaml"
@ -145,7 +168,7 @@
cmd: >- cmd: >-
kubectl slice \ kubectl slice \
-f {{ capi_clustermanifest.path }}/new-cluster.yaml \ -f {{ capi_clustermanifest.path }}/new-cluster.yaml \
-o {{ capi_clustermanifest.path }}/manifests -o {{ capi_clustermanifest.path }}/downstream-cluster
- name: Generate nodepool kustomization manifest - name: Generate nodepool kustomization manifest
ansible.builtin.template: ansible.builtin.template:
@ -169,12 +192,12 @@
cmd: >- cmd: >-
kubectl slice \ kubectl slice \
-f {{ capi_clustermanifest.path }}/nodepool-worker-storage.yaml \ -f {{ capi_clustermanifest.path }}/nodepool-worker-storage.yaml \
-o {{ capi_clustermanifest.path }}/manifests -o {{ capi_clustermanifest.path }}/downstream-cluster
- name: Create in-cluster IpPool - name: Create in-cluster IpPool
ansible.builtin.template: ansible.builtin.template:
src: ippool.j2 src: ippool.j2
dest: "{{ capi_clustermanifest.path }}/manifests/inclusterippool-{{ _template.cluster.name }}.yml" dest: "{{ capi_clustermanifest.path }}/downstream-cluster/inclusterippool-{{ _template.cluster.name }}.yml"
vars: vars:
_template: _template:
cluster: cluster:
@ -192,7 +215,8 @@
branch: main branch: main
comment: "Upload manifests" comment: "Upload manifests"
add: add:
- ./manifests - ./downstream-cluster
- ./providers
clean: untracked clean: untracked
url: https://administrator:{{ vapp['metacluster.password'] | urlencode }}@git.{{ vapp['metacluster.fqdn'] }}/mc/GitOps.ClusterAPI.git url: https://administrator:{{ vapp['metacluster.password'] | urlencode }}@git.{{ vapp['metacluster.fqdn'] }}/mc/GitOps.ClusterAPI.git
environment: environment: