diff --git a/roles/network_plugin/custom_cni/defaults/main.yml b/roles/network_plugin/custom_cni/defaults/main.yml index 5cde372d5db..8242d37ed1b 100644 --- a/roles/network_plugin/custom_cni/defaults/main.yml +++ b/roles/network_plugin/custom_cni/defaults/main.yml @@ -1,3 +1,11 @@ --- custom_cni_manifests: [] + +custom_cni_chart_namespace: kube-system +custom_cni_chart_release_name: "" +custom_cni_chart_repository_name: "" +custom_cni_chart_repository_url: "" +custom_cni_chart_ref: "{{ custom_cni_chart_repository_name }}/" +custom_cni_chart_version: "" +custom_cni_chart_values: "" diff --git a/roles/network_plugin/custom_cni/meta/main.yml b/roles/network_plugin/custom_cni/meta/main.yml new file mode 100644 index 00000000000..82f00a4f899 --- /dev/null +++ b/roles/network_plugin/custom_cni/meta/main.yml @@ -0,0 +1,19 @@ +dependencies: + - role: helm-apps + when: + - inventory_hostname == groups['kube_control_plane'][0] + - custom_cni_chart_release_name | length > 0 + environment: + http_proxy: "{{ http_proxy | default('') }}" + https_proxy: "{{ https_proxy | default('') }}" + release_common_opts: {} + releases: + - name: "{{ custom_cni_chart_release_name }}" + namespace: "{{ custom_cni_chart_namespace }}" + chart_ref: "{{ custom_cni_chart_ref }}" + chart_version: "{{ custom_cni_chart_version }}" + wait: true + values: "{{ custom_cni_chart_values }}" + repositories: + - name: "{{ custom_cni_chart_repository_name }}" + url: "{{ custom_cni_chart_repository_url }}" diff --git a/roles/network_plugin/custom_cni/tasks/main.yml b/roles/network_plugin/custom_cni/tasks/main.yml index c4289445bc5..52c1dbc8764 100644 --- a/roles/network_plugin/custom_cni/tasks/main.yml +++ b/roles/network_plugin/custom_cni/tasks/main.yml @@ -1,26 +1,29 @@ --- -- name: Custom CNI | Check Custom CNI Manifests - assert: - that: - - "custom_cni_manifests | length > 0" - msg: "custom_cni_manifests should not be empty" +- name: Custom CNI | Manifest deployment + block: + - name: Custom CNI | Check Custom CNI Manifests + assert: + that: + - "custom_cni_manifests | length > 0" + msg: "custom_cni_manifests should not be empty" -- name: Custom CNI | Copy Custom manifests - template: - src: "{{ item }}" - dest: "{{ kube_config_dir }}/{{ item | basename | replace('.j2', '') }}" - mode: 0644 - loop: "{{ custom_cni_manifests }}" - delegate_to: "{{ groups['kube_control_plane'] | first }}" - run_once: true + - name: Custom CNI | Copy Custom manifests + template: + src: "{{ item }}" + dest: "{{ kube_config_dir }}/{{ item | basename | replace('.j2', '') }}" + mode: 0644 + loop: "{{ custom_cni_manifests }}" + delegate_to: "{{ groups['kube_control_plane'] | first }}" + run_once: true -- name: Custom CNI | Start Resources - kube: - namespace: "kube-system" - kubectl: "{{ bin_dir }}/kubectl" - filename: "{{ kube_config_dir }}/{{ item | basename | replace('.j2', '') }}" - state: "latest" - wait: true - loop: "{{ custom_cni_manifests }}" - delegate_to: "{{ groups['kube_control_plane'] | first }}" - run_once: true + - name: Custom CNI | Start Resources + kube: + namespace: "kube-system" + kubectl: "{{ bin_dir }}/kubectl" + filename: "{{ kube_config_dir }}/{{ item | basename | replace('.j2', '') }}" + state: "latest" + wait: true + loop: "{{ custom_cni_manifests }}" + delegate_to: "{{ groups['kube_control_plane'] | first }}" + run_once: true + when: not custom_cni_chart_release_name | length > 0