diff --git a/playbooks/cluster.yml b/playbooks/cluster.yml index 85829ca44..71cef8483 100644 --- a/playbooks/cluster.yml +++ b/playbooks/cluster.yml @@ -52,11 +52,7 @@ - { role: kubernetes/kubeadm, tags: kubeadm} - { role: kubernetes/node-label, tags: node-label } - { role: kubernetes/node-taint, tags: node-taint } - - role: kubernetes-apps/gateway_api - when: gateway_api_enabled - tags: gateway_api - delegate_to: "{{ groups['kube_control_plane'][0] }}" - run_once: true + - { role: kubernetes-apps/common_crds } - { role: network_plugin, tags: network } - name: Install Calico Route Reflector diff --git a/roles/kubernetes-apps/gateway_api/defaults/main.yml b/roles/kubernetes-apps/common_crds/gateway_api/defaults/main.yml similarity index 100% rename from roles/kubernetes-apps/gateway_api/defaults/main.yml rename to roles/kubernetes-apps/common_crds/gateway_api/defaults/main.yml diff --git a/roles/kubernetes-apps/gateway_api/tasks/main.yml b/roles/kubernetes-apps/common_crds/gateway_api/tasks/main.yml similarity index 94% rename from roles/kubernetes-apps/gateway_api/tasks/main.yml rename to roles/kubernetes-apps/common_crds/gateway_api/tasks/main.yml index 7134fe2d8..8d792c3ed 100644 --- a/roles/kubernetes-apps/gateway_api/tasks/main.yml +++ b/roles/kubernetes-apps/common_crds/gateway_api/tasks/main.yml @@ -1,6 +1,6 @@ --- - name: Gateway API | Download YAML - include_tasks: "../../../download/tasks/download_file.yml" + include_tasks: "../../../../download/tasks/download_file.yml" vars: download: "{{ download_defaults | combine(downloads.gateway_api_crds) }}" diff --git a/roles/kubernetes-apps/common_crds/meta/main.yml b/roles/kubernetes-apps/common_crds/meta/main.yml new file mode 100644 index 000000000..f17a61c29 --- /dev/null +++ b/roles/kubernetes-apps/common_crds/meta/main.yml @@ -0,0 +1,11 @@ +--- +dependencies: + - role: kubernetes-apps/common_crds/gateway_api + when: gateway_api_enabled + tags: + - gateway_api + + - role: kubernetes-apps/common_crds/prometheus_operator_crds + when: prometheus_operator_crds_enabled + tags: + - prometheus_operator_crds diff --git a/roles/kubernetes-apps/common_crds/prometheus_operator_crds/tasks/main.yml b/roles/kubernetes-apps/common_crds/prometheus_operator_crds/tasks/main.yml new file mode 100644 index 000000000..258238699 --- /dev/null +++ b/roles/kubernetes-apps/common_crds/prometheus_operator_crds/tasks/main.yml @@ -0,0 +1,11 @@ +--- +- name: Prometheus Operator CRDs | Download YAML + include_tasks: "../../../../download/tasks/download_file.yml" + vars: + download: "{{ download_defaults | combine(downloads.prometheus_operator_crds) }}" + +- name: Prometheus Operator CRDs | Install + command: + cmd: "{{ bin_dir }}/kubectl apply -f {{ local_release_dir }}/prometheus-operator-crds.yaml" + when: + - "inventory_hostname == groups['kube_control_plane'][0]" diff --git a/roles/kubespray_defaults/defaults/main/download.yml b/roles/kubespray_defaults/defaults/main/download.yml index 87da1e136..d11c2ba88 100644 --- a/roles/kubespray_defaults/defaults/main/download.yml +++ b/roles/kubespray_defaults/defaults/main/download.yml @@ -143,6 +143,8 @@ yq_version: "{{ (yq_checksums['amd64'] | dict2items)[0].key }}" gateway_api_version: "1.2.1" gateway_api_channel: "standard" +prometheus_operator_crds_version: "{{ (prometheus_operator_crds_checksums.no_arch | dict2items)[0].key }}" + github_url: https://github.com dl_k8s_io_url: https://dl.k8s.io storage_googleapis_url: https://storage.googleapis.com @@ -174,6 +176,7 @@ skopeo_download_url: "{{ github_url }}/lework/skopeo-binary/releases/download/v{ yq_download_url: "{{ github_url }}/mikefarah/yq/releases/download/v{{ yq_version }}/yq_linux_{{ image_arch }}" argocd_install_url: "https://raw.githubusercontent.com/argoproj/argo-cd/v{{ argocd_version }}/manifests/install.yaml" gateway_api_crds_download_url: "{{ github_url }}/kubernetes-sigs/gateway-api/releases/download/v{{ gateway_api_version }}/{{ gateway_api_channel }}-install.yaml" +prometheus_operator_crds_download_url: "{{ github_url }}/prometheus-operator/prometheus-operator/releases/download/v{{ prometheus_operator_crds_version }}/stripped-down-crds.yaml" etcd_binary_checksum: "{{ etcd_binary_checksums[image_arch][etcd_version] }}" cni_binary_checksum: "{{ cni_binary_checksums[image_arch][cni_version] }}" @@ -975,6 +978,18 @@ downloads: groups: - kube_control_plane + prometheus_operator_crds: + enabled: "{{ prometheus_operator_crds_enabled }}" + file: true + version: "{{ prometheus_operator_crds_version }}" + dest: "{{ local_release_dir }}/prometheus-operator-crds.yaml" + checksum: "{{ prometheus_operator_crds_checksums.no_arch[prometheus_operator_crds_version] }}" + url: "{{ prometheus_operator_crds_download_url }}" + owner: "root" + mode: "0755" + groups: + - kube_control_plane + csi_attacher: enabled: "{{ cinder_csi_enabled or aws_ebs_csi_enabled }}" container: true diff --git a/roles/kubespray_defaults/defaults/main/main.yml b/roles/kubespray_defaults/defaults/main/main.yml index 1ecbcc5ae..b6795ff40 100644 --- a/roles/kubespray_defaults/defaults/main/main.yml +++ b/roles/kubespray_defaults/defaults/main/main.yml @@ -463,6 +463,7 @@ metallb_enabled: false metallb_speaker_enabled: "{{ metallb_enabled }}" argocd_enabled: false gateway_api_enabled: false +prometheus_operator_crds_enabled: false ## When OpenStack is used, Cinder version can be explicitly specified if autodetection fails (Fixed in 1.9: https://github.com/kubernetes/kubernetes/issues/50461) # openstack_blockstorage_version: "v1/v2/auto (default)" diff --git a/roles/kubespray_defaults/vars/main/checksums.yml b/roles/kubespray_defaults/vars/main/checksums.yml index 241d8848c..2aaf0c4c6 100644 --- a/roles/kubespray_defaults/vars/main/checksums.yml +++ b/roles/kubespray_defaults/vars/main/checksums.yml @@ -1528,6 +1528,9 @@ gateway_api_experimental_crds_checksums: 1.2.0: sha256:4369188e63b9ab5a35b5a83032c94d871159dece086b908b6ea18ea321ca06a9 1.1.0: sha256:10f322744a005d4e73e2b067e95fecd4cfec619dc7564930b488c296bfa3bec1 1.0.0: sha256:6c601dced7872a940d76fa667ae126ba718cb4c6db970d0bab49128ecc1192a3 +prometheus_operator_crds_checksums: + no_arch: + 0.84.0: sha256:8990f6837ccff4461df9abe19d31d532fef11386d85d861b392249fff2502255 argocd_install_checksums: no_arch: 2.14.15: sha256:0368b8a0adbb673408f2cc2367302ad1068d12cd9ab17cf6680bcb5fdba7c381 diff --git a/tests/files/debian13-cilium.yml b/tests/files/debian13-cilium.yml index 65f685881..edb85820b 100644 --- a/tests/files/debian13-cilium.yml +++ b/tests/files/debian13-cilium.yml @@ -6,3 +6,5 @@ cloud_image: debian-13 kube_network_plugin: cilium kube_owner: root + +prometheus_operator_crds_enabled: true