Skip to content

Commit

Permalink
Merge pull request #139 from sassoftware/staging
Browse files Browse the repository at this point in the history
3.14.0 - January 17, 2025
  • Loading branch information
saschjmil authored Jan 17, 2025
2 parents 332fcc9 + cb51f6d commit 0d41beb
Show file tree
Hide file tree
Showing 17 changed files with 312 additions and 47 deletions.
6 changes: 6 additions & 0 deletions .github/workflows/linter-analysis.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,12 @@ jobs:
path: ~/.tflint.d/plugins
key: ubuntu-latest-tflint-${{ hashFiles('.tflint.hcl') }}

- name: Setup Terraform
uses: hashicorp/setup-terraform@v3
with:
terraform_version: "^1.9.8"
terraform_wrapper: false

- name: Setup TFLint
uses: terraform-linters/[email protected]
with:
Expand Down
2 changes: 2 additions & 0 deletions CodingStandards.txt
Original file line number Diff line number Diff line change
Expand Up @@ -50,5 +50,7 @@ For Terraform-related files the standards are:
When coding has completed, run the following command:

- terraform fmt -recursive

When committing your changes, use the "git commit -s" form to sign your changes. This is required for the DCO ci/cd step that runs for all PRs.

This ensures everyone on the team has the same and consistent file formatting prior to pushing the code into git.
16 changes: 8 additions & 8 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,24 +1,24 @@
# Base layer
FROM ubuntu:22.04 as baseline
FROM ubuntu:22.04 AS baseline
RUN apt-get update && apt-get upgrade -y --no-install-recommends \
&& apt-get install -y python3 python3-dev python3-pip curl unzip gnupg --no-install-recommends \
&& update-alternatives --install /usr/bin/python python /usr/bin/python3 1 \
&& update-alternatives --install /usr/bin/pip pip /usr/bin/pip3 1 \
&& apt-get clean && rm -rf /var/lib/apt/lists/*

# Layers used for building/downloading/installing tools
FROM baseline as tool_builder
ARG HELM_VERSION=3.14.4
ARG KUBECTL_VERSION=1.29.7
ARG TERRAFORM_VERSION=1.8.5-*
FROM baseline AS tool_builder
ARG HELM_VERSION=3.16.2
ARG KUBECTL_VERSION=1.30.8
ARG TERRAFORM_VERSION=1.9.8-*

WORKDIR /build

SHELL ["/bin/bash", "-o", "pipefail", "-c"]
RUN curl -fsSL https://apt.releases.hashicorp.com/gpg | apt-key add - \
&& echo "deb [arch=amd64] https://apt.releases.hashicorp.com focal main" > /etc/apt/sources.list.d/tf.list \
&& apt-get update \
&& curl -sLO https://storage.googleapis.com/kubernetes-release/release/v$KUBECTL_VERSION/bin/linux/amd64/kubectl && chmod 755 ./kubectl \
&& curl -sLO https://dl.k8s.io/release/v$KUBECTL_VERSION/bin/linux/amd64/kubectl && chmod 755 ./kubectl \
&& curl -ksLO https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 && chmod 755 get-helm-3 \
&& ./get-helm-3 --version v$HELM_VERSION --no-sudo \
&& apt-get install -y terraform=$TERRAFORM_VERSION --no-install-recommends \
Expand All @@ -43,8 +43,8 @@ RUN pip install -r ./requirements.txt --no-cache-dir \
&& ansible-galaxy install -r ./requirements.yaml \
&& chmod 755 /viya4-iac-k8s/docker-entrypoint.sh /viya4-iac-k8s/oss-k8s.sh \
&& terraform init \
&& chmod g=u -R /etc/passwd /etc/group /viya4-iac-k8s \
&& git config --system --add safe.directory /viya4-iac-k8s
&& git config --system --add safe.directory /viya4-iac-k8s \
&& chmod g=u -R /etc/passwd /etc/group /viya4-iac-k8s

ENV IAC_TOOLING=docker
ENV TF_VAR_iac_tooling=docker
Expand Down
12 changes: 6 additions & 6 deletions docs/CONFIG-VARS.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,11 +69,11 @@ Terraform input variables can be set in the following ways:

| Name | Description | Type | Default | Notes |
| :--- | :--- | :--- | :--- | :--- |
| cluster_version | Kubernetes version | string | "1.29.7" | Valid values are listed here: [SAS Viya platform Supported Kubernetes Versions](https://documentation.sas.com/?cdcId=itopscdc&cdcVersion=default&docsetId=itopssr&docsetTarget=n1ika6zxghgsoqn1mq4bck9dx695.htm#p03v0o4maa8oidn1awe0w4xlxcf6). |
| cluster_version | Kubernetes version | string | "1.30.8" | Valid values are listed here: [SAS Viya platform Supported Kubernetes Versions](https://documentation.sas.com/?cdcId=itopscdc&cdcVersion=default&docsetId=itopssr&docsetTarget=n1ika6zxghgsoqn1mq4bck9dx695.htm#p03v0o4maa8oidn1awe0w4xlxcf6). |
| cluster_cni | Kubernetes container network interface (CNI) | string | "calico" | |
| cluster_cni_version | Kubernetes Container Network Interface (CNI) Version | string | "3.28.0" | |
| cluster_cni_version | Kubernetes Container Network Interface (CNI) Version | string | "3.29.0" | |
| cluster_cri | Kubernetes container runtime interface (CRI) | string | "containerd" | |
| cluster_cri_version | Version of the CRI specifed by `cluster_cri` to be installed | string | "1.6.28" | Set as an empty string to use the latest upstream version from the Docker APT repository. Currently only containerd is supported, see the [releases page](https://github.com/containerd/containerd/releases) for available versions |
| cluster_cri_version | Version of the CRI specifed by `cluster_cri` to be installed | string | "1.7.24" | Set as an empty string to use the latest upstream version from the Docker APT repository. Currently only containerd is supported, see the [releases page](https://github.com/containerd/containerd/releases) for available versions |
| cluster_service_subnet | Kubernetes service subnet | string | "10.43.0.0/16" | |
| cluster_pod_subnet | Kubernetes pod subnet | string | "10.42.0.0/16" | |
| cluster_domain | Cluster domain suffix for DNS | string | | |
Expand Down Expand Up @@ -353,13 +353,13 @@ The following variables are used to describe the machine targets for the SAS Viy
| prefix | A prefix used in the names of all the resources created by this script | string | | |
| deployment_type | Type of deployment to be performed | string | "bare_metal" | Specify `bare_metal` or `vsphere`. |
| kubernetes_cluster_name | Cluster name | string | "{{ prefix }}-oss" | This item is auto-filled. **ONLY** change the `prefix` value described previously. |
| kubernetes_version | Kubernetes version | string | "1.29.7" | Valid values are listed here: [Kubernetes Releases](https://kubernetes.io/releases/). |
| kubernetes_version | Kubernetes version | string | "1.30.8" | Valid values are listed here: [Kubernetes Releases](https://kubernetes.io/releases/). |
| kubernetes_upgrade_allowed | | bool | true | **NOTE:** Not currently used. |
| kubernetes_arch | | string | "{{ vm_arch }}" | This item is auto-filled. **ONLY** change the `vm_arch` value described previously. |
| kubernetes_cni | Kubernetes Container Network Interface (CNI) | string | "calico" | |
| kubernetes_cni_version | Kubernetes Container Network Interface (CNI) Version | string | "3.28.0" | |
| kubernetes_cni_version | Kubernetes Container Network Interface (CNI) Version | string | "3.29.0" | |
| kubernetes_cri | Kubernetes Container Runtime Interface (CRI) | string | "containerd" | |
| kubernetes_cri_version | Version of the CRI specifed by `kubernetes_cri` to be installed | string | "1.6.28" | Set as an empty string to use the latest upstream version from the Docker APT repository. Currently only containerd is supported, see the [releases page](https://github.com/containerd/containerd/releases) for available versions | |
| kubernetes_cri_version | Version of the CRI specifed by `kubernetes_cri` to be installed | string | "1.7.24" | Set as an empty string to use the latest upstream version from the Docker APT repository. Currently only containerd is supported, see the [releases page](https://github.com/containerd/containerd/releases) for available versions | |
| kubernetes_service_subnet | Kubernetes service subnet | string | "10.43.0.0/16" | |
| kubernetes_pod_subnet | Kubernetes pod subnet | string | "10.42.0.0/16" | |
| kubernetes_vip_version | kube-vip version | string | "0.7.1" | |
Expand Down
14 changes: 7 additions & 7 deletions docs/REQUIREMENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -215,11 +215,11 @@ vsphere_network = "" # Name of the network to to use for the VMs
system_ssh_keys_dir = "~/.ssh" # Directory holding public keys to be used on each machine
# Kubernetes - Cluster
cluster_version = "1.29.7" # Kubernetes version
cluster_version = "1.30.8" # Kubernetes version
cluster_cni = "calico" # Kubernetes Container Network Interface (CNI)
cluster_cni_version = "3.28.0" # Kubernetes Container Network Interface (CNI) Version
cluster_cni_version = "3.29.0" # Kubernetes Container Network Interface (CNI) Version
cluster_cri = "containerd" # Kubernetes Container Runtime Interface (CRI)
cluster_cri_version = "1.6.28" # Kubernetes Container Runtime Interface (CRI) Version
cluster_cri_version = "1.7.24" # Kubernetes Container Runtime Interface (CRI) Version
cluster_service_subnet = "10.35.0.0/16" # Kubernetes service subnet
cluster_pod_subnet = "10.36.0.0/16" # Kubernetes Pod subnet
cluster_domain = "sample.domain.foo.com" # Cluster domain suffix for DNS
Expand Down Expand Up @@ -522,9 +522,9 @@ kubernetes_version : ""
kubernetes_upgrade_allowed : true
kubernetes_arch : "{{ vm_arch }}"
kubernetes_cni : "calico" # Choices : [calico]
kubernetes_cni_version : "3.28.0" # Choices : [3.28.0]
kubernetes_cni_version : "3.29.0" # Choices : [3.29.0]
kubernetes_cri : "containerd" # Choices : [containerd]
kubernetes_cri_version : "1.6.28" # Choices : [1.6.28]
kubernetes_cri_version : "1.7.24" # Choices : [1.7.24]
kubernetes_service_subnet : ""
kubernetes_pod_subnet : ""

Expand Down Expand Up @@ -684,6 +684,6 @@ The third-party applications that are listed in the following table are supporte
| Application | Minimum Version |
| ---: | ---: |
| [Ansible](https://www.ansible.com/) | Core 2.16.1 |
| [Terraform](https://www.terraform.io/) | 1.8.5 |
| [Terraform](https://www.terraform.io/) | 1.9.8 |
| [Docker](https://www.docker.com/) | 20.10.17 |
| [Helm](https://helm.sh/) | 3.14.4 |
| [Helm](https://helm.sh/) | 3.16.2 |
6 changes: 3 additions & 3 deletions docs/user/Dependencies.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ For dependency installation instructions and sources, links have been provided i
|----------------|------------------------------------------------------------------------------------------------------------------------------------------------|-------------|
| ~ | [python](https://www.python.org/downloads/) | >=3.10 |
| ~ | [pip](https://packaging.python.org/en/latest/guides/installing-using-linux-tools/#installing-pip-setuptools-wheel-with-linux-package-managers) | >=22.0 |
| ~ | [terraform](https://www.terraform.io/downloads) | >=1.4.5 |
| ~ | [terraform](https://www.terraform.io/downloads) | >=1.9.8 |
| ~ | [docker](https://docs.docker.com/engine/install/) | >=20.10.17 |
| ~ | [helm](https://helm.sh/docs/intro/install/) | >=3 |
| ~ | [kubectl](https://kubernetes.io/docs/tasks/tools/) | 1.26 - 1.28 |
| ~ | [kubectl](https://kubernetes.io/docs/tasks/tools/) | 1.28 - 1.30 |
| ~ | [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) | any |
| ~ | [jq](https://jqlang.github.io/jq/download/) | >=1.6 |
| pip | ansible-core | 2.16.4 |
Expand Down Expand Up @@ -53,7 +53,7 @@ Example of using build arguments to control specific versions of dependencies in
```bash
# Override kubectl version
docker build \
--build-arg KUBECTL_VERSION=1.29.7 \
--build-arg KUBECTL_VERSION=1.30.8 \
-t viya4-iac-k8s .
```

Expand Down
4 changes: 2 additions & 2 deletions examples/bare-metal/sample-ansible-vars.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ kubernetes_version : ""
kubernetes_upgrade_allowed : true
kubernetes_arch : "{{ vm_arch }}"
kubernetes_cni : "calico" # Choices : [calico]
kubernetes_cni_version : "3.28.0" # Choices : [3.28.0]
kubernetes_cni_version : "3.29.0" # Choices : [3.29.0]
kubernetes_cri : "containerd" # Choices : [containerd]
kubernetes_cri_version : "1.6.28" # Choices : [1.6.28]
kubernetes_cri_version : "1.7.24" # Choices : [1.7.24]
kubernetes_service_subnet : ""
kubernetes_pod_subnet : ""

Expand Down
6 changes: 3 additions & 3 deletions examples/vsphere/sample-terraform-dhcp.tfvars
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@ vsphere_network = "" # Name of the network to to use for the VMs
system_ssh_keys_dir = "~/.ssh/oss" # Directory holding public keys to be used on each system

# Kubernetes - Cluster
cluster_version = "1.29.7" # Kubernetes Version
cluster_version = "1.30.8" # Kubernetes Version
cluster_cni = "calico" # Kubernetes Container Network Interface (CNI)
cluster_cni_version = "3.28.0" # Kubernetes Container Network Interface (CNI) Version
cluster_cni_version = "3.29.0" # Kubernetes Container Network Interface (CNI) Version
cluster_cri = "containerd" # Kubernetes Container Runtime Interface (CRI)
cluster_cri_version = "1.6.28" # Kubernetes Container Runtime Interface (CRI) Version
cluster_cri_version = "1.7.24" # Kubernetes Container Runtime Interface (CRI) Version
cluster_service_subnet = "10.43.0.0/16" # Kubernetes Service Subnet
cluster_pod_subnet = "10.42.0.0/16" # Kubernetes Pod Subnet
cluster_domain = "" # Cluster domain suffix for DNS
Expand Down
6 changes: 3 additions & 3 deletions examples/vsphere/sample-terraform-minimal.tfvars
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@ vsphere_network = "" # Name of the network to to use for the VMs
system_ssh_keys_dir = "~/.ssh/oss" # Directory holding public keys to be used on each system

# Kubernetes - Cluster
cluster_version = "1.29.7" # Kubernetes Version
cluster_version = "1.30.8" # Kubernetes Version
cluster_cni = "calico" # Kubernetes Container Network Interface (CNI)
cluster_cni_version = "3.28.0" # Kubernetes Container Network Interface (CNI) Version
cluster_cni_version = "3.29.0" # Kubernetes Container Network Interface (CNI) Version
cluster_cri = "containerd" # Kubernetes Container Runtime Interface (CRI)
cluster_cri_version = "1.6.28" # Kubernetes Container Runtime Interface (CRI) Version
cluster_cri_version = "1.7.24" # Kubernetes Container Runtime Interface (CRI) Version
cluster_service_subnet = "10.43.0.0/16" # Kubernetes Service Subnet
cluster_pod_subnet = "10.42.0.0/16" # Kubernetes Pod Subnet
cluster_domain = "" # Cluster domain suffix for DNS
Expand Down
6 changes: 3 additions & 3 deletions examples/vsphere/sample-terraform-static-ips.tfvars
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@ vsphere_network = "" # Name of the network to to use for the VMs
system_ssh_keys_dir = "~/.ssh/oss" # Directory holding public keys to be used on each system

# Kubernetes - Cluster
cluster_version = "1.29.7" # Kubernetes Version
cluster_version = "1.30.8" # Kubernetes Version
cluster_cni = "calico" # Kubernetes Container Network Interface (CNI)
cluster_cni_version = "3.28.0" # Kubernetes Container Network Interface (CNI) Version
cluster_cni_version = "3.29.0" # Kubernetes Container Network Interface (CNI) Version
cluster_cri = "containerd" # Kubernetes Container Runtime Interface (CRI)
cluster_cri_version = "1.6.28" # Kubernetes Container Runtime Interface (CRI) Version
cluster_cri_version = "1.7.24" # Kubernetes Container Runtime Interface (CRI) Version
cluster_service_subnet = "10.43.0.0/16" # Kubernetes Service Subnet
cluster_pod_subnet = "10.42.0.0/16" # Kubernetes Pod Subnet
cluster_domain = "" # Cluster domain suffix for DNS
Expand Down
6 changes: 3 additions & 3 deletions examples/vsphere/sample-terraform-static-singlestore.tfvars
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@ vsphere_network = "" # Name of the network to to use for the VMs
system_ssh_keys_dir = "~/.ssh/oss" # Directory holding public keys to be used on each system

# Kubernetes - Cluster
cluster_version = "1.29.7" # Kubernetes Version
cluster_version = "1.30.8" # Kubernetes Version
cluster_cni = "calico" # Kubernetes Container Network Interface (CNI)
cluster_cni_version = "3.28.0" # Kubernetes Container Network Interface (CNI) Version
cluster_cni_version = "3.29.0" # Kubernetes Container Network Interface (CNI) Version
cluster_cri = "containerd" # Kubernetes Container Runtime Interface (CRI)
cluster_cri_version = "1.6.28" # Kubernetes Container Runtime Interface (CRI) Version
cluster_cri_version = "1.7.24" # Kubernetes Container Runtime Interface (CRI) Version
cluster_service_subnet = "10.43.0.0/16" # Kubernetes Service Subnet
cluster_pod_subnet = "10.42.0.0/16" # Kubernetes Pod Subnet
cluster_domain = "" # Cluster domain suffix for DNS
Expand Down
6 changes: 3 additions & 3 deletions examples/vsphere/sample-terraform-vi.tfvars
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@ vsphere_network = "" # Name of the network to to use for the VMs
system_ssh_keys_dir = "~/.ssh/oss" # Directory holding public keys to be used on each system

# Kubernetes - Cluster
cluster_version = "1.29.7" # Kubernetes Version
cluster_version = "1.30.8" # Kubernetes Version
cluster_cni = "calico" # Kubernetes Container Network Interface (CNI)
cluster_cni_version = "3.28.0" # Kubernetes Container Network Interface (CNI) Version
cluster_cni_version = "3.29.0" # Kubernetes Container Network Interface (CNI) Version
cluster_cri = "containerd" # Kubernetes Container Runtime Interface (CRI)
cluster_cri_version = "1.6.28" # Kubernetes Container Runtime Interface (CRI) Version
cluster_cri_version = "1.7.24" # Kubernetes Container Runtime Interface (CRI) Version
cluster_service_subnet = "10.43.0.0/16" # Kubernetes Service Subnet
cluster_pod_subnet = "10.42.0.0/16" # Kubernetes Pod Subnet
cluster_domain = "" # Cluster domain suffix for DNS
Expand Down
2 changes: 1 addition & 1 deletion linting-configs/.tflint.hcl
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

config {
# Enables module inspection.
module = true
call_module_type = "all"
}

plugin "terraform" {
Expand Down
2 changes: 1 addition & 1 deletion roles/kubernetes/cri/containerd/defaults/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@
# Focal 20 https://download.docker.com/linux/ubuntu/dists/focal/stable/binary-amd64/
# On that page select "Packages" and the text file that is downloaded will contain all the versions of
# containerd available in the repository.
kubernetes_cri_version: "1.6.28"
kubernetes_cri_version: "1.7.24"
kubernetes_cri_deb_rev: ""
Loading

0 comments on commit 0d41beb

Please sign in to comment.