-
Notifications
You must be signed in to change notification settings - Fork 6.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add helm support for custom_cni deployment (#10529)
* Add helm support for custom_cni deployment * Linting correction * Ansible linting correction * Add test packet with values Signed-off-by: Lukáš Kubín <[email protected]> * Add custom_cni configuration file with comments Signed-off-by: Lukáš Kubín <[email protected]> * Default values cleanup Signed-off-by: Lukáš Kubín <[email protected]> * Add details to custom_cni configuration file Signed-off-by: Lukáš Kubín <[email protected]> * Set correct yaml type of helm values Signed-off-by: Lukáš Kubín <[email protected]> * Set CNI filesystem ownership to root Signed-off-by: Lukáš Kubín <[email protected]> * Update cilium example parameter name Signed-off-by: Lukáš Kubín <[email protected]> --------- Signed-off-by: Lukáš Kubín <[email protected]>
- Loading branch information
Showing
7 changed files
with
133 additions
and
23 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
51 changes: 51 additions & 0 deletions
51
inventory/sample/group_vars/k8s_cluster/k8s-net-custom-cni.yml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
--- | ||
# custom_cni network plugin configuration | ||
# There are two deployment options to choose from, select one | ||
|
||
## OPTION 1 - Static manifest files | ||
## With this option, referred manifest file will be deployed | ||
## as if the `kubectl apply -f` method was used with it. | ||
# | ||
## List of Kubernetes resource manifest files | ||
## See tests/files/custom_cni/README.md for example | ||
# custom_cni_manifests: [] | ||
|
||
## OPTION 1 EXAMPLE - Cilium static manifests in Kubespray tree | ||
# custom_cni_manifests: | ||
# - "{{ playbook_dir }}/../tests/files/custom_cni/cilium.yaml" | ||
|
||
## OPTION 2 - Helm chart application | ||
## This allows the CNI backend to be deployed to Kubespray cluster | ||
## as common Helm application. | ||
# | ||
## Helm release name - how the local instance of deployed chart will be named | ||
# custom_cni_chart_release_name: "" | ||
# | ||
## Kubernetes namespace to deploy into | ||
# custom_cni_chart_namespace: "kube-system" | ||
# | ||
## Helm repository name - how the local record of Helm repository will be named | ||
# custom_cni_chart_repository_name: "" | ||
# | ||
## Helm repository URL | ||
# custom_cni_chart_repository_url: "" | ||
# | ||
## Helm chart reference - path to the chart in the repository | ||
# custom_cni_chart_ref: "" | ||
# | ||
## Helm chart version | ||
# custom_cni_chart_version: "" | ||
# | ||
## Custom Helm values to be used for deployment | ||
# custom_cni_chart_values: {} | ||
|
||
## OPTION 2 EXAMPLE - Cilium deployed from official public Helm chart | ||
# custom_cni_chart_namespace: kube-system | ||
# custom_cni_chart_release_name: cilium | ||
# custom_cni_chart_repository_name: cilium | ||
# custom_cni_chart_repository_url: https://helm.cilium.io | ||
# custom_cni_chart_ref: cilium/cilium | ||
# custom_cni_chart_version: 1.14.3 | ||
# custom_cni_chart_values: | ||
# cluster: | ||
# name: "cilium-demo" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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_version: "" | ||
custom_cni_chart_values: {} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
--- | ||
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 }}" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,29 @@ | ||
--- | ||
- name: Custom CNI | Check Custom CNI Manifests | ||
assert: | ||
that: | ||
- name: Custom CNI | Manifest deployment | ||
when: not custom_cni_chart_release_name | length > 0 | ||
block: | ||
- name: Custom CNI | Check Custom CNI Manifests | ||
assert: | ||
that: | ||
- "custom_cni_manifests | length > 0" | ||
msg: "custom_cni_manifests should not be empty" | ||
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
--- | ||
# Instance settings | ||
cloud_image: debian-12 | ||
mode: default | ||
|
||
# Kubespray settings | ||
kube_owner: root | ||
kube_network_plugin: custom_cni | ||
custom_cni_chart_namespace: kube-system | ||
custom_cni_chart_release_name: cilium | ||
custom_cni_chart_repository_name: cilium | ||
custom_cni_chart_repository_url: https://helm.cilium.io | ||
custom_cni_chart_ref: cilium/cilium | ||
custom_cni_chart_version: 1.14.3 | ||
custom_cni_chart_values: | ||
cluster: | ||
name: kubespray | ||
hubble: | ||
enabled: false | ||
ipam: | ||
operator: | ||
clusterPoolIPv4PodCIDRList: | ||
- "{{ kube_pods_subnet }}" |