Skip to content

Commit 46408b4

Browse files
authored
feat: added changes for cadenceRelease support, docs, and bug fixes (#676)
1 parent b074d45 commit 46408b4

File tree

10 files changed

+163
-109
lines changed

10 files changed

+163
-109
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ This project contains Ansible code that creates a baseline cluster in an existin
6161
- Manage SAS Viya Platform Deployments
6262
- Organize and persist configuration for any number of SAS Viya platform deployments across namespaces, clusters, or cloud providers.
6363

64-
- SAS Viya with SingleStore Deployment
65-
- SingleStore is a cloud-native database designed for data-intensive applications. See the [SAS Viya with SingleStore Documentation](./docs/user/SingleStore.md) for details.
64+
- SAS SpeedyStore Deployment
65+
- SingleStore is a cloud-native database designed for data-intensive applications. See the [SAS SpeedyStore Documentation](./docs/user/SingleStore.md) for details.
6666

6767
## Prerequisites
6868

docs/CONFIG-VARS.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ When V4_CFG_MANAGE_STORAGE is set to `true`, the `sas` and `pg-storage` storage
145145
| V4_CFG_ORDER_NUMBER | SAS software order ID | string | | true | | viya |
146146
| V4_CFG_CADENCE_NAME | Cadence name | string | lts | false | [stable,lts] | viya |
147147
| V4_CFG_CADENCE_VERSION | Cadence version | string | "2022.09" | true | This value must be surrounded by quotation marks to accommodate the updated SAS Cadence Version format. If the value is not quoted the deployment will fail. | viya |
148+
| V4_CFG_CADENCE_RELEASE | Cadence release | string | | false | This value accepts a custom SAS Cadence release. It must be provided as a string enclosed in single quotes. (e.g. '20250909.1757454425315') | viya |
148149
| V4_CFG_DEPLOYMENT_ASSETS | Path to pre-downloaded deployment assets | string | | false | Leave blank to download [deployment assets](https://documentation.sas.com/?cdcId=sasadmincdc&cdcVersion=default&docsetId=itopscon&docsetTarget=n08bpieatgmfd8n192cnnbqc7m5c.htm#n1x7yoeafv23xan1gew0gfipt9e9) | viya |
149150
| V4_CFG_LICENSE | Path to pre-downloaded license file | string | | false| Leave blank to download the [license file](https://documentation.sas.com/?cdcId=sasadmincdc&cdcVersion=default&docsetId=itopscon&docsetTarget=n08bpieatgmfd8n192cnnbqc7m5c.htm#p1odbfo85cz4r5n1j2tzx9zz9sbi) | viya |
150151
| V4_CFG_CERTS | Path to pre-downloaded certificates file | string | | false| Leave blank to download the [certificates file](https://documentation.sas.com/?cdcId=sasadmincdc&cdcVersion=default&docsetId=itopscon&docsetTarget=n08bpieatgmfd8n192cnnbqc7m5c.htm#n0pj0ewyle0gfkn1psri3kw5ghha) | viya |
@@ -373,7 +374,7 @@ The EBS CSI driver is only used for kubernetes v1.23 or later AWS EKS clusters.
373374
| EBS_CSI_DRIVER_CHART_NAME| aws ebs csi driver helm chart name | string | aws-ebs-csi-driver | false | | baseline |
374375
| EBS_CSI_DRIVER_CHART_VERSION | aws ebs csi driver helm chart version | string | 2.38.1 | false | | baseline |
375376
| EBS_CSI_DRIVER_CONFIG | aws ebs csi driver helm values | string | see [here](../roles/baseline/defaults/main.yml) | false | | baseline |
376-
| EBS_CSI_DRIVER_ACCOUNT | cluster autoscaler aws role arn | string | | false | Required to enable the aws ebs csi driver on AWS | baseline |
377+
| EBS_CSI_DRIVER_ACCOUNT | aws ebs csi driver IAM role ARN | string | | false | Required to enable the aws ebs csi driver on AWS | baseline |
377378
| EBS_CSI_DRIVER_LOCATION | aws region where kubernetes cluster resides | string | us-east-1 | false | | baseline |
378379
|EBS_CSI_RABBITMQ_STORAGE_CLASS_NAME| The EBS CSI storage class name for RabbitMQ | string | io2-vol-mq | false | | baseline |
379380
|EBS_CSI_RABBITMQ_STORAGE_CLASS_VOLUME_TYPE| The EBS CSI volume type to use for RabbitMQ persistent volumes| string | io2 | false | Supported values: [`io2`, `io1`, `gp3`] | baseline |

docs/user/MigrationSteps-v9.md

Lines changed: 0 additions & 86 deletions
This file was deleted.
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
2+
# Migration Guide: v9.0.0
3+
4+
This guide assumes you are migrating a viya4-deployment (e.g., `v8.2.1`) to a newer version (e.g., `v9.0.0`) using the latest viya4-deployment baseline that includes the `csi-driver-nfs`.
5+
6+
## Prerequisites
7+
8+
- Ensure you have **cluster admin access**.
9+
- The **NFS server** used in the existing setup must be retained and accessible.
10+
- All **PVs and PVCs** should be backed up as a precaution.
11+
12+
## Migration Steps
13+
14+
### Backup Existing Environment (Manual Execution)
15+
16+
Trigger a manual backup of your running viya4-deployment:
17+
18+
```bash
19+
kubectl create job --from=cronjob/sas-scheduled-backup-all-sources manual-backup-$(date +%s) -n <viya4-namespace>
20+
````
21+
22+
Fatch the backup ID
23+
24+
```bash
25+
kubectl describe job <backup-job-name> -n va-viya | grep "sas.com/sas-backup-id"
26+
````
27+
28+
### Verify the backup job has completed successfully:
29+
30+
```bash
31+
kubectl get jobs \
32+
-L "sas.com/sas-backup-id,sas.com/backup-job-type,sas.com/sas-backup-job-status,sas.com/backup-persistence-status" -n viya_namespace_name
33+
```
34+
### Stop the viya4-deployment
35+
36+
Stop the SAS viya4 environment using the cron job:
37+
38+
```bash
39+
kubectl -n <viya4-namespace> create job --from=cronjob/sas-stop-all stopdep-<date +%s>
40+
```
41+
42+
**Example:**
43+
44+
```bash
45+
kubectl -n viya4 create job --from=cronjob/sas-stop-all stopdep-22072025
46+
```
47+
### Delete Old NFS Provisioner Components
48+
49+
Remove the `sas` StorageClass:
50+
For SAS viya4 environments deployed on Google Cloud Platform (GCP), the legacy `pg-storage` StorageClass must be deleted.
51+
52+
```bash
53+
kubectl delete storageclass sas
54+
```
55+
56+
Delete the namespace used by the legacy provisioner (typically `nfs-client`):
57+
58+
```bash
59+
kubectl delete namespace nfs-client
60+
```
61+
62+
### Deploy New viya4 Environment with CSI Driver
63+
64+
Update your DaC baseline to install the CSI NFS driver
65+
66+
To install/upgrade baseline dependencies only using "Docker"
67+
68+
```bash
69+
docker run --rm \
70+
--group-add root \
71+
--user $(id -u):$(id -g) \
72+
--volume $HOME/deployments:/data \
73+
--volume $HOME/deployments/dev-cluster/.kube/config:/config/kubeconfig \
74+
--volume $HOME/deployments/dev-cluster/dev-namespace/ansible-vars.yaml:/config/config \
75+
--volume $HOME/.ssh/id_rsa:/config/jump_svr_private_key \
76+
viya4-deployment --tags "baseline,install"
77+
```
78+
79+
To install/upgrade baseline dependencies only using "ansible"
80+
81+
```bash
82+
ansible-playbook \
83+
-e BASE_DIR=$HOME/deployments \
84+
-e KUBECONFIG=$HOME/deployments/.kube/config \
85+
-e CONFIG=$HOME/deployments/dev-cluster/dev-namespace/ansible-vars.yaml \
86+
-e JUMP_SVR_PRIVATE_KEY=$HOME/.ssh/id_rsa \
87+
playbooks/playbook.yaml --tags "baseline,install"
88+
```
89+
If you have redeployed **viya4-deployment** using the [9.0.0 release](https://github.com/sassoftware/viya4-deployment/releases/tag/v9.0.0), which includes CSI NFS driver support, no additional action is required.
90+
91+
However, if you have only updated the viya4-deployment baseline without redeploying viya4, you will need to manually start the viya4 environment using the following command:
92+
93+
```bash
94+
kubectl -n <viya4-namespace> create job --from=cronjob/sas-start-all startdep-<date +%s>
95+
```
96+
97+
> **Important Note:** You do **not** need to restore from backup, as the NFS server path to the PVs remains the same. The CSI driver will reuse existing PVs and directories automatically.
98+
99+
### Post-Migration Steps
100+
101+
* Confirm all PVCs are **bound and mounted correctly** in the new viya4-deployment.
102+
* Validate **data availability** and application functionality.
103+
104+
---
105+
106+
### Notes
107+
108+
* The **CSI NFS driver** offers improved compatibility with newer Kubernetes versions and is the **recommended** provisioner going forward.
109+
* Avoid reusing the old Helm release metadata (`meta.helm.sh/*`) to prevent installation or upgrade conflicts.
110+

docs/user/SingleStore.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,45 +2,45 @@
22

33
The SAS Viya platform provides an optional integration with SingleStore. SingleStore is a cloud-native database that is designed for data-intensive applications. A distributed, relational SQL database management system that features ANSI SQL support, SingleStore is known for speed in data ingest, transaction processing, and query processing.
44

5-
## Requirements for SAS with SingleStore
5+
## Requirements for SAS SpeedyStore
66

7-
If your SAS software order includes SAS with SingleStore, additional requirements apply to your deployment. The [_SAS Viya Platform Operations Guide_](https://documentation.sas.com/?cdcId=itopscdc&cdcVersion=default&docsetId=itopssr&docsetTarget=n0jq6u1duu7sqnn13cwzecyt475u.htm#n0qs42c42o8jjzn12ib4276fk7pb) provides detailed information about requirements for a SingleStore-enabled deployment of the SAS Viya platform.
7+
If your SAS software order includes SAS SpeedyStore, additional requirements apply to your deployment. The [_SAS Viya Platform Operations Guide_](https://documentation.sas.com/?cdcId=itopscdc&cdcVersion=default&docsetId=itopssr&docsetTarget=n0jq6u1duu7sqnn13cwzecyt475u.htm#n0qs42c42o8jjzn12ib4276fk7pb) provides detailed information about requirements for a SingleStore-enabled deployment of the SAS Viya platform.
88

9-
## Deploying SAS with SingleStore Using SAS Viya 4 Deployment
9+
## Deploying SAS SpeedyStore Using SAS Viya 4 Deployment
1010

11-
You can deploy SAS with SingleStore into a Kubernetes cluster in the following environments:
11+
You can deploy SAS SpeedyStore into a Kubernetes cluster in the following environments:
1212
- Azure Kubernetes Service (AKS) in Microsoft Azure
1313
- Elastic Kubernetes Service (EKS) in Amazon Web Services (AWS)
1414
- Open Source Kubernetes on your own machines
1515

16-
## Cluster Provisioning for SAS with SingleStore
16+
## Cluster Provisioning for SAS SpeedyStore
1717

1818
### Azure Kubernetes Service (AKS) Cluster in Microsoft Azure
1919

20-
The [SAS Viya 4 IaC for Microsoft Azure](https://github.com/sassoftware/viya4-iac-azure) GitHub project can automatically provision the required infrastructure components that support SAS with SingleStore deployments.
20+
The [SAS Viya 4 IaC for Microsoft Azure](https://github.com/sassoftware/viya4-iac-azure) GitHub project can automatically provision the required infrastructure components that support SAS SpeedyStore deployments.
2121
Refer to the [SingleStore sample input file](https://github.com/sassoftware/viya4-iac-azure/blob/main/examples/sample-input-singlestore.tfvars) for Terraform configuration values that create an AKS cluster that is suitable for deploying the SAS Viya platform and SingleStore.
2222

2323
### EKS Cluster in AWS
2424

25-
The [SAS Viya 4 IaC for AWS](https://github.com/sassoftware/viya4-iac-aws) GitHub project can automatically provision the required infrastructure components that support SAS with SingleStore deployments.
25+
The [SAS Viya 4 IaC for AWS](https://github.com/sassoftware/viya4-iac-aws) GitHub project can automatically provision the required infrastructure components that support SAS SpeedyStore deployments.
2626
Refer to the [SingleStore sample input file](https://github.com/sassoftware/viya4-iac-aws/blob/main/examples/sample-input-singlestore.tfvars) for Terraform configuration values that create an EKS cluster that is suitable for deploying the SAS Viya platform and SingleStore.
2727

2828
### Open Source Kubernetes Cluster
2929

30-
The [SAS Viya 4 Infrastructure as Code (IaC) for Open Source Kubernetes](https://github.com/sassoftware/viya4-iac-k8s) GitHub project can automatically provision the required infrastructure components that support SAS with SingleStore deployments.
30+
The [SAS Viya 4 Infrastructure as Code (IaC) for Open Source Kubernetes](https://github.com/sassoftware/viya4-iac-k8s) GitHub project can automatically provision the required infrastructure components that support SAS SpeedyStore deployments.
3131
Refer to the [SingleStore sample input file](https://github.com/sassoftware/viya4-iac-k8s/blob/main/examples/vsphere/sample-terraform-static-singlestore.tfvars) for Terraform configuration values that create an Open Source Kubernetes cluster that is suitable for deploying the SAS Viya platform and SingleStore.
3232

3333
## Customizing SingleStore Deployment Overlays
3434

3535
Choose the appropriate section below based on the cadence version of the SAS Viya platform and SingleStore that you are deploying.
3636

37-
### SAS Viya and SingleStore orders at stable:2023.10 and later
37+
### SAS SpeedyStore orders at stable:2023.10 and later
3838

3939
Refer to the viya4-deployment [Getting Started](https://github.com/sassoftware/viya4-deployment#getting-started) and [SAS Viya Platform Customizations](https://github.com/sassoftware/viya4-deployment#sas-viya-platform-customizations) documentation if you need information about how to make changes to your deployment by adding custom overlays into subdirectories under the `site-config` directory.
4040

4141
After running viya4-deployment with the setting `DEPLOY=false` in your ansible-vars.yaml file, locate the `sas-bases` directory, which is a peer to the `site-config` directory underneath your SAS Viya platform deployment's <base_dir>.
4242

43-
Complete each step under the "SingleStore Cluster Definition" heading in the "SAS SingleStore Cluster Operator" README file in order to configure your SAS with SingleStore deployment, noting the following exceptions. The README file is located at `$deploy/sas-bases/examples/sas-singlestore/README.md` (for Markdown format) or at `$deploy/sas-bases/docs/sas_singlestore_cluster_operator.htm` (for HTML format).
43+
Complete each step under the "SingleStore Cluster Definition" heading in the "SAS SingleStore Cluster Operator" README file in order to configure your SAS SpeedyStore deployment, noting the following exceptions. The README file is located at `$deploy/sas-bases/examples/sas-singlestore/README.md` (for Markdown format) or at `$deploy/sas-bases/docs/sas_singlestore_cluster_operator.htm` (for HTML format).
4444

4545
- Complete steps 1 and 2 in the "SAS SingleStore Cluster Operator" README file.
4646

@@ -80,15 +80,15 @@ Complete each step under the "SingleStore Cluster Definition" heading in the "SA
8080

8181
- Set `DEPLOY=true` in your ansible-vars.yaml file.
8282

83-
- Run viya4-deployment with the "viya, install" tags to deploy SAS with SingleStore into your cluster.
83+
- Run viya4-deployment with the "viya, install" tags to deploy SAS SpeedyStore into your cluster.
8484

85-
### SAS Viya and SingleStore orders at LTS:2023.03 and earlier
85+
### SAS SpeedyStore orders at LTS:2023.03 and earlier
8686

8787
Refer to the viya4-deployment [Getting Started](https://github.com/sassoftware/viya4-deployment#getting-started) and [SAS Viya Platform Customizations](https://github.com/sassoftware/viya4-deployment#sas-viya-platform-customizations) documentation if you need information about how to make changes to your deployment by adding custom overlays into subdirectories under the `/site-config` directory.
8888

8989
After running viya4-deployment with the setting `DEPLOY=false` in your ansible-vars.yaml file, locate the `sas-bases` directory, which is a peer to the `site-config` directory underneath your SAS Viya platform deployment's <base_dir>.
9090

91-
Complete each step under the "SingleStore Cluster Definition" heading in the "SAS SingleStore Cluster Operator" README file in order to configure your SAS with SingleStore deployment, noting the following exceptions. The README file is located at `$deploy/sas-bases/examples/sas-singlestore/README.md` (for Markdown format) or at `$deploy/sas-bases/docs/sas_singlestore_cluster_operator.htm` (for HTML format).
91+
Complete each step under the "SingleStore Cluster Definition" heading in the "SAS SingleStore Cluster Operator" README file in order to configure your SAS SpeedyStore deployment, noting the following exceptions. The README file is located at `$deploy/sas-bases/examples/sas-singlestore/README.md` (for Markdown format) or at `$deploy/sas-bases/docs/sas_singlestore_cluster_operator.htm` (for HTML format).
9292

9393
- Complete steps 1 and 2 in the `sas-bases/examples/sas-singlestore/README.md` file.
9494

@@ -102,4 +102,4 @@ Complete each step under the "SingleStore Cluster Definition" heading in the "SA
102102

103103
- Complete the remaining steps from the "SAS SingleStore Cluster Operator" README file. Then set `DEPLOY=true` in your ansible-vars.yaml file.
104104

105-
- Run viya4-deployment with the "viya, install" tags to deploy SAS with SingleStore into your cluster.
105+
- Run viya4-deployment with the "viya, install" tags to deploy SAS SpeedyStore into your cluster.

roles/baseline/defaults/main.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ V4_CFG_INGRESS_MODE: public
99
V4_CFG_MANAGE_STORAGE: true
1010
V4_CFG_AWS_LB_SUBNETS: ""
1111
STORAGE_TYPE_BACKEND: ""
12+
NETAPP_VOLUME_PATH: ""
1213

1314
## Cert-manager
1415
CERT_MANAGER_NAME: cert-manager
@@ -121,6 +122,7 @@ CSI_DRIVER_NFS_CHART_VERSION: 4.11.0
121122
CSI_DRIVER_NFS_CONFIG:
122123
driver:
123124
mountPermissions: "0777"
125+
fsGroupPolicy: ReadWriteOnceWithFSType
124126
storageClass:
125127
create: true
126128
name: sas
@@ -129,11 +131,12 @@ CSI_DRIVER_NFS_CONFIG:
129131
volumeBindingMode: Immediate
130132
parameters:
131133
server: "{{ V4_CFG_RWX_FILESTORE_ENDPOINT }}"
132-
share: "{{ '/ontap' if STORAGE_TYPE_BACKEND == 'ontap' else ('/pvs' if PROVIDER != 'azure' else (V4_CFG_RWX_FILESTORE_PATH | replace('/$', '') ~ '/pvs')) }}"
134+
share: "{{ '/ontap' if STORAGE_TYPE_BACKEND == 'ontap' else (V4_CFG_RWX_FILESTORE_PATH if (STORAGE_TYPE_BACKEND == 'netapp' and NETAPP_VOLUME_PATH | length > 0) else ('/pvs' if PROVIDER != 'azure' else (V4_CFG_RWX_FILESTORE_PATH | replace('/$', '') ~ '/pvs')) ) }}"
133135
subDir: ${pvc.metadata.namespace}/${pvc.metadata.name}/${pv.metadata.name}
134136
mountPermissions: "0777"
135137
mountOptions:
136-
- vers=4.1
138+
- "{{ 'vers=3' if (PROVIDER == 'gcp' and STORAGE_TYPE_BACKEND == 'netapp') else 'vers=4.1' }}"
139+
- nolock
137140
- noatime
138141
- nodiratime
139142
- rsize=262144

0 commit comments

Comments
 (0)