Skip to content

Commit

Permalink
Merge pull request #96 from sassoftware/staging
Browse files Browse the repository at this point in the history
3.6.0 - November 30, 2023
  • Loading branch information
jarpat authored Nov 30, 2023
2 parents 772107d + 53740e3 commit 5ae77c0
Show file tree
Hide file tree
Showing 26 changed files with 43 additions and 113 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/linter-analysis.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Linter Analysis
on:
push:
branches: [ '*' ] # '*' will cause the workflow to run on all commits to all branches.
branches: [ '**' ] # '**' will cause the workflow to run on all commits to all branches, including those with path separators

jobs:
# Hadolint: Job-1
Expand Down
6 changes: 3 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ RUN apt-get update && apt-get upgrade -y --no-install-recommends \

# Layers used for building/downloading/installing tools
FROM baseline as tool_builder
ARG HELM_VERSION=3.12.0
ARG KUBECTL_VERSION=1.26.7
ARG TERRAFORM_VERSION=1.4.5-*
ARG HELM_VERSION=3.13.2
ARG KUBECTL_VERSION=1.26.10
ARG TERRAFORM_VERSION=1.6.3-*

WORKDIR /build

Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ This project helps you to automate the cluster-provisioning phase of SAS Viya pl
[<img src="./docs/images/viya4-iac-k8s-diag.png" alt="Architecture Diagram" width="750"/>](./docs/images/viya4-iac-k8s-diag.png?raw=true)

To learn about all phases and options of the SAS Viya platform deployment process, see [Getting Started with SAS Viya and Open Source Kubernetes](https://go.documentation.sas.com/doc/en/itopscdc/default/itopscon/p1qungdpndaksyn156ng6duptma0.htm?fromDefault=) in _SAS&reg; Viya&reg; Platform Operations_.
To learn about all phases and options of the SAS Viya platform deployment process, see [Getting Started with SAS Viya and Open Source Kubernetes](https://documentation.sas.com/?cdcId=itopscdc&cdcVersion=default&docsetId=itopscon&docsetTarget=p1qungdpndaksyn156ng6duptma0.htm) in _SAS&reg; Viya&reg; Platform Operations_.

Once the resources are provisioned, use the [viya4-deployment](https://github.com/sassoftware/viya4-deployment) project to deploy SAS Viya platform in your cloud environment. For more information about SAS Viya platform requirements and documentation for the deployment process, refer to [SAS Viya Platform Operations](https://go.documentation.sas.com/doc/en/itopscdc/default/itopswn/titlepage.htm).
Once the resources are provisioned, use the [viya4-deployment](https://github.com/sassoftware/viya4-deployment) project to deploy SAS Viya platform in your cloud environment. For more information about SAS Viya platform requirements and documentation for the deployment process, refer to [SAS Viya Platform Operations](https://documentation.sas.com/?cdcId=itopscdc&cdcVersion=default&docsetId=itopswn&docsetTarget=titlepage.htm).

This project supports infrastructure that is built on **physical machines** ("bare metal" machines or Linux VMs) or on **VMware vSphere or vCenter** machines. If you need to create a cluster in [AWS](https://github.com/sassoftware/viya4-iac-aws), [Microsoft Azure](https://github.com/sassoftware/viya4-iac-azure/), or [GCP](https://github.com/sassoftware/viya4-iac-gcp/), use the appropriate SAS Viya IaC repository to perform the associated tasks.

Expand Down Expand Up @@ -100,10 +100,10 @@ This project supports the following options for running the scripts in this repo

The following software is required in order to run the SAS Viya IaC tools here on your local system:

- [Terraform](https://www.terraform.io/downloads) - v1.4.5
- [Ansible](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html) - v2.13.4
- [Terraform](https://www.terraform.io/downloads) - v1.6.3
- [Ansible](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html) - v2.15.6
- [Docker](https://docs.docker.com/engine/install/) - v20.10.17
- [Helm](https://helm.sh/docs/intro/install/) - v3.12.0
- [Helm](https://helm.sh/docs/intro/install/) - v3.13.2

#### Docker Requirements

Expand Down
2 changes: 2 additions & 0 deletions TODO.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
## Complete Container Registry Setup
- Make updates to the `/systems/container_registry` role to fully set up a Harbor Registry for a user.
12 changes: 6 additions & 6 deletions docs/CONFIG-VARS.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ Terraform input variables can be set in the following ways:

| Name | Description | Type | Default | Notes |
| :--- | :--- | :--- | :--- | :--- |
| cluster_version | Kubernetes version | string | "1.26.7" | Valid values are listed here: [SAS Viya platform Supported Kubernetes Versions](https://go.documentation.sas.com/doc/en/itopscdc/default/itopssr/n1ika6zxghgsoqn1mq4bck9dx695.htm#p03v0o4maa8oidn1awe0w4xlxcf6). |
| cluster_version | Kubernetes version | string | "1.26.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_cni | Kubernetes container network interface (CNI) | string | "calico" | |
| cluster_cni_version | Kubernetes Container Network Interface (CNI) Version | string | "3.24.5" | |
| cluster_cri | Kubernetes container runtime interface (CRI) | string | "containerd" | |
Expand Down Expand Up @@ -297,7 +297,7 @@ Each server element, like `foo = {}`, can contain none, some, or all of the para
| server_memory | Memory in MB | number | 16385 | |
| server_disk_size | Size of disk in GB | number | 250 | |
| server_ip | Static IP address for PostgreSQL server | string | | This is a required field. |
| server_version | The version of the PostgreSQL server | string | "13" | Refer to the [SAS Viya platform System Requirements](https://go.documentation.sas.com/doc/en/sasadmincdc/default/itopssr/p05lfgkwib3zxbn1t6nyihexp12n.htm?fromDefault=#p1wq8ouke3c6ixn1la636df9oa1u) for the supported versions of PostgreSQL for the SAS Viya platform. |
| server_version | The version of the PostgreSQL server | string | "13" | Refer to the [SAS Viya platform System Requirements](https://documentation.sas.com/?cdcId=sasadmincdc&cdcVersion=default&docsetId=itopssr&docsetTarget=p05lfgkwib3zxbn1t6nyihexp12n.htm#p1wq8ouke3c6ixn1la636df9oa1u) for the supported versions of PostgreSQL for the SAS Viya platform. |
| server_ssl | Enable/disable SSL | string | "off" | |
| server_ssl_cert_file | Path to the PostgreSQL SSL certificate file | string | "" | If `server_ssl` is enabled and this variable is not defined, the system default SSL certificate is used. |
| server_ssl_key_file | Path to the PostgreSQL SSL key file | string | "" | If `server_ssl` is enabled and this variable is not defined, the system default SSL key is used. |
Expand All @@ -311,7 +311,7 @@ Each server element, like `foo = {}`, can contain none, some, or all of the para
- The Ansible tasks that are performed include copying the certificate and key from the PostgreSQL VM into your local workspace directory.
2. If you are planning to use the [viya4-deployment repository](https://github.com/sassoftware/viya4-deployment) to perform a SAS Viya platform deployment where you have [full-stack TLS](https://github.com/sassoftware/viya4-deployment/blob/main/docs/CONFIG-VARS.md#tls) configured, make sure that the `V4_CFG_TLS_TRUSTED_CA_CERTS` variable in the viya4-deployment ansible-vars.yaml file points to a directory that contains the server_ssl_cert_file.

Multiple SAS offerings require a second PostgreSQL instance referred to as SAS Common Data Store, or CDS PostgreSQL. For more information, see [Common Customizations](https://go.documentation.sas.com/?cdcId=itopscdc&cdcVersion=default&docsetId=dplyml0phy0dkr&docsetTarget=n08u2yg8tdkb4jn18u8zsi6yfv3d.htm#p0wkxxi9s38zbzn19ukjjaxsc0kl). A list of SAS offerings that require CDS PostgreSQL is provided in [SAS Common Data Store Requirements](https://go.documentation.sas.com/?cdcId=itopscdc&cdcVersion=default&docsetId=itopssr&docsetTarget=p05lfgkwib3zxbn1t6nyihexp12n.htm#n03wzanutmc6gon1val5fykas9aa). To create and configure an external CDS PostgreSQL instance in addition to the external platform PostgreSQL instance named `default`, specify `cds-postgres` as a second PostgreSQL instance, as shown in the example below.
Multiple SAS offerings require a second PostgreSQL instance referred to as SAS Common Data Store, or CDS PostgreSQL. For more information, see [Common Customizations](https://documentation.sas.com/?cdcId=itopscdc&cdcVersion=default&docsetId=dplyml0phy0dkr&docsetTarget=n08u2yg8tdkb4jn18u8zsi6yfv3d.htm#p0wkxxi9s38zbzn19ukjjaxsc0kl). A list of SAS offerings that require CDS PostgreSQL is provided in [SAS Common Data Store Requirements](https://documentation.sas.com/?cdcId=itopscdc&cdcVersion=default&docsetId=itopssr&docsetTarget=p05lfgkwib3zxbn1t6nyihexp12n.htm#n03wzanutmc6gon1val5fykas9aa). To create and configure an external CDS PostgreSQL instance in addition to the external platform PostgreSQL instance named `default`, specify `cds-postgres` as a second PostgreSQL instance, as shown in the example below.

Here is an example of the `postgres_servers` variable with the `default` server entry overriding only the `administrator_password` parameter and the `cds-postgres` entry overriding all the parameters:

Expand Down Expand Up @@ -433,14 +433,14 @@ The following variables are used to describe the machine targets for the SAS Viy
| Name | Description | Type | Notes |
|:---|---:|---:|---:|
| postgres_server_name | Name of the PostgreSQL server | string | |
| postgres_server_version | The version of the PostgreSQL server | string | Refer to the [SAS Viya Platform Administration Guide](https://go.documentation.sas.com/doc/en/sasadmincdc/default/itopssr/p05lfgkwib3zxbn1t6nyihexp12n.htm?fromDefault=#p1wq8ouke3c6ixn1la636df9oa1u) for the supported versions of PostgreSQL for the SAS Viya platform. |
| postgres_server_version | The version of the PostgreSQL server | string | Refer to the [SAS Viya Platform Administration Guide](https://documentation.sas.com/?cdcId=sasadmincdc&cdcVersion=default&docsetId=itopssr&docsetTarget=p05lfgkwib3zxbn1t6nyihexp12n.htm#p1wq8ouke3c6ixn1la636df9oa1u) for the supported versions of PostgreSQL for the SAS Viya platform. |
| postgres_server_ssl | Enable/disable SSL | string | Specify `off` or `on` |
| postgres_server_ssl_cert_file | Path to the PostgreSQL SSL certificate file | string | If `postgres_server_ssl` is enabled and this variable is not defined, the system default SSL certificate is used. |
| postgres_server_ssl_key_file | Path to the PostgreSQL SSL key file | string | If `postgres_server_ssl` is enabled and this variable is not defined, the system default SSL key is used. |
| postgres_administrator_login | PostgreSQL admin user | string | |
| postgres_administrator_password | PostgreSQL admin password | string | |
| postgres_system_setting_max_prepared_transactions | Allows you to configure the `max_prepared_transactions` setting for your PostgreSQL Server | string | If not defined in your inventory file, the value 1024 will automatically be configured as per the [SAS Viya Platform PG tuning requirements](https://go.documentation.sas.com/doc/en/sasadmincdc/default/caltuning/n0adso3frm5ioxn1s2kwa4vbm9db.htm#n03n7868gd4m83n1azbziv4hiozb) |
| postgres_system_setting_max_connections | Allows you to configure the `max_connections` setting for your PostgreSQL Server | string | If not defined in your inventory file, the value 1024 will automatically be configured as per the [SAS Viya Platform PG tuning requirements](https://go.documentation.sas.com/doc/en/sasadmincdc/default/caltuning/n0adso3frm5ioxn1s2kwa4vbm9db.htm#n03n7868gd4m83n1azbziv4hiozb) |
| postgres_system_setting_max_prepared_transactions | Allows you to configure the `max_prepared_transactions` setting for your PostgreSQL Server | string | If not defined in your inventory file, the value 1024 will automatically be configured as per the [SAS Viya Platform PG tuning requirements](https://documentation.sas.com/?cdcId=sasadmincdc&cdcVersion=default&docsetId=caltuning&docsetTarget=n0adso3frm5ioxn1s2kwa4vbm9db.htm#n03n7868gd4m83n1azbziv4hiozb) |
| postgres_system_setting_max_connections | Allows you to configure the `max_connections` setting for your PostgreSQL Server | string | If not defined in your inventory file, the value 1024 will automatically be configured as per the [SAS Viya Platform PG tuning requirements](https://documentation.sas.com/?cdcId=sasadmincdc&cdcVersion=default&docsetId=caltuning&docsetTarget=n0adso3frm5ioxn1s2kwa4vbm9db.htm#n03n7868gd4m83n1azbziv4hiozb) |


## Storage
Expand Down
16 changes: 3 additions & 13 deletions docs/REQUIREMENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -367,13 +367,6 @@ nfs_memory = 16384 # 16 GB
nfs_disk_size = 500 # 500 GB
nfs_ip = "10.18.0.12" # Assigned values for static IPs
# Container Registry
create_cr = false # Creation flag
cr_num_cpu = 4 # 4 CPUs
cr_memory = 8092 # 8 GB
cr_disk_size = 250 # 250 GB
cr_ip = "10.18.0.13" # Assigned values for static IPs
# PostgreSQL server
#
# Suggested server specs shown below.
Expand Down Expand Up @@ -634,9 +627,6 @@ jump_ip : ""
# NFS Server
nfs_ip : ""

# Container Registry
cr_ip : ""

# PostgreSQL Servers
```

Expand Down Expand Up @@ -681,7 +671,7 @@ The third-party applications that are listed in the following table are supporte

| Application | Minimum Version |
| ---: | ---: |
| [Ansible](https://www.ansible.com/) | Core 2.13.4 |
| [Terraform](https://www.terraform.io/) | 1.4.5 |
| [Ansible](https://www.ansible.com/) | Core 2.15.6 |
| [Terraform](https://www.terraform.io/) | 1.6.3 |
| [Docker](https://www.docker.com/) | 20.10.17 |
| [Helm](https://helm.sh/) | 3.12.0 |
| [Helm](https://helm.sh/) | 3.13.2 |
3 changes: 0 additions & 3 deletions examples/bare-metal/sample-ansible-vars.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,3 @@ jump_ip : ""

# NFS Server
nfs_ip : ""

# Container Registry
cr_ip : ""
12 changes: 0 additions & 12 deletions examples/bare-metal/sample-inventory
Original file line number Diff line number Diff line change
Expand Up @@ -49,18 +49,6 @@ FIXME - ENTER YOUR NFS SERVER IP/FQDN HERE!
[nfs:children]
nfs_server

#
# Container Registry
#
[cr_server]
FIXME - ENTER YOUR CR SERVER IP/FQDN HERE!

#
# Container Registry - alias - DO NOT MODIFY
#
[cr:children]
cr_server

#
# Postgres Servers
#
Expand Down
12 changes: 0 additions & 12 deletions examples/bare-metal/sample-inventory-internal-postgres
Original file line number Diff line number Diff line change
Expand Up @@ -53,18 +53,6 @@ FIXME - ENTER YOUR NFS SERVER IP/FQDN HERE!
[nfs:children]
nfs_server

#
# Container Registry
#
[cr_server]
FIXME - ENTER YOUR CR SERVER IP/FQDN HERE!

#
# Container Registry - alias - DO NOT MODIFY
#
[cr:children]
cr_server

#
# All systems
#
Expand Down
7 changes: 0 additions & 7 deletions examples/vsphere/sample-terraform-dhcp.tfvars
Original file line number Diff line number Diff line change
Expand Up @@ -189,13 +189,6 @@ nfs_memory = 16384 # 16 GB
nfs_disk_size = 500 # 500 GB
nfs_ip = "" # Assigned values for static IPs

# Container Registry
create_cr = false # Creation flag
cr_num_cpu = 4 # 4 CPUs
cr_memory = 8092 # 8 GB
cr_disk_size = 250 # 250 GB
cr_ip = "" # Assigned values for static IPs

# Postgres Servers
postgres_servers = {
default = {
Expand Down
7 changes: 0 additions & 7 deletions examples/vsphere/sample-terraform-minimal.tfvars
Original file line number Diff line number Diff line change
Expand Up @@ -151,13 +151,6 @@ nfs_memory = 16384 # 16 GB
nfs_disk_size = 500 # 500 GB
nfs_ip = "" # Assigned values for static IPs

# Container Registry
create_cr = false # Creation flag
cr_num_cpu = 4 # 4 CPUs
cr_memory = 8092 # 8 GB
cr_disk_size = 250 # 250 GB
cr_ip = "" # Assigned values for static IPs

# Postgres Servers
postgres_servers = {
default = {
Expand Down
7 changes: 0 additions & 7 deletions examples/vsphere/sample-terraform-static-ips.tfvars
Original file line number Diff line number Diff line change
Expand Up @@ -190,13 +190,6 @@ nfs_memory = 16384 # 16 GB
nfs_disk_size = 500 # 500 GB
nfs_ip = "" # Assigned values for static IPs

# Container Registry
create_cr = true # Creation flag
cr_num_cpu = 4 # 4 CPUs
cr_memory = 8092 # 8 GB
cr_disk_size = 250 # 250 GB
cr_ip = "" # Assigned values for static IPs

# Postgres Servers
postgres_servers = {
default = {
Expand Down
7 changes: 0 additions & 7 deletions examples/vsphere/sample-terraform-static-singlestore.tfvars
Original file line number Diff line number Diff line change
Expand Up @@ -216,13 +216,6 @@ nfs_memory = 16384 # 16 GB
nfs_disk_size = 500 # 500 GB
nfs_ip = "" # Assigned values for static IPs

# Container Registry
create_cr = false # Creation flag
cr_num_cpu = 4 # 4 CPUs
cr_memory = 8092 # 8 GB
cr_disk_size = 250 # 250 GB
cr_ip = "" # Assigned values for static IPs

# Postgres Servers
postgres_servers = {
default = {
Expand Down
7 changes: 0 additions & 7 deletions examples/vsphere/sample-terraform-vi.tfvars
Original file line number Diff line number Diff line change
Expand Up @@ -143,13 +143,6 @@ nfs_memory = 16384 # 16 GB
nfs_disk_size = 500 # 500 GB
nfs_ip = "" # Assigned values for static IPs

# Container Registry
create_cr = false # Creation flag
cr_num_cpu = 4 # 4 CPUs
cr_memory = 8092 # 8 GB
cr_disk_size = 250 # 250 GB
cr_ip = "" # Assigned values for static IPs

# Postgres Servers
postgres_servers = {
default = {
Expand Down
17 changes: 0 additions & 17 deletions playbooks/kubernetes-install.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -74,23 +74,6 @@
roles:
- { role: kubernetes/node/labels_taints }

# Alter PostgreSQL server and add PostgreSQL databases
- hosts: postgres
name: Postgres Setup - Configuration
become: true
become_user: postgres
roles:
- { role: kubernetes/database/postgres/alter_server_settings }
- { role: kubernetes/database/postgres/create_databases }

# Restart PostgreSQL server
- hosts: postgres
name: Postgres Setup - Restart
become: true
become_user: root
roles:
- { role: kubernetes/database/postgres/restart_server }

# Setup default storage class for cluster
- hosts: localhost
name: Default Storage Class Setup
Expand Down
19 changes: 18 additions & 1 deletion playbooks/systems-install.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,24 @@
become: true
become_user: root
roles:
- { role: systems/postgres }
- { role: systems/postgres/install }

# Alter PostgreSQL server and add PostgreSQL databases
- hosts: postgres
name: Postgres Setup - Configuration
become: true
become_user: postgres
roles:
- { role: systems/postgres/alter_server_settings }
- { role: systems/postgres/create_databases }

# Restart PostgreSQL server
- hosts: postgres
name: Postgres Setup - Restart
become: true
become_user: root
roles:
- { role: systems/postgres/restart_server }

# Container Registry Server
- hosts: cr
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#
# Reference : pypi.org
#
ansible==8.0.0 # 6.4.0 # 5.5.0 # 2.10.7
ansible==8.6.0 # 8.0.0 # 6.4.0 # 5.5.0 # 2.10.7
openshift==0.13.1 # 0.12.0
kubernetes==26.1.0 # 24.2.0 # 23.3.0 # 12.0.1
dnspython==2.3.0 # 2.2.1 # 2.1.0
Expand Down
2 changes: 1 addition & 1 deletion roles/kubernetes/common/defaults/main.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
# SPDX-License-Identifier: Apache-2.0

---
helm_version: 3.12.0
helm_version: 3.13.2
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -212,7 +212,7 @@ variable "nfs_disk_size" {
default = 250
}

# container registry
# container registry - TODO
variable "create_cr" {
type = bool
default = false
Expand Down
4 changes: 2 additions & 2 deletions versions.tf
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ terraform {
required_providers {
vsphere = {
source = "hashicorp/vsphere"
version = ">= 2.2.0"
version = "2.5.1"
}
local = {
source = "hashicorp/local"
version = ">= 2.2.3"
version = "2.4.0"
}
}
}

0 comments on commit 5ae77c0

Please sign in to comment.