You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+12-12Lines changed: 12 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,8 @@
1
-
# SAS Viya 4 Infrastructure as Code (IaC) for Google Cloud Platform (GCP)
1
+
# SAS Viya 4 Infrastructure as Code (IaC) for Google Cloud
2
2
3
3
## Overview
4
4
5
-
This project contains Terraform scripts to provision Google GCP infrastructure resources required to deploy SAS Viya 4 platform products. Here is a list of resources this project can create -
5
+
This project contains Terraform scripts to provision Google Cloud infrastructure resources required to deploy SAS Viya 4 platform products. Here is a list of resources this project can create -
6
6
7
7
>- VPC Network and Network Firewalls
8
8
>- Managed Google Kubernetes Engine (GKE) cluster
@@ -13,14 +13,14 @@ This project contains Terraform scripts to provision Google GCP infrastructure r
Once the cloud resources are provisioned, see the [viya4-deployment](https://github.com/sassoftware/viya4-deployment)repo to deploy SAS Viya 4 platform products. If you need more information on the SAS Viya 4 platform products refer to the official [SAS® Viya® platform Operations](https://documentation.sas.com/?cdcId=itopscdc&cdcVersion=default&docsetId=itopswlcm&docsetTarget=home.htm) documentation for more details.
16
+
Once the cloud resources are provisioned, see the [viya4-deployment](https://github.com/sassoftware/viya4-deployment)repository to deploy SAS Viya 4 platform products. If you need more information on the SAS Viya 4 platform products refer to the official [SAS® Viya® platform Operations](https://documentation.sas.com/?cdcId=itopscdc&cdcVersion=default&docsetId=itopswlcm&docsetTarget=home.htm) documentation for more details.
### Authenticating Terraform to access Google Cloud
57
57
58
-
See [Terraform GCP Authentication](./docs/user/TerraformGCPAuthentication.md) for details.
58
+
See [Terraform Google Cloud Authentication](./docs/user/TerraformGCPAuthentication.md) for details.
59
59
60
60
### Customize Input Values
61
61
62
62
Create a file named `terraform.tfvars` to customize any input variable value documented in the [CONFIG-VARS.md](docs/CONFIG-VARS.md) file. For starters, you can copy one of the provided example variable definition files in `./examples` folder. For more details on the variables declared refer to the [CONFIG-VARS.md](docs/CONFIG-VARS.md) file.
63
63
64
-
**NOTE:** You will need to update the `cidr_blocks` in the [variables.tf](variables.tf) file to allow traffic from your current network. Without these rules, access to the cluster will only be allowed via the GCP Console.
64
+
**NOTE:** You will need to update the `cidr_blocks` in the [variables.tf](variables.tf) file to allow traffic from your current network. Without these rules, access to the cluster will only be allowed via the Google Cloud Console.
65
65
66
66
When using a variable definition file other than `terraform.tfvars`, see [Advanced Terraform Usage](docs/user/AdvancedTerraformUsage.md) for additional command options.
67
67
68
68
## Creating and Managing the Cloud Resources
69
69
70
-
Create and manage the GCP cloud resources by either
70
+
Create and manage the Google Cloud resources by either
71
71
72
72
- using [Terraform](docs/user/TerraformUsage.md) directly on your workstation, or
73
73
- using a [Docker container](docs/user/DockerUsage.md).
@@ -87,11 +87,11 @@ See [troubleshooting](./docs/Troubleshooting.md) page.
87
87
88
88
## Additional Resources
89
89
90
-
### GCP
90
+
### Google Cloud
91
91
92
92
- Google Cloud CLI - https://cloud.google.com/sdk/gcloud
93
-
- Terraform on GCP - https://cloud.google.com/docs/terraform
94
-
- Terraform and GCP Service Accounts - https://medium.com/@gmusumeci/how-to-create-a-service-account-for-terraform-in-gcp-google-cloud-platform-f75a0cf918d1
93
+
- Terraform on Google Cloud - https://cloud.google.com/docs/terraform
94
+
- Terraform and Google Cloud Service Accounts - https://medium.com/@gmusumeci/how-to-create-a-service-account-for-terraform-in-gcp-google-cloud-platform-f75a0cf918d1
@@ -31,21 +31,21 @@ Terraform input variables can be set in the following ways:
31
31
32
32
| Name | Description | Type | Default | Notes |
33
33
| :--- | :--- | :--- | :--- | :--- |
34
-
| prefix | A prefix used in the name of all the GCP resources created by this script. | string || The prefix string must start with a lowercase letter and contain only lowercase alphanumeric characters and dashes (-), but cannot end with a dash. |
35
-
| location | The GCP Region (for example "us-east1") or GCP Zone (for example "us-east1-b") to provision all resources in this script. | string || See [this topic](user/Locations.md) on how to chose a region or a zone. |
36
-
| project | The ID of the GCP Project to use | string |||
34
+
| prefix | A prefix used in the name of all the Google Cloud resources created by this script. | string || The prefix string must start with a lowercase letter and contain only lowercase alphanumeric characters and dashes (-), but cannot end with a dash. |
35
+
| location | The Google Cloud Region (for example "us-east1") or Google Cloud Zone (for example "us-east1-b") to provision all resources in this script. | string || See [this topic](user/Locations.md) on how to chose a region or a zone. |
36
+
| project | The ID of the Google Cloud Project to use | string |||
37
37
| service_account_keyfile | Filename of the Service Account JSON file | string | Not required when running on a Google Cloud VM that is associated with the Service Account |
38
38
39
-
## GCP Authentication
39
+
## Google Cloud Authentication
40
40
41
-
The Terraform process manages GCP resources on your behalf. In order to do so, it needs to know the credentials for a GCP identity with the required permissions.
41
+
The Terraform process manages Google Cloud resources on your behalf. In order to do so, it needs to know the credentials for a Google Cloud identity with the required permissions.
42
42
43
-
For more detailed information on what is needed see [Authenticating Terraform to access GCP](https://github.com/sassoftware/viya4-iac-gcp/blob/main/docs/user/TerraformGCPAuthentication.md)
43
+
For more detailed information on what is needed see [Authenticating Terraform to access Google Cloud](https://github.com/sassoftware/viya4-iac-gcp/blob/main/docs/user/TerraformGCPAuthentication.md)
44
44
45
45
## Admin Access
46
46
47
-
By default, the API of the GCP resources that are being created are only accessible through authenticated GCP clients (e.g. the Google Cloud Portal, the `gcloud` CLI, the Google Cloud Shell, etc.)
48
-
To allow access for other administrative client applications (for example `kubectl`, `psql`, etc.), you need to open up the GCP firewall to allow access from your source IPs.
47
+
By default, the API of the Google Cloud resources that are being created are only accessible through authenticated Google Cloud clients (e.g. the Google Cloud Portal, the `gcloud` CLI, the Google Cloud Shell, etc.)
48
+
To allow access for other administrative client applications (for example `kubectl`, `psql`, etc.), you need to open up the Google Cloud firewall to allow access from your source IPs.
49
49
50
50
To do set these permissions as part of this Terraform script, specify ranges of IP addresses in [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). Contact your Network Administrator to find the public CIDR range of your network.
51
51
@@ -94,11 +94,11 @@ subnet_names = {
94
94
}
95
95
```
96
96
97
-
Note: The subnets for filestore and database can not the pre-created. GCP creates the subnets as part of the services.
97
+
Note: The subnets for filestore and database can not the pre-created. Google Cloud creates the subnets as part of the services.
98
98
99
99
## General
100
100
101
-
The application of a Kubernetes version in GCP has some limitations when assigning channels and versions to the cluster. The doc outlining on these limitations can be found in the [Kubernetes Versions](user/KubernetesVersions.md) guide.
101
+
The application of a Kubernetes version in Google Cloud has some limitations when assigning channels and versions to the cluster. The documentation that describes these limitations can be found in the [Kubernetes Versions](user/KubernetesVersions.md) guide.
102
102
103
103
| Name | Description | Type | Default | Notes |
104
104
| :--- | ---: | ---: | ---: | ---: |
@@ -114,7 +114,7 @@ The application of a Kubernetes version in GCP has some limitations when assigni
114
114
| create_jump_public_ip | Add public ip to jump VM | bool | true ||
115
115
| jump_vm_admin | OS Admin User for the Jump VM | string | "jumpuser" ||
116
116
| jump_rwx_filestore_path | File store mount point on Jump server | string | "/viya-share" ||
117
-
| tags | Map of common tags to be placed on all GCP resources created by this script | map | {} ||
117
+
| tags | Map of common tags to be placed on all Google Cloud resources created by this script | map | {} ||
118
118
| ssh_public_key | File name of public ssh key for jump and nfs VM | string | null | Required with `create_jump_vm=true` or `storage_type=standard`|
119
119
| cluster_api_mode | Public or private IP for the cluster api| string|"public"|Valid Values: "public", "private" |
### Service Account Keyfile for GCP Authentication
34
+
### Service Account Keyfile for Google Cloud Authentication
35
35
36
-
Prepare a file with GCP authentication info, as described in [Authenticating Terraform to access GCP](./TerraformGCPAuthentication.md) and store it outside of this repo in a secure file, for example `$HOME/.viya4-tf-gcp-service-account.json`.
36
+
Prepare a file with Google Cloud authentication information, as described in [Authenticating Terraform to access Google Cloud](./TerraformGCPAuthentication.md) and store it outside of this repository in a secure file, for example `$HOME/.viya4-tf-gcp-service-account.json`.
37
37
38
38
### Docker Volume Mounts
39
39
40
40
Add volume mounts to the `docker run` command for all files and directories that must be accessible from inside the container.
41
-
-`--volume=$HOME/.viya4-tf-gcp-service-account.json:/.viya4-tf-gcp-service-account.json` Service Account Key file for GCP authentication
41
+
-`--volume=$HOME/.viya4-tf-gcp-service-account.json:/.viya4-tf-gcp-service-account.json` Service Account Key file for Google Cloud authentication
42
42
-`--volume=$HOME/.ssh:/.ssh` for [`ssh_public_key`](../CONFIG-VARS.md#required-variables) variable in the `terraform.tfvars` file
43
43
-`--volume=$(pwd):/workspace` for local directory where `terraform.tfvars` file resides and where `terraform.tfstate` file will be written. To grant Docker, permission to write to the local directory use [`--user` option](https://docs.docker.com/engine/reference/run/#user)
Copy file name to clipboardExpand all lines: docs/user/Locations.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
## Resource Locations
2
2
3
-
Google Cloud Platform resources are hosted in different data centers worldwide, divided into [Regions and Zones](https://cloud.google.com/compute/docs/regions-zones).
3
+
Google Cloud resources are hosted in different data centers worldwide, divided into [Regions and Zones](https://cloud.google.com/compute/docs/regions-zones).
4
4
5
5
You control the location of your Viya4 IAC resources by setting the `location` variable to either a Region or a Zone.
Copy file name to clipboardExpand all lines: docs/user/TerraformGCPAuthentication.md
+11-11Lines changed: 11 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,9 +1,9 @@
1
-
# Authenticating Terraform to access GCP
1
+
# Authenticating Terraform to access Google Cloud
2
2
3
-
Terraform creates and destroys resources in the Google Cloud Platform on your behalf.
4
-
In order to do so, it needs to authenticate itself to GCP with the appropriate permissions.
3
+
Terraform creates and destroys resources in Google Cloud on your behalf.
4
+
In order to do so, it needs to authenticate itself to Google Cloud with the appropriate permissions.
5
5
6
-
This project uses a GCP Service Account to authenticate with GCP. You will need a Service Account with the appropriate permissions. You can use an existing Service Account, or preferably create a dedicated Service Account.
6
+
This project uses a Google Cloud Service Account to authenticate with Google Cloud. You will need a Service Account with the appropriate permissions. You can use an existing Service Account, or preferably create a dedicated Service Account.
7
7
8
8
## Running Terraform outside Google Cloud
9
9
@@ -14,9 +14,9 @@ If you are running terraform outside of Google Cloud, generate a service account
14
14
If you are running terraform on a VM in Google Cloud, you can [configure that VM instance to use your Service Account](https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-instances#using). This will allow Terraform to authenticate to Google Cloud without having to bake in a separate credential/authentication file. Ensure that the scope of the VM is set to or includes https://www.googleapis.com/auth/cloud-platform.
15
15
16
16
17
-
## Create a GCP Service Account
17
+
## Create a Google Cloud Service Account
18
18
19
-
How to create a GCP Service Account: https://cloud.google.com/iam/docs/creating-managing-service-accounts
19
+
How to create a Google Cloud Service Account: https://cloud.google.com/iam/docs/creating-managing-service-accounts
20
20
21
21
gcloud CLI Example:
22
22
@@ -44,7 +44,7 @@ The Service Account will need the following [IAM roles](https://cloud.google.com
44
44
|`roles/iam.serviceAccountUser`| Service Account User | Terraform Kubernetes Engine Module |
45
45
|`roles/resourcemanager.projectIamAdmin`| Project IAM Admin | Terraform Kubernetes Engine Module |
46
46
47
-
How to modify IAM access to GCP resources: https://cloud.google.com/iam/docs/granting-changing-revoking-access
47
+
How to modify IAM access to Google Cloud resources: https://cloud.google.com/iam/docs/granting-changing-revoking-access
When running terraform on a workstation outside of the Google Cloud Platform, you persist the Service Account information to a JSON file, and then [specify that file when running terraform](#Terraform-project-variables-to-authenticate-with-GCP).
99
+
When running terraform on a workstation outside of Google Cloud, you store the Service Account information in a JSON file, and then [specify that file when running terraform](#Terraform-project-variables-to-authenticate-with-GCP).
100
100
101
101
Managing key files using the Cloud Console: https://console.cloud.google.com/apis/credentials/serviceaccountkey
## Terraform project variables to authenticate with GCP
113
+
## Terraform project variables to authenticate with Google Cloud
114
114
115
115
As part of your [Terraform input variables](../../README.md#customize-input-values), set these values:
116
116
117
117
| Name | Description |
118
118
| :--- | :--- |
119
-
| project | The GCP Project to use |
120
-
| service_account_keyfile | Filename of the Service Account JSON file. Alternatively, you can set the `GOOGLE_APPLICATION_CREDENTIAL` environment variable. Note that you do not need to set this variable when running on a GCP VM that is associated with the Service Account. |
119
+
| project | The Google Cloud Project to use |
120
+
| service_account_keyfile | Filename of the Service Account JSON file. Alternatively, you can set the `GOOGLE_APPLICATION_CREDENTIAL` environment variable. Note that you do not need to set this variable when running on a Google Cloud VM that is associated with the Service Account. |
0 commit comments