diff --git a/Dockerfile b/Dockerfile index 080fb06e..d2acc2fe 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,7 +9,7 @@ RUN apt-get update && apt-get upgrade -y \ && update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1 FROM baseline as tool_builder -ARG kubectl_version=1.26.10 +ARG kubectl_version=1.27.9 WORKDIR /build diff --git a/docs/CONFIG-VARS.md b/docs/CONFIG-VARS.md index 22083833..76700a55 100644 --- a/docs/CONFIG-VARS.md +++ b/docs/CONFIG-VARS.md @@ -378,7 +378,7 @@ Cluster-autoscaler is currently only used for AWS EKS clusters. GCP GKE and Azur | CLUSTER_AUTOSCALER_ENABLED | Whether to deploy cluster-autoscaler | bool | true | false | | baseline | | CLUSTER_AUTOSCALER_CHART_URL | Cluster-autoscaler Helm chart URL | string | See [this document](https://github.com/kubernetes/autoscaler/tree/master/charts) for more information. | false | | baseline | | CLUSTER_AUTOSCALER_CHART_NAME| Cluster-autoscaler Helm chart name | string | cluster-autoscaler | false | | baseline | -| CLUSTER_AUTOSCALER_CHART_VERSION | Cluster-autoscaler Helm chart version | string | "" | false | If left as "" (empty string), version 9.9.2 is used for Kubernetes clusters whose version is <= 1.21
and version 9.29.1 is used for Kubernetes clusters whose version is >= 1.25 | baseline | +| CLUSTER_AUTOSCALER_CHART_VERSION | Cluster-autoscaler Helm chart version | string | "" | false | If left as "" (empty string), version 9.9.2 is used for Kubernetes clusters whose version is <= 1.24
and version 9.34.1 is used for Kubernetes clusters whose version is >= 1.25
See [Artifact Hub](https://artifacthub.io/packages/helm/cluster-autoscaler/cluster-autoscaler) to determine application version| baseline | | CLUSTER_AUTOSCALER_CONFIG | Cluster-autoscaler Helm values | string | See [this file](../roles/baseline/defaults/main.yml) for more information. | false | | baseline | | CLUSTER_AUTOSCALER_ACCOUNT | Cluster autoscaler AWS role ARN | string | | false | Required to enable cluster-autoscaler on AWS | baseline | | CLUSTER_AUTOSCALER_LOCATION |AWS region where Kubernetes cluster is running | string | us-east-1 | false | | baseline | @@ -408,7 +408,7 @@ The EBS CSI driver is currently only used for kubernetes v1.23 or later AWS EKS | INGRESS_NGINX_NAMESPACE | NGINX Ingress Helm installation namespace | string | ingress-nginx | false | | baseline | | INGRESS_NGINX_CHART_URL | NGINX Ingress Helm chart URL | string | See [this document](https://kubernetes.github.io/ingress-nginx) for more information. | false | | baseline | | INGRESS_NGINX_CHART_NAME | NGINX Ingress Helm chart name | string | ingress-nginx | false | | baseline | -| INGRESS_NGINX_CHART_VERSION | NGINX Ingress Helm chart version | string | "" | false | If left as "" (empty string), version 4.3.0 is used for Kubernetes clusters whose version is <= 1.23.X, and version 4.7.1 is used for Kubernetes clusters whose version is >= 1.24.X. | baseline | +| INGRESS_NGINX_CHART_VERSION | NGINX Ingress Helm chart version | string | "" | false | If left as "" (empty string), version `4.9.0` is used for Kubernetes clusters whose version is >= 1.25.X, and for Kubernetes clusters whose version is <= 1.24.X please set this variable to avoid errors. See [Supported Versions table](https://github.com/kubernetes/ingress-nginx/?tab=readme-ov-file#supported-versions-table) for the supported versions list. | baseline | | INGRESS_NGINX_CONFIG | NGINX Ingress Helm values | string | See [this file](../roles/baseline/defaults/main.yml) for more information. Altering this value will affect the cluster. | false | | baseline | ### Metrics Server @@ -420,7 +420,7 @@ Kubernetes Metrics Server installation is currently only applicable for AWS EKS | METRICS_SERVER_ENABLED | Whether to deploy Metrics Server | bool | true | false | | baseline | | METRICS_SERVER_CHART_URL | Metrics Server Helm chart url | string | Go [here](https://charts.bitnami.com/bitnami/) for more information. | false | If an existing Metrics Server is installed, these options are ignored. | baseline | | METRICS_SERVER_CHART_NAME | Metrics Server Helm chart name | string | metrics-server | false | If an existing Metrics Server is installed, these options are ignored. | baseline | -| METRICS_SERVER_CHART_VERSION | Metrics Server Helm chart version | string | 6.2.4 | false | If an existing Metrics Server is installed, these options are ignored. | baseline | +| METRICS_SERVER_CHART_VERSION | Metrics Server Helm chart version | string | 6.6.5 | false | If an existing Metrics Server is installed, these options are ignored. See [Artifact Hub](https://artifacthub.io/packages/helm/bitnami/metrics-server) to determine application version.| baseline | | METRICS_SERVER_CONFIG | Metrics Server Helm values | string | See [this file](../roles/baseline/defaults/main.yml) for more information. | false | If an existing Metrics Server is installed, these options are ignored. | baseline | ### NFS Client diff --git a/docs/user/Dependencies.md b/docs/user/Dependencies.md index 0beb2d21..c6e20b0b 100644 --- a/docs/user/Dependencies.md +++ b/docs/user/Dependencies.md @@ -13,7 +13,7 @@ The following list details our dependencies and versions (~ indicates multiple p | ~ | docker | >=20.10.10 | | ~ | git | any | | ~ | rsync | any | -| ~ | kubectl | 1.25 - 1.27 | +| ~ | kubectl | 1.26 - 1.28 | | ~ | Helm | 3 | | pip3 | ansible | 8.6.0 | | pip3 | openshift | 0.13.1 | @@ -48,7 +48,7 @@ As described in the [Docker Installation](./DockerUsage.md) section add addition ```bash # Override kubectl version docker build \ - --build-arg kubectl_version=1.26.10 \ + --build-arg kubectl_version=1.27.9 \ -t viya4-deployment . ``` diff --git a/roles/baseline/defaults/main.yml b/roles/baseline/defaults/main.yml index 7f87225d..3c052391 100644 --- a/roles/baseline/defaults/main.yml +++ b/roles/baseline/defaults/main.yml @@ -24,21 +24,17 @@ METRICS_SERVER_ENABLED: true METRICS_SERVER_NAME: metrics-server METRICS_SERVER_CHART_NAME: metrics-server METRICS_SERVER_CHART_URL: https://charts.bitnami.com/bitnami/ -METRICS_SERVER_CHART_VERSION: 6.2.4 +METRICS_SERVER_CHART_VERSION: 6.6.5 METRICS_SERVER_CONFIG: apiService: create: true ## Ingress-nginx - Defaults ingressVersions: - k8sMinorVersionCeiling: - value: 23 + k8sMinorVersion: + value: 25 api: - chartVersion: 4.3.0 - k8sMinorVersionFloor: - value: 24 - api: - chartVersion: 4.7.1 + chartVersion: 4.9.0 ## Ingress-nginx - Ingress ## @@ -182,7 +178,7 @@ autoscalerVersions: # Supports PodDisruptionBudget policy/v1beta1 default for K8s >=1.25 PDBv1Support: api: - chartVersion: 9.29.1 + chartVersion: 9.34.1 ## EBS CSI Driver EBS_CSI_DRIVER_ENABLED: true diff --git a/roles/baseline/tasks/ingress-nginx.yaml b/roles/baseline/tasks/ingress-nginx.yaml index 85adb019..531db930 100644 --- a/roles/baseline/tasks/ingress-nginx.yaml +++ b/roles/baseline/tasks/ingress-nginx.yaml @@ -25,11 +25,17 @@ register: cluster_info - name: Set the default INGRESS_NGINX_CHART_VERSION based on K8s server minor version set_fact: - INGRESS_NGINX_CHART_VERSION: "{{ ingressVersions.k8sMinorVersionFloor.api.chartVersion if cluster_info.version.server.kubernetes.minor is version(ingressVersions.k8sMinorVersionFloor.value, - 'ge') else ingressVersions.k8sMinorVersionCeiling.api.chartVersion }}" + INGRESS_NGINX_CHART_VERSION: "{{ ingressVersions.k8sMinorVersion.api.chartVersion if cluster_info.version.server.kubernetes.minor is version(ingressVersions.k8sMinorVersion.value, + 'ge') else '' }}" - name: Output INGRESS_NGINX_CHART_VERSION debug: msg: "{{ INGRESS_NGINX_CHART_VERSION }}" + - name: Fail when INGRESS_NGINX_CHART_VERSION not set + fail: + msg: "INGRESS_NGINX_CHART_VERSION isn't set when K8s version is < 1.{{ ingressVersions.k8sMinorVersion.value }}." + when: + - cluster_info.version.server.kubernetes.minor is version(ingressVersions.k8sMinorVersion.value, 'lt') + - INGRESS_NGINX_CHART_VERSION == "" - name: Update INGRESS_NGINX_CONFIG to use NLB for AWS set_fact: @@ -62,7 +68,7 @@ set_fact: INGRESS_NGINX_CONFIG: "{{ INGRESS_NGINX_CONFIG | combine(INGRESS_NGINX_CVE_2021_25742_PATCH, recursive=True) }}" when: - - cluster_info.version.server.kubernetes.minor is version(ingressVersions.k8sMinorVersionFloor.value, 'ge') + - cluster_info.version.server.kubernetes.minor is version(ingressVersions.k8sMinorVersion.value, 'ge') - INGRESS_NGINX_CHART_VERSION is version('4.0.10', ">=") or (INGRESS_NGINX_CHART_VERSION is version('3.40.0', ">=") and INGRESS_NGINX_CHART_VERSION is version('4.0.0', "<"))