From c3ea452bdef753a23420802dff395baa6505ad6e Mon Sep 17 00:00:00 2001 From: "Thomas S. Pangborn" Date: Wed, 30 Apr 2025 13:58:11 -0400 Subject: [PATCH 1/5] feat: formatting, added scheduling for ng, misc poc changes --- public/.github/ISSUE_TEMPLATE/config.yml | 1 + .../ISSUE_TEMPLATE/issue--bug-report.yml | 77 ++ .../ISSUE_TEMPLATE/issue--feature-request.yml | 44 + public/.github/dependabot.yml | 30 + public/.github/release-drafter.yml | 58 ++ .../workflows/container-structure-test.yml | 21 + .../workflows/conventional-commits.yml | 19 + .../workflows/default_plan_unit_tests.yml | 29 + public/.github/workflows/draft-release.yml | 23 + public/.github/workflows/linter-analysis.yaml | 79 ++ public/.github/workflows/semvar.yml | 20 + public/.github/workflows/stale-updater.yaml | 15 + public/.gitignore | 50 ++ public/.pre-commit-config.yaml | 11 + public/.pre-commit-config_template.yaml | 30 + public/CODE_OF_CONDUCT.md | 128 +++ public/CONTRIBUTING.md | 27 + public/ContributorAgreement.txt | 56 ++ public/Dockerfile | 33 + public/Dockerfile.terratest | 23 + public/LICENSE | 201 +++++ public/README.md | 147 ++++ public/container-structure-test.yaml | 31 + public/docker-entrypoint.sh | 12 + public/docs/CONFIG-VARS.md | 442 ++++++++++ public/docs/Troubleshooting.md | 16 + public/docs/images/viya4-iac-aws-diag.png | Bin 0 -> 265887 bytes public/docs/sas-updates.md | 28 + public/docs/user/AdvancedTerraformUsage.md | 49 ++ public/docs/user/BYOnetwork.md | 63 ++ public/docs/user/DockerUsage.md | 156 ++++ public/docs/user/Kubeconfig.md | 33 + .../docs/user/TerraformAWSAuthentication.md | 56 ++ public/docs/user/TerraformUsage.md | 90 ++ public/docs/user/TerratestDockerUsage.md | 102 +++ public/docs/user/TestingPhilosophy.md | 81 ++ public/examples/sample-input-byo.tfvars | 125 +++ public/examples/sample-input-connect.tfvars | 131 +++ .../examples/sample-input-custom-data.tfvars | 113 +++ public/examples/sample-input-defaults.tfvars | 20 + public/examples/sample-input-gpu.tfvars | 130 +++ public/examples/sample-input-ha.tfvars | 113 +++ public/examples/sample-input-minimal.tfvars | 88 ++ .../examples/sample-input-singlestore.tfvars | 130 +++ public/examples/sample-input.tfvars | 113 +++ public/files/cloud-init/jump/cloud-config | 44 + public/files/cloud-init/nfs/cloud-config | 67 ++ .../files/custom-data/additional_userdata.sh | 79 ++ .../files/policies/devops-iac-eks-policy.json | 165 ++++ public/files/tools/iac_git_info.sh | 13 + public/files/tools/iac_tooling_version.sh | 35 + public/linting-configs/.hadolint.yaml | 9 + public/linting-configs/.shellcheckrc | 11 + public/linting-configs/.tflint.hcl | 105 +++ public/locals.tf | 196 +++++ public/main.tf | 345 ++++++++ public/modules/aws_autoscaling/main.tf | 78 ++ public/modules/aws_autoscaling/outputs.tf | 7 + public/modules/aws_autoscaling/variables.tf | 26 + public/modules/aws_ebs_csi/main.tf | 181 ++++ public/modules/aws_ebs_csi/outputs.tf | 7 + public/modules/aws_ebs_csi/variables.tf | 26 + public/modules/aws_fsx_ontap/main.tf | 89 ++ public/modules/aws_fsx_ontap/outputs.tf | 2 + public/modules/aws_fsx_ontap/variables.tf | 32 + public/modules/aws_vm/main.tf | 134 +++ public/modules/aws_vm/outputs.tf | 27 + public/modules/aws_vm/variables.tf | 120 +++ public/modules/aws_vpc/main.tf | 345 ++++++++ public/modules/aws_vpc/outputs.tf | 81 ++ public/modules/aws_vpc/variables.tf | 166 ++++ public/modules/kubeconfig/main.tf | 101 +++ public/modules/kubeconfig/outputs.tf | 7 + .../templates/kubeconfig-provider.tmpl | 29 + .../kubeconfig/templates/kubeconfig-sa.tmpl | 20 + public/modules/kubeconfig/variables.tf | 50 ++ public/outputs.tf | 245 ++++++ public/security.tf | 224 +++++ public/test/default_unit_test.go | 122 +++ public/test/go.mod | 132 +++ public/test/go.sum | 345 ++++++++ public/test/helpers.go | 171 ++++ public/test/non_default_unit_test.go | 78 ++ public/test/terratest_docker_entrypoint.sh | 79 ++ public/test/validation/validation.go | 89 ++ public/variables.tf | 787 ++++++++++++++++++ public/versions.tf | 40 + public/vms.tf | 181 ++++ 88 files changed, 8334 insertions(+) create mode 100644 public/.github/ISSUE_TEMPLATE/config.yml create mode 100644 public/.github/ISSUE_TEMPLATE/issue--bug-report.yml create mode 100644 public/.github/ISSUE_TEMPLATE/issue--feature-request.yml create mode 100644 public/.github/dependabot.yml create mode 100644 public/.github/release-drafter.yml create mode 100644 public/.github/workflows/container-structure-test.yml create mode 100644 public/.github/workflows/conventional-commits.yml create mode 100644 public/.github/workflows/default_plan_unit_tests.yml create mode 100644 public/.github/workflows/draft-release.yml create mode 100644 public/.github/workflows/linter-analysis.yaml create mode 100644 public/.github/workflows/semvar.yml create mode 100644 public/.github/workflows/stale-updater.yaml create mode 100644 public/.gitignore create mode 100644 public/.pre-commit-config.yaml create mode 100644 public/.pre-commit-config_template.yaml create mode 100644 public/CODE_OF_CONDUCT.md create mode 100644 public/CONTRIBUTING.md create mode 100644 public/ContributorAgreement.txt create mode 100644 public/Dockerfile create mode 100644 public/Dockerfile.terratest create mode 100644 public/LICENSE create mode 100644 public/README.md create mode 100644 public/container-structure-test.yaml create mode 100644 public/docker-entrypoint.sh create mode 100644 public/docs/CONFIG-VARS.md create mode 100644 public/docs/Troubleshooting.md create mode 100644 public/docs/images/viya4-iac-aws-diag.png create mode 100644 public/docs/sas-updates.md create mode 100644 public/docs/user/AdvancedTerraformUsage.md create mode 100644 public/docs/user/BYOnetwork.md create mode 100644 public/docs/user/DockerUsage.md create mode 100644 public/docs/user/Kubeconfig.md create mode 100644 public/docs/user/TerraformAWSAuthentication.md create mode 100644 public/docs/user/TerraformUsage.md create mode 100644 public/docs/user/TerratestDockerUsage.md create mode 100644 public/docs/user/TestingPhilosophy.md create mode 100644 public/examples/sample-input-byo.tfvars create mode 100644 public/examples/sample-input-connect.tfvars create mode 100644 public/examples/sample-input-custom-data.tfvars create mode 100644 public/examples/sample-input-defaults.tfvars create mode 100644 public/examples/sample-input-gpu.tfvars create mode 100644 public/examples/sample-input-ha.tfvars create mode 100644 public/examples/sample-input-minimal.tfvars create mode 100644 public/examples/sample-input-singlestore.tfvars create mode 100644 public/examples/sample-input.tfvars create mode 100755 public/files/cloud-init/jump/cloud-config create mode 100644 public/files/cloud-init/nfs/cloud-config create mode 100644 public/files/custom-data/additional_userdata.sh create mode 100644 public/files/policies/devops-iac-eks-policy.json create mode 100755 public/files/tools/iac_git_info.sh create mode 100755 public/files/tools/iac_tooling_version.sh create mode 100644 public/linting-configs/.hadolint.yaml create mode 100644 public/linting-configs/.shellcheckrc create mode 100644 public/linting-configs/.tflint.hcl create mode 100755 public/locals.tf create mode 100755 public/main.tf create mode 100644 public/modules/aws_autoscaling/main.tf create mode 100644 public/modules/aws_autoscaling/outputs.tf create mode 100644 public/modules/aws_autoscaling/variables.tf create mode 100644 public/modules/aws_ebs_csi/main.tf create mode 100644 public/modules/aws_ebs_csi/outputs.tf create mode 100644 public/modules/aws_ebs_csi/variables.tf create mode 100644 public/modules/aws_fsx_ontap/main.tf create mode 100644 public/modules/aws_fsx_ontap/outputs.tf create mode 100644 public/modules/aws_fsx_ontap/variables.tf create mode 100644 public/modules/aws_vm/main.tf create mode 100644 public/modules/aws_vm/outputs.tf create mode 100644 public/modules/aws_vm/variables.tf create mode 100644 public/modules/aws_vpc/main.tf create mode 100644 public/modules/aws_vpc/outputs.tf create mode 100644 public/modules/aws_vpc/variables.tf create mode 100644 public/modules/kubeconfig/main.tf create mode 100644 public/modules/kubeconfig/outputs.tf create mode 100644 public/modules/kubeconfig/templates/kubeconfig-provider.tmpl create mode 100644 public/modules/kubeconfig/templates/kubeconfig-sa.tmpl create mode 100644 public/modules/kubeconfig/variables.tf create mode 100755 public/outputs.tf create mode 100644 public/security.tf create mode 100644 public/test/default_unit_test.go create mode 100644 public/test/go.mod create mode 100644 public/test/go.sum create mode 100644 public/test/helpers.go create mode 100644 public/test/non_default_unit_test.go create mode 100755 public/test/terratest_docker_entrypoint.sh create mode 100644 public/test/validation/validation.go create mode 100644 public/variables.tf create mode 100644 public/versions.tf create mode 100644 public/vms.tf diff --git a/public/.github/ISSUE_TEMPLATE/config.yml b/public/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..3ba13e0c --- /dev/null +++ b/public/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: false diff --git a/public/.github/ISSUE_TEMPLATE/issue--bug-report.yml b/public/.github/ISSUE_TEMPLATE/issue--bug-report.yml new file mode 100644 index 00000000..63891c46 --- /dev/null +++ b/public/.github/ISSUE_TEMPLATE/issue--bug-report.yml @@ -0,0 +1,77 @@ +name: Bug report +description: | + Welcome, Thanks for opening an issue. The more information you provide, the easier it is for us to assess the problem, prioritize, assign, develop, then release a fix. The SAS Viya 4 IaC team. +labels: [bug, new] +body: + - type: textarea + id: tf_version + attributes: + label: Terraform Version Details + description: | + We ask this to be sure you are currently running a supported terraform version from your work environment. + + Run `./files/tools/iac_tooling_version.sh` to show the version + + If you are not running the latest version of Terraform we support, please try upgrading because your issue may have already been fixed. + + If you're not sure which versions are supported, here's a link : https://github.com/sassoftware/viya4-iac-aws#terraform to help. + validations: + required: false + - type: textarea + id: tf_vars + attributes: + label: Terraform Variable File Details + description: | + Paste the relevant parts of your Terraform variables here. + + The relevant parts should come from your `terraform.tfvars` file or equivalent and small snippets of the `*.tf` file/files that seem to be causing the error. + + security reasons, do not copy and paste any sensitive information in this issue, like account information and passwords etc. + validations: + required: false + - type: textarea + id: tf_steps_to_reproduce + attributes: + label: Steps to Reproduce + description: Please list the full steps required to reproduce the issue + validations: + required: true + - type: textarea + id: tf_expected_behavior + attributes: + label: Expected Behavior + description: What should have happened? + validations: + required: true + - type: textarea + id: tf_actual_behavior + attributes: + label: Actual Behavior + description: | + What actually happened? Here you can include output and information from your terraform run. + validations: + required: true + - type: textarea + id: tf_additional_context + attributes: + label: Additional Context + description: | + Is there anything atypical about your situation that we should know? For example: Are you passing any unusual command line options or environment variables to opt-in to non-default behavior? + validations: + required: false + - type: input + id: tf_references + attributes: + label: References + description: | + Are there any other GitHub issues (open or closed) or Pull Requests that should be linked here? + validations: + required: false + - type: checkboxes + id: tf_terms + attributes: + label: Code of Conduct + description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/sassoftware/viya4-iac-aws/blob/main/CODE_OF_CONDUCT.md) + options: + - label: I agree to follow this project's Code of Conduct + required: true diff --git a/public/.github/ISSUE_TEMPLATE/issue--feature-request.yml b/public/.github/ISSUE_TEMPLATE/issue--feature-request.yml new file mode 100644 index 00000000..7d0240e5 --- /dev/null +++ b/public/.github/ISSUE_TEMPLATE/issue--feature-request.yml @@ -0,0 +1,44 @@ +name: Feature Request +description: | + Welcome, Thanks for opening a feature request. The more information you provide, the easier it is for us to assess your request, prioritize, assign, develop, and release. The SAS Viya 4 IaC team. +labels: [enhancement, new] +body: + - type: textarea + id: problem + attributes: + label: Is your feature request related to a problem? Please describe. + description: | + A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + validations: + required: true + - type: textarea + id: solution + attributes: + label: Describe the solution you'd like + description: | + A clear and concise description of what you want to happen. + validations: + required: true + - type: textarea + id: alternatives + attributes: + label: Describe alternatives you've considered + description: | + A clear and concise description of any alternative solutions or features you've considered. + validations: + required: false + - type: textarea + id: additional + attributes: + label: Additional context + description: Add any other context or screenshots about the feature request here. + validations: + required: false + - type: checkboxes + id: tf_terms + attributes: + label: Code of Conduct + description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/sassoftware/viya4-iac-aws/blob/main/CODE_OF_CONDUCT.md) + options: + - label: I agree to follow this project's Code of Conduct + required: true diff --git a/public/.github/dependabot.yml b/public/.github/dependabot.yml new file mode 100644 index 00000000..0b87778d --- /dev/null +++ b/public/.github/dependabot.yml @@ -0,0 +1,30 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file + +version: 2 +updates: + # Terraform dependencies + - package-ecosystem: "terraform" + directory: "/" + schedule: + interval: "weekly" + target-branch: "staging" + open-pull-requests-limit: 2 + + # Docker dependencies + - package-ecosystem: "docker" + directory: "/" + schedule: + interval: "weekly" + target-branch: "staging" + open-pull-requests-limit: 2 + + # GitHub Actions + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + target-branch: "staging" + open-pull-requests-limit: 2 \ No newline at end of file diff --git a/public/.github/release-drafter.yml b/public/.github/release-drafter.yml new file mode 100644 index 00000000..2fa984c7 --- /dev/null +++ b/public/.github/release-drafter.yml @@ -0,0 +1,58 @@ +name-template: 'v$RESOLVED_VERSION - ' +tag-template: 'v$RESOLVED_VERSION' +categories: + - title: '⚠️ BREAKING CHANGES' + labels: + - 'breaking change' + - title: '🚀 Features' + labels: + - 'feature' + - 'enhancement' + - title: '🐛 Bug Fixes' + labels: + - 'bug' + - title: '📖 Documentation' + labels: + - 'documentation' + - title: '⏱️ Performance' + labels: + - 'performance' + - title: '🤖 Tests' + labels: + - 'test' + - title: '🔧 Maintenance' + labels: + - 'build' + - 'chore' + - 'CI/CD' + - 'refactor' + - 'revert' + - 'style' +change-template: '- $TITLE @$AUTHOR (#$NUMBER)' +change-title-escapes: '\<*_&' # You can add # and @ to disable mentions, and add ` to disable code blocks. +version-resolver: + major: + labels: + - 'breaking change' + minor: + labels: + - 'feature' + - 'enhancement' + patch: + labels: + - 'bug' + - 'CI/CD' + - 'documentation' + - 'test' + - 'performance' + - 'refactor' + - 'chore' + - 'revert' + - 'style' + default: patch +template: | + ## Changes + + $CHANGES + + **Full Changelog**: https://github.com/$OWNER/$REPOSITORY/compare/$PREVIOUS_TAG...v$RESOLVED_VERSION diff --git a/public/.github/workflows/container-structure-test.yml b/public/.github/workflows/container-structure-test.yml new file mode 100644 index 00000000..0587ec66 --- /dev/null +++ b/public/.github/workflows/container-structure-test.yml @@ -0,0 +1,21 @@ +name: Container Structure Test +on: + push: + branches: [ main ] + pull_request: + branches: [ main, staging ] + +jobs: + acceptance: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Build the Docker image + run: docker build . --file Dockerfile --tag sas-iac-aws:local + + - name: Container Structure Test Action + uses: plexsystems/container-structure-test-action@v0.3.0 + with: + image: sas-iac-aws:local + config: container-structure-test.yaml diff --git a/public/.github/workflows/conventional-commits.yml b/public/.github/workflows/conventional-commits.yml new file mode 100644 index 00000000..13d88b56 --- /dev/null +++ b/public/.github/workflows/conventional-commits.yml @@ -0,0 +1,19 @@ +name: PR Conventional Commit Validation + +on: + pull_request: + types: [opened, synchronize, reopened, edited] + branches: + - main + - staging + +jobs: + validate-pr-title: + runs-on: ubuntu-latest + steps: + # https://github.com/marketplace/actions/conventional-commit-in-pull-requests + - name: PR Conventional Commit Validation + uses: ytanikin/pr-conventional-commits@1.4.0 + with: + task_types: '["fix", "feat", "build", "chore", "ci", "docs", "style", "refactor", "perf", "test"]' + custom_labels: '{"feat": "enhancement", "fix": "bug", "docs": "documentation", "ci": "CI/CD", "perf": "performance"}' \ No newline at end of file diff --git a/public/.github/workflows/default_plan_unit_tests.yml b/public/.github/workflows/default_plan_unit_tests.yml new file mode 100644 index 00000000..6337d755 --- /dev/null +++ b/public/.github/workflows/default_plan_unit_tests.yml @@ -0,0 +1,29 @@ +# Copyright © 2025, SAS Institute Inc., Cary, NC, USA. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + +name: Default Plan Unit Tests +on: + push: + branches: ['**'] # '*' will cause the workflow to run on all commits to all branches. + +jobs: + go-tests: + name: Default Plan Unit Tests + runs-on: ubuntu-latest + environment: terraformSecrets + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + - name: Build Docker Image + run: docker build -t viya4-iac-aws:terratest -f Dockerfile.terratest . + - name: Run Tests + run: | + docker run \ + -e TF_VAR_aws_access_key_id=$TF_VAR_aws_access_key_id \ + -e TF_VAR_aws_secret_access_key=$TF_VAR_aws_secret_access_key \ + -v $(pwd):/viya4-iac-aws \ + viya4-iac-aws:terratest -v + env: + # TF ENVIRONMENT + TF_VAR_aws_access_key_id: "${{ secrets.TF_VAR_AWS_ACCESS_KEY_ID }}" + TF_VAR_aws_secret_access_key: "${{ secrets.TF_VAR_AWS_SECRET_ACCESS_KEY }}" diff --git a/public/.github/workflows/draft-release.yml b/public/.github/workflows/draft-release.yml new file mode 100644 index 00000000..feba2fc9 --- /dev/null +++ b/public/.github/workflows/draft-release.yml @@ -0,0 +1,23 @@ +name: Release Drafter + +on: + push: + branches: + - main + +permissions: + contents: read + +jobs: + update_release_draft: + permissions: + # write permission is required to create a github release + contents: write + runs-on: ubuntu-latest + steps: + # Drafts your next Release notes as Pull Requests are merged into "main" + - uses: release-drafter/release-drafter@v6 + with: + disable-autolabeler: true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/public/.github/workflows/linter-analysis.yaml b/public/.github/workflows/linter-analysis.yaml new file mode 100644 index 00000000..b4941ecc --- /dev/null +++ b/public/.github/workflows/linter-analysis.yaml @@ -0,0 +1,79 @@ +name: Linter Analysis + +on: + push: + branches: [ '**' ] # '**' will cause the workflow to run on all commits to all branches, including those with path separators + +jobs: + # Hadolint: Job-1 + Hadolint: + name: Hadolint + runs-on: ubuntu-latest + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + + - name: Run Hadolint Action + uses: jbergstroem/hadolint-gh-action@v1.12.2 + with: + dockerfile: ./Dockerfile + config_file: linting-configs/.hadolint.yaml + error_level: 1 # Fail CI based on hadolint output (-1: never, 0: error, 1: warning, 2: info) + + # ShellCheck: Job-2 + ShellCheck: + name: ShellCheck + runs-on: ubuntu-latest + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + + - name: Run ShellCheck Action + uses: ludeeus/action-shellcheck@master + with: + severity: error + ignore_names: additional_userdata.sh + + # TFLint: Job-3 + TFLint: + name: TFLint + runs-on: ubuntu-latest + steps: + - name: Checkout Repo + uses: actions/checkout@v4 + + - name: Cache Plugin Directory + uses: actions/cache@v4 + with: + path: ~/.tflint.d/plugins + key: ubuntu-latest-tflint-${{ hashFiles('.tflint.hcl') }} + + - name: Setup Terraform + uses: hashicorp/setup-terraform@v3 + with: + terraform_version: "^1.10.5" + terraform_wrapper: false + + - name: Setup TFLint + uses: terraform-linters/setup-tflint@v3.0.0 + with: + tflint_version: latest + github_token: ${{ secrets.LINTER_TEST_TOKEN }} + + # Necessary so we can recursively tflint our modules folder + # with the plugin, not needed for regular project use. + - name: Initializing modules + run: | + terraform init + terraform -chdir=modules/aws_autoscaling init + terraform -chdir=modules/aws_fsx_ontap init + terraform -chdir=modules/aws_ebs_csi init + terraform -chdir=modules/aws_vm init + terraform -chdir=modules/aws_vpc init + terraform -chdir=modules/kubeconfig init + + - name: Initializing TFLint + run: TFLINT_LOG=info tflint --recursive --init -c "$(pwd)/linting-configs/.tflint.hcl" + + - name: Run TFLint Action + run: TFLINT_LOG=info tflint -c "$(pwd)/linting-configs/.tflint.hcl" --recursive diff --git a/public/.github/workflows/semvar.yml b/public/.github/workflows/semvar.yml new file mode 100644 index 00000000..29c90a7e --- /dev/null +++ b/public/.github/workflows/semvar.yml @@ -0,0 +1,20 @@ +name: Update Semver +on: + push: + branches-ignore: + - '**' + tags: + - 'v*.*.*' +jobs: + update-semver: + # Update the tags based on semantic versioning. + # Also update the latest tag. + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: haya14busa/action-update-semver@v1 + - name: Create latest git tag + run: | + git tag latest + - name: Push latest git tag + run: git push -f origin latest \ No newline at end of file diff --git a/public/.github/workflows/stale-updater.yaml b/public/.github/workflows/stale-updater.yaml new file mode 100644 index 00000000..026a3b3c --- /dev/null +++ b/public/.github/workflows/stale-updater.yaml @@ -0,0 +1,15 @@ +name: 'Mark stale issues and PRs' +on: + schedule: + - cron: '30 1 * * *' + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v9.1.0 + with: + stale-issue-message: 'This issue is stale because it has been open 30 days with no activity.' + stale-pr-message: 'This PR is stale because it has been open 30 days with no activity.' + days-before-stale: 30 + days-before-close: -1 \ No newline at end of file diff --git a/public/.gitignore b/public/.gitignore new file mode 100644 index 00000000..c157df28 --- /dev/null +++ b/public/.gitignore @@ -0,0 +1,50 @@ +# Local .terraform directories +**/.terraform/* + +# Local IDE configurations +.vscode/* +.idea/* + +# .tfstate files +*.tfstate +*.tfstate.* + +# Crash log files +crash.log + +# Ignore any .tfvars files that are generated automatically for each Terraform run. Most +# .tfvars files are managed as part of configuration and so should be included in +# version control. +# +# example.tfvars + +# Ignore override files as they are usually used to override resources locally and so +# are not checked in +override.tf +override.tf.json +*_override.tf +*_override.tf.json + +# Include override files you do wish to add to version control using negated pattern +# +# !example_override.tf + +# Include tfplan files to ignore the plan output of command: terraform plan -out=tfplan +# example: *tfplan* + +# Ignore CLI configuration files +.terraformrc +terraform.rc +.terraform.lock.hcl + +# Terraform tfvars file +terraform.tfvars + +# Mac files +.DS_Store + +# Configuration files +*.conf + +# Testing output files +test/test_output/* diff --git a/public/.pre-commit-config.yaml b/public/.pre-commit-config.yaml new file mode 100644 index 00000000..f8a592f2 --- /dev/null +++ b/public/.pre-commit-config.yaml @@ -0,0 +1,11 @@ +--- +default_stages: [pre-commit] +repos: + - repo: https://github.com/gitleaks/gitleaks + rev: v8.23.3 + hooks: + - id: gitleaks + +ci: + autofix_prs: false + autoupdate_commit_msg: "chore: auto-update of pre-commit hooks" diff --git a/public/.pre-commit-config_template.yaml b/public/.pre-commit-config_template.yaml new file mode 100644 index 00000000..3d4304e0 --- /dev/null +++ b/public/.pre-commit-config_template.yaml @@ -0,0 +1,30 @@ +# See https://pre-commit.com for more information +# See https://pre-commit.com/hooks.html for more hooks +repos: +- repo: meta + hooks: + - id: check-hooks-apply +- repo: local + hooks: + - id: hadolint-docker-file-entrypoint + name: hadolint + entry: docker.io/hadolint/hadolint /bin/hadolint + language: docker_image + types: [dockerfile] + - id: shellcheck-docker-file-entrypoint + name: shellcheck + entry: docker.io/koalaman/shellcheck + language: docker_image + types: [shell] + - id: tflint-locally-installed + name: tflint + entry: tflint + language: system + types: [terraform] +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.4.0 + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + - id: check-added-large-files + - id: check-yaml diff --git a/public/CODE_OF_CONDUCT.md b/public/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..be39ade7 --- /dev/null +++ b/public/CODE_OF_CONDUCT.md @@ -0,0 +1,128 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +github@sas.com. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Community Impact Guidelines were inspired by [Mozilla's code of conduct +enforcement ladder](https://github.com/mozilla/diversity). + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see the FAQ at +https://www.contributor-covenant.org/faq. Translations are available at +https://www.contributor-covenant.org/translations. diff --git a/public/CONTRIBUTING.md b/public/CONTRIBUTING.md new file mode 100644 index 00000000..18cec1a7 --- /dev/null +++ b/public/CONTRIBUTING.md @@ -0,0 +1,27 @@ +# How to Contribute +This project is community-driven, and we'd love to accept your patches and contributions. +We just ask that you follow our contribution guidelines when you do. Refer +to the [Contributor Handbook](https://sassoftware.github.io/contributor-handbook.html) +for guidance. + +## Contributor License Agreement +Contributions to this project must be accompanied by a signed [Contributor Agreement](ContributorAgreement.txt). +You (or your employer) retain the copyright to your contribution; this agreement simply grants +us permission to use and redistribute your contributions as part of the project. + +## Code Reviews +All submissions to this project—including submissions from project members—require +review. Our review process typically involves performing unit tests, development +tests, integration tests, and security scans. + +## Pull Request Requirement +All contributions (PRs) must be accompanied by passing unit and/or integration +tests, following our [testing philosophy](./docs/user/TestingPhilosophy.md). If you are unfamiliar with this process, +we are happy to help you navigate it by providing continuous collaboration within the pull request. +All pull requests must also pass our linter analysis checks. Contributions might +be subjected to security scans before they can be accepted. + +## Security Scans +To ensure that all submissions meet our security and quality standards, we perform security +scans using internal SAS infrastructure. Reporting of any Common Vulnerabilities and Exposures +(CVEs) that are detected is not available in this project at this time. \ No newline at end of file diff --git a/public/ContributorAgreement.txt b/public/ContributorAgreement.txt new file mode 100644 index 00000000..b9aafabb --- /dev/null +++ b/public/ContributorAgreement.txt @@ -0,0 +1,56 @@ +Contributor Agreement + +Version 1.1 + +Contributions to this software are accepted only when they are +properly accompanied by a Contributor Agreement. The Contributor +Agreement for this software is the Developer's Certificate of Origin +1.1 (DCO) as provided with and required for accepting contributions +to the Linux kernel. + +In each contribution proposed to be included in this software, the +developer must include a "sign-off" that denotes consent to the +terms of the Developer's Certificate of Origin. The sign-off is +a line of text in the description that accompanies the change, +certifying that you have the right to provide the contribution +to be included. For changes provided in source code control (for +example, via a Git pull request) the sign-off must be included in +the commit message in source code control. For changes provided +in email or issue tracking, the sign-off must be included in the +email or the issue, and the sign-off will be incorporated into the +permanent commit message if the contribution is accepted into the +official source code. + +If you can certify the below: + + Developer's Certificate of Origin 1.1 + + By making a contribution to this project, I certify that: + + (a) The contribution was created in whole or in part by me and I + have the right to submit it under the open source license + indicated in the file; or + + (b) The contribution is based upon previous work that, to the best + of my knowledge, is covered under an appropriate open source + license and I have the right under that license to submit that + work with modifications, whether created in whole or in part + by me, under the same open source license (unless I am + permitted to submit under a different license), as indicated + in the file; or + + (c) The contribution was provided directly to me by some other + person who certified (a), (b) or (c) and I have not modified + it. + + (d) I understand and agree that this project and the contribution + are public and that a record of the contribution (including all + personal information I submit with it, including my sign-off) is + maintained indefinitely and may be redistributed consistent with + this project or the open source license(s) involved. + +then you just add a line saying + + Signed-off-by: Random J Developer + +using your real name (sorry, no pseudonyms or anonymous contributions.) diff --git a/public/Dockerfile b/public/Dockerfile new file mode 100644 index 00000000..358789c2 --- /dev/null +++ b/public/Dockerfile @@ -0,0 +1,33 @@ +ARG TERRAFORM_VERSION=1.10.5 +ARG AWS_CLI_VERSION=2.24.16 +FROM hashicorp/terraform:$TERRAFORM_VERSION AS terraform + +FROM almalinux:minimal AS amin +WORKDIR /app +USER root +ARG KUBECTL_VERSION=1.31.7 +ARG KUBECTL_CHECKSUM=80a3c83f00241cd402bc8688464e5e3eedd52a461ee41d882f19cf04ad6d0379 +RUN /usr/bin/bash -eux \ + && curl -fSLO https://dl.k8s.io/release/v${KUBECTL_VERSION}/bin/linux/amd64/kubectl \ + && chmod 755 ./kubectl \ + && sha256sum --check --strict <(echo ${KUBECTL_CHECKSUM} kubectl) + +FROM amazon/aws-cli:$AWS_CLI_VERSION + +WORKDIR /viya4-iac-aws + +COPY --from=amin /app/kubectl /usr/local/bin/kubectl +COPY --from=terraform /bin/terraform /bin/terraform +COPY . . + +RUN yum -y install git openssh jq which \ + && yum -y update openssl-libs glib2 vim-minimal vim-data curl \ + && yum clean all && rm -rf /var/cache/yum \ + && chmod 755 /viya4-iac-aws/docker-entrypoint.sh \ + && git config --system --add safe.directory /viya4-iac-aws \ + && terraform init \ + && chmod g=u -R /etc/passwd /etc/group /viya4-iac-aws + +ENV TF_VAR_iac_tooling=docker +ENTRYPOINT ["/viya4-iac-aws/docker-entrypoint.sh"] +VOLUME ["/workspace"] diff --git a/public/Dockerfile.terratest b/public/Dockerfile.terratest new file mode 100644 index 00000000..0b7dacd2 --- /dev/null +++ b/public/Dockerfile.terratest @@ -0,0 +1,23 @@ +FROM golang:1.24 + +# Install terraform from apt repository and terratest_log_parser +RUN \ + apt-get update \ + && apt-get install -y jq lsb-release \ + && wget -O - https://apt.releases.hashicorp.com/gpg \ + | gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg \ + && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" \ + | tee /etc/apt/sources.list.d/hashicorp.list \ + && apt update \ + && apt install terraform \ + && ssh-keygen -f ~/.ssh/id_rsa -P "" \ + && go install github.com/gruntwork-io/terratest/cmd/terratest_log_parser@latest + +WORKDIR /viya4-iac-aws/test + +# Copy the test directory so it can install the go modules +# during the docker build rather than the docker run +COPY ./test ./ +RUN go mod tidy + +ENTRYPOINT ["/viya4-iac-aws/test/terratest_docker_entrypoint.sh"] diff --git a/public/LICENSE b/public/LICENSE new file mode 100644 index 00000000..261eeb9e --- /dev/null +++ b/public/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/public/README.md b/public/README.md new file mode 100644 index 00000000..2f71ad95 --- /dev/null +++ b/public/README.md @@ -0,0 +1,147 @@ +# SAS Viya 4 Infrastructure as Code (IaC) for Amazon Web Services (AWS) + +## Table of Contents + +- [Overview](#overview) +- [Prerequisites](#prerequisites) + - [Technical Prerequisites](#technical-prerequisites) + - [Terraform Requirements](#terraform-requirements) + - [Docker Requirements](#docker-requirements) +- [Getting Started](#getting-started) + - [Clone this Project](#clone-this-project) + - [Authenticate Terraform to Access AWS](#authenticate-terraform-to-access-aws) + - [Customize Input Values](#customize-input-values) +- [Create and Manage Cloud Resources](#create-and-manage-cloud-resources) +- [Increase the Max Prepared Transactions for External Postgres Database](#increase-the-max-prepared-transactions-for-external-postgres-database) +- [Troubleshooting](#troubleshooting) +- [Contributing](#contributing) +- [License](#license) +- [Additional Resources](#additional-resources) + - [AWS Resources](#aws-resources) + - [Terraform Resources](#terraform-resources) + +## Overview + +This project contains Terraform scripts to provision the AWS cloud infrastructure resources that are required to deploy SAS Viya platform product offerings. Here is a list of resources that this project can create: + + >- Amazon VPC and Security Group + >- Managed Amazon Elastic Kubernetes Service (EKS) + >- Amazon EKS managed node groups with required labels and taints + >- Infrastructure to deploy the SAS Viya platform CAS server in SMP or MPP mode + >- Amazon Elastic Block Storage (EBS) for NFS + >- Amazon Elastic File System (EFS) + >- Amazon FSx for NetApp ONTAP File System + >- Amazon Relational Database Service (RDS) + +[Architecture Diagram](./docs/images/viya4-iac-aws-diag.png?raw=true) + +This project helps you to automate the cluster-provisioning phase of SAS Viya platform deployment. To learn about all phases and options of the +SAS Viya platform deployment process, see [Getting Started with SAS Viya and Amazon Elastic Kubernetes Service](https://documentation.sas.com/?cdcId=itopscdc&cdcVersion=default&docsetId=itopscon&docsetTarget=p111dd1k5z99kin1f7mciggn9wop.htm) in _SAS® Viya® Platform Operations_. + +Once the cloud resources are provisioned, use the [viya4-deployment](https://github.com/sassoftware/viya4-deployment) project to deploy +the SAS Viya platform in your cloud environment. For more information about SAS Viya platform requirements and documentation for the deployment +process, refer to the [SAS Viya platform Operations Guide](https://documentation.sas.com/?cdcId=itopscdc&cdcVersion=default&docsetId=itopswlcm&docsetTarget=home.htm). + +## Prerequisites + +Use of these tools requires operational knowledge of the following technologies: + +- [Terraform](https://www.terraform.io/intro/index.html) +- [Docker](https://www.docker.com/) +- [AWS](https://aws.amazon.com) +- [Kubernetes](https://kubernetes.io/docs/concepts/) + +### Technical Prerequisites + +This project supports two options for running Terraform scripts: +- Terraform installed on your local machine +- Using a Docker container to run Terraform (Docker is required) + + For more information, see [Docker Usage](./docs/user/DockerUsage.md). Using Docker to run the Terraform scripts is recommended. + +The following are also required: +- Access to an **AWS account** with a user that is associated with the applied [IAM Policy](./files/policies/devops-iac-eks-policy.json) + + **NOTE:** The base [IAM Policy](./files/policies/devops-iac-eks-policy.json) document has been updated for the 7.2.0 release, you will need to adopt the updated permission list to take advantage of new features added to the viya4-iac-aws project code. +- Subscription to [Ubuntu 20.04 LTS - Focal](https://aws.amazon.com/marketplace/pp/prodview-iftkyuwv2sjxi) + +#### Terraform Requirements: + +- [Terraform](https://www.terraform.io/downloads.html) v1.10.5 +- [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/) - v1.31.7 +- [jq](https://stedolan.github.io/jq/) v1.6 +- [AWS CLI](https://aws.amazon.com/cli) (optional; useful as an alternative to the AWS Web Console) v2.24.16 + +#### Docker Requirements: + +- [Docker](https://docs.docker.com/get-docker/) + +## Getting Started + +Ubuntu 20.04 LTS is the operating system that is used on the jump server and NFS server VMs. Ubuntu creates the `/mnt` location as an ephemeral drive, so it cannot be used as the root location of the `jump_rwx_filestore_path` variable. + +### Clone this Project + +Run the following commands from a terminal session: + +```bash +# clone this repo +git clone https://github.com/sassoftware/viya4-iac-aws +cd viya4-iac-aws +``` + +### Authenticate Terraform to Access AWS + +In order to create and destroy AWS resources on your behalf, Terraform needs an AWS account that has sufficient permissions to perform all the actions defined in the Terraform manifest. See [Authenticating Terraform to Access AWS](./docs/user/TerraformAWSAuthentication.md) for details. + + +### Customize Input Values + +Terraform scripts require variable definitions as input. Review and modify default values to meet your requirements. Create a file named +`terraform.tfvars` to customize any input variable value documented in the [CONFIG-VARS.md](docs/CONFIG-VARS.md) file. + +To get started, you can copy one of the example variable definition files provided in the [examples](./examples) folder. For more information about the +variables that are declared in each file, refer to the [CONFIG-VARS.md](docs/CONFIG-VARS.md) file. + +**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 AWS Console. + +You have the option to specify variable definitions that are not included in `terraform.tfvars` or to use a variable definition file other than +`terraform.tfvars`. See [Advanced Terraform Usage](docs/user/AdvancedTerraformUsage.md) for more information. + +## Create and Manage Cloud Resources + +Create and manage the required cloud resources. Perform one of the following steps, based on whether you are using Docker: + +- run [Terraform](docs/user/TerraformUsage.md) directly on your workstation +- run the [Docker container](docs/user/DockerUsage.md) (recommended) + +### Increase the Max Prepared Transactions for External Postgres Database + +If you are using an external Postgres server, you will need to ensure that the max prepared transactions is at least 1024. You can verify this information by opening the AWS Console and navigating to the RDS Service. Select your Postgres instance, open the Configuration tab, and click on the link to the database's parameter group. Search for the 'max_prepared_transactions' parameter. + +If the max prepared transactions is less than 1024, you will need to update the value. Click on the "Edit Parameters" button and change the value to 1024. Once you save your changes, you will need to wait for the database to apply the changes. This can be found back on the configuration tab. After it has been applied, you will need to reboot the database. + +## Troubleshooting + +See the [Troubleshooting](./docs/Troubleshooting.md) page for information about possible issues that you might encounter. + +## Contributing + +> We welcome your contributions! See [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to submit contributions to this project. + +## License + +> This project is licensed under the [Apache 2.0 License](LICENSE). + +## Additional Resources + +### AWS Resources + +- [Installing AWS CLI v2](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) +- [AWS EKS Intro](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html) + +### Terraform Resources + +- [AWS Provider](https://registry.terraform.io/providers/hashicorp/aws/latest/docs) +- [AWS EKS](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/eks_cluster) diff --git a/public/container-structure-test.yaml b/public/container-structure-test.yaml new file mode 100644 index 00000000..d32b2f62 --- /dev/null +++ b/public/container-structure-test.yaml @@ -0,0 +1,31 @@ +# Copyright © 2021-2024, SAS Institute Inc., Cary, NC, USA. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + +schemaVersion: "2.0.0" + +fileExistenceTests: + - name: 'terraform' + path: '/bin/terraform' + shouldExist: true + permissions: '-rwxr-xr-x' + - name: 'aws-cli' + path: '/usr/local/bin/aws' + shouldExist: true + permissions: 'Lrwxrwxrwx' + +commandTests: + - name: "terraform version" + command: "terraform" + args: ["--version"] + expectedOutput: ["Terraform v1.10.5"] + - name: "aws-cli version" + command: "sh" + args: + - -c + - | + aws --version + expectedOutput: ["aws-cli/2.24.16"] + +metadataTest: + workdir: "/viya4-iac-aws" + entrypoint: ["/viya4-iac-aws/docker-entrypoint.sh"] diff --git a/public/docker-entrypoint.sh b/public/docker-entrypoint.sh new file mode 100644 index 00000000..40718e14 --- /dev/null +++ b/public/docker-entrypoint.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +# Copyright © 2021-2024, SAS Institute Inc., Cary, NC, USA. All Rights Reserved. +# SPDX-License-Identifier: Apache-2.0 + +set -e + +# setup container user +echo "viya4-iac-aws:*:$(id -u):$(id -g):,,,:/viya4-iac-aws:/bin/bash" >> /etc/passwd +echo "viya4-iac-aws:*:$(id -G | cut -d' ' -f 2)" >> /etc/group + +exec /bin/terraform "$@" diff --git a/public/docs/CONFIG-VARS.md b/public/docs/CONFIG-VARS.md new file mode 100644 index 00000000..eeaa1da0 --- /dev/null +++ b/public/docs/CONFIG-VARS.md @@ -0,0 +1,442 @@ +# Valid Configuration Variables + +Supported configuration variables are listed in the tables below. All variables can also be specified on the command line. Values specified on the command line will override values in configuration defaults files. + +## Table of Contents + +- [Valid Configuration Variables](#valid-configuration-variables) + - [Table of Contents](#table-of-contents) + - [Required Variables](#required-variables) + - [AWS Authentication](#aws-authentication) + - [Using Static Credentials](#using-static-credentials) + - [Using AWS Profile](#using-aws-profile) + - [Admin Access](#admin-access) + - [Public Access CIDRs](#public-access-cidrs) + - [Private Access CIDRs](#private-access-cidrs) + - [Networking](#networking) + - [Subnet requirements](#subnet-requirements) + - [Use Existing](#use-existing) + - [IAM](#iam) + - [General](#general) + - [Node Pools](#node-pools) + - [Default Node Pool](#default-node-pool) + - [Additional Node Pools](#additional-node-pools) + - [Storage](#storage) + - [NFS Server](#nfs-server) + - [AWS Elastic File System (EFS)](#aws-elastic-file-system-efs) + - [AWS FSx for NetApp ONTAP File System](#aws-fsx-for-netapp-ontap-file-system) + - [AWS Elastic Block Store (EBS)](#aws-elastic-block-store-ebs) + - [PostgreSQL Server](#postgresql-server) + - [Cluster Logging](#cluster-logging) + +Terraform input variables can be set in the following ways: + +- Individually, with the [`-var` command-line option](https://www.terraform.io/docs/configuration/variables.html#variables-on-the-command-line). + +- In [variable definitions (.tfvars) files](https://www.terraform.io/docs/configuration/variables.html#variable-definitions-tfvars-files). SAS recommends this method for setting most variables. +- As [environment variables](https://www.terraform.io/docs/configuration/variables.html#environment-variables). SAS recommends this method for setting the variables that enable [AWS authentication](#aws-authentication). + +## Required Variables + +|
Name
|
Description
|
Type
|
Default
|
Notes
| +| :--- | :--- | :--- | :--- | :--- | +| prefix | A prefix used in the name of all the AWS resources created by this script | string | | The prefix string must start with a lowercase letter and can contain only lowercase alphanumeric characters and dashes (-), but cannot end with a dash. | +| location | The AWS Region with which to provision all resources in this script | string | "us-east-1" | | + +### AWS Authentication + +The Terraform process manages AWS resources on your behalf. In order to do so, it needs the credentials for an AWS identity with the required permissions. + +You can use either static credentials or the name of an AWS profile. If both are specified, the static credentials take precedence. For recommendations on how to set these variables in your environment, see [Authenticating Terraform to Access AWS](./user/TerraformAWSAuthentication.md). + +#### Using Static Credentials + +|
Name
|
Description
|
Type
|
Default
|
Notes
| +| :--- | :--- | :--- | :--- | :--- | +| aws_access_key_id | Static credential key | string | "" | | +| aws_secret_access_key | Static credential secret | string | "" | | +| aws_session_token | Session token for validating temporary AWS credentials | string | "" | Required only when using temporary AWS credentials. | + +#### Using AWS Profile + +|
Name
|
Description
|
Type
|
Default
|
Notes
| +| :--- | :--- | :--- | :--- | :--- | +| aws_profile | Name of AWS Profile in the credentials file | string | "" | | +| aws_shared_credentials_file | Path to shared credentials file | string | [`~/.aws/credentials` on Linux and macOS](https://docs.aws.amazon.com/credref/latest/refdocs/file-location.html) | **`aws_shared_credentials_file` is deprecated and will be removed in a future release**: use `aws_shared_credentials_files` instead. Can be ignored when using the default value. `aws_shared_credentials_file` and `aws_shared_credentials_files` are mutually exclusive, configure one or the other but not both. | +| aws_shared_credentials_files | List of paths to shared credentials files. | list of strings | [[`~/.aws/credentials`] on Linux and macOS](https://docs.aws.amazon.com/credref/latest/refdocs/file-location.html) | Can be ignored when using the default value. `aws_shared_credentials_file` and `aws_shared_credentials_files` are mutually exclusive, configure one or the other but not both.| + +## Admin Access + +By default, the public endpoints of the AWS resources that are being created are only accessible through authenticated AWS clients (for example, the AWS Portal, the AWS CLI, etc.). +To enable access for other administrative client applications (for example `kubectl`, `psql`, etc.), you can set Security Group rules to control access from your source IP addresses. + +To 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. + +NOTE: When deploying infrastructure into a private network (e.g. a VPN), with no public endpoints, the options documented in this block are not applicable. + +NOTE: The script will either create a new Security Group, or use an existing Security Group, if specified in the `security_group_id` variable. + +### Public Access CIDRs + +You can use `default_public_access_cidrs` to set a default range for all created resources. To set different ranges for other resources, define the appropriate variable. Use an empty list [] to disallow access explicitly. + +|
Name
|
Description
|
Type
|
Default
|
Notes
| +| :--- | :--- | :--- | :--- | :--- | +| default_public_access_cidrs | IP address ranges that are allowed to access all created cloud resources | list of strings | | Set a default for all resources. | +| cluster_endpoint_public_access_cidrs | IP address ranges that are allowed to access the EKS cluster API | list of strings | | For client admin access to the cluster api (by kubectl, for example). Only used with `cluster_api_mode=public` | +| vm_public_access_cidrs | IP address ranges that are allowed to access the VMs | list of strings | | Opens port 22 for SSH access to the jump server and/or NFS VM by adding Ingress Rule on the Security Group. Only used with `create_jump_public_ip=true` or `create_nfs_public_ip=true`. | +| postgres_public_access_cidrs | IP address ranges that are allowed to access the AWS PostgreSQL server | list of strings || Opens port 5432 by adding Ingress Rule on the Security Group. Only used when creating postgres instances.| + +### Private Access CIDRs + +For resources accessible at private IP addresses only, it may be necessary, depending upon your networking configuration, to specify additional CIDRs for clients requiring access to those resources. There are three private access CIDR variables provided so that you may specify distinct IP ranges needing access for each of the three different contexts: + +1. Cluster API Server Endpoint is Private - use `cluster_endpoint_private_access_cidrs` to indicate the client IP ranges needing access +2. Jump or NFS Server VMs have only private IPs - use `vm_private_access_cidrs` to indicate the IP ranges for the DAC client VM needing access. DAC's baseline module will require SSH access to the Jump VM and/or NFS Server VM. +3. VPC has no public egress - use `vpc_endpoint_private_access_cidrs` to allow access to AWS private link services required to build the cluster, e.g. EC2. + +For example, with a cluster API server endpoint that is private, the IAC client VM must have API server endpoint access during cluster creation to perform a health check. If your IAC client VM is not in your private subnet, its IP or CIDR range should be present in `cluster_endpoint_private_access_cidrs`. + +You can also use `default_private_access_cidrs` to apply the same CIDR range to all three private contexts. To set different CIDR ranges for a specific private context, set the appropriate variable. Use an empty list [] to disallow access explicitly. + +|
Name
|
Description
|
Type
|
Default
|
Notes
| +| :--- | :--- | :--- | :--- | :--- | +| default_private_access_cidrs | IP address ranges that are allowed to access all created private cloud resources | list of strings | | Set a list of CIDR ranges that will be applied as a default value for `cluster_endpoint_private_access_cidrs`, `vpc_endpoint_private_access_cidrs` and `vm_private_access_cidrs`. **Note:** If you need to set distinct IP CIDR ranges for any of these contexts, use the specific variables below rather than this one. | +| cluster_endpoint_private_access_cidrs | IP address ranges that are allowed to access the EKS cluster API Server endpoint| list of strings | | For clients needing access to the cluster api server endpoint (e.g. for VMs running terraform apply and for VMs where admins will use kubectl). Only used with `cluster_api_mode=private` | +| vpc_endpoint_private_access_cidrs | IP address ranges that are allowed to access all AWS Services targeted by the VPC endpoints | list of strings | | Adds an ingress rule to the auxiliary security group (_prefix_-sg) protecting the VPC Endpoints, allowing HTTPS access at port 443. Only used with `vpc_private_endpoints_enabled=true`. | +| vm_private_access_cidrs | IP address ranges that are allowed to access private IP based Jump or NFS Server VMs.| list of strings | | Opens port 22 for SSH access to the jump server and/or NFS VM by adding Ingress Rule on the Workers Security Group. Only used with `create_jump_public_ip=false` or `create_nfs_public_ip=false`. | + +## Networking +| Name | Description | Type | Default | Notes | +| :--- | ---: | ---: | ---: | ---: | +| vpc_cidr | Address space for the VPC | string | "192.168.0.0/16" | This variable is ignored when `vpc_id` is set (AKA bring your own VPC). | +| subnets | Subnets to be created and their settings | map | See below for default values | This variable is ignored when `subnet_ids` is set (AKA bring your own subnets). All defined subnets must exist within the VPC address space. | +| subnet_azs | Configure specific AZs you want the subnets to be created in. The values must be distinct | optional map | {} see below for an example | If you wish for the codebase to lookup a list of AZs for you: either don't define subnet_azs to lookup AZs for all subnets, or omit the key for a specific subnet in the map to perform a lookup for it. This variable is ignored when `subnet_ids` is set (AKA bring your own subnets).| + +### Subnet requirements + +If no values are set for the [`subnet_ids`](#use-existing) configuration variable, `viya4-iac-aws` will create subnet resources for you. By default, a `private` subnet, two `control_plane` subnets, two `public` subnets and two `database` subnets will be created. The CIDR ranges selected for the default subnets are intended to provide sufficient IP address space for the cluster, any nodes and other Kubernetes resources that you expect to create in each subnet. The `private` subnet should provide sufficient IP address space for the maximum expected number of worker nodes and every pod launched within the EKS cluster. For the `control_plane` subnets, [AWS requires](https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html) at least two CIDR ranges, each in a different AZ, and recommends that a minimum of 16 IP addresses should be available in each subnet. If an external [postgres server](#postgresql-server) is configured, either two `public` or two `database` subnets, each in a different AZ are required. If public access to an external [postgres server](#postgresql-server) is configured by setting either `postgres_public_access_cidrs` or `default_public_access_cidrs`, the postgres server will use the public subnets, otherwise it will use the database subnets. + +For [BYO networking scenarios](../docs/user/BYOnetwork.md#supported-scenarios-and-requirements-for-using-existing-network-resources), existing subnet values are conveyed to `viya4-iac-aws` using the [`subnet_ids`](#use-existing) configuration variable. When configuring an EKS cluster without public access, the minimum subnet requirements include a `private` subnet with a recommended CIDR range of /18, and two `control_plane` subnets with recommended CIDR ranges of /28, each in a separate AZ. If an external postgres server is configured, two `database` subnets with recommended CIDR ranges of /25, each in a separate AZ also need to be provided. Amazon RDS relies on having two subnets in separate AZs to provide database redundancy should a failure occur in one AZ. If public access is required for your postgres server or cluster, supply two `public` subnets in different AZs instead of the `database` subnets. + +The default values for the subnets variable are as follows: + +```yaml +{ + "private" : ["192.168.0.0/18"], + "control_plane" : ["192.168.130.0/28", "192.168.130.16/28"], # AWS recommends at least 16 IP addresses per subnet + "public" : ["192.168.129.0/25", "192.168.129.128/25"], + "database" : ["192.168.128.0/25", "192.168.128.128/25"] +} +``` + +Example for `subnet_azs`: + +The zones defined below allow you to configure where each subnet in the map above will be created. +e.g. Looking at the example `subnets` map above, for `"control_plane" : ["192.168.130.0/28", "192.168.130.16/28"]`, the first subnet will be created in `us-east-2c` and the second in `us-east-2b` + +```terraform +subnet_azs = { + "private" : ["us-east-2c"], + "control_plane" : ["us-east-2c", "us-east-2b"], + "public" : ["us-east-2a", "us-east-2b"], + "database" : ["us-east-2a", "us-east-2b"] +} +``` + +**Note:** supplying two or more subnets into the `private` list will deploy the node pools in a multi-az configuration, which the [SAS Platform Operations documentation](https://documentation.sas.com/?cdcId=itopscdc&cdcVersion=default&docsetId=itopssr&docsetTarget=n098rczq46ffjfn1xbgfzahytnmx.htm#p0vx68bmb3fs88n12d73wwxpsnhu) does not recommend + +### Use Existing +If desired, you can deploy into an existing VPC, subnet and NAT gateway, and Security Group. + +**Note**: All existing VPC/subnet resources must be in the same AWS region as the [location](./CONFIG-VARS.md#required-variables) you specify. + +The variables in the table below can be used to define the existing resources. Refer to the [Bring Your Own Network](./user/BYOnetwork.md) page for information about all supported scenarios for using existing network resources, with additional details and requirements. + + +| Name | Description | Type | Default | Notes | + | :--- | ---: | ---: | ---: | ---: | + | vpc_id | ID of existing VPC | string | null | Only required if deploying into existing VPC. | + | subnet_ids | List of existing subnets mapped to desired usage | map(string) | {} | Only required if deploying into existing subnets. See [Subnet requirements](#subnet-requirements) above.| + | nat_id | ID of existing AWS NAT gateway | string | null | Optional if deploying into existing VPC and subnets for [BYON scenarios 2 & 3](./user/BYOnetwork.md#supported-scenarios-and-requirements-for-using-existing-network-resources)| + | security_group_id | ID of existing Security Group that controls external access to Jump/NFS VMs and Postgres | string | null | Only required if using existing Security Group. See [Security Group](./user/BYOnetwork.md#external-access-security-group) for requirements. | +| cluster_security_group_id | ID of existing Security Group that controls Pod access to the control plane | string | null | Only required if using existing Cluster Security Group. See [Cluster Security Group](./user/BYOnetwork.md#cluster-security-group) for requirements.| +| workers_security_group_id | ID of existing Security Group that allows access between node VMs, Jump VM, and data sources (nfs, efs, postges) | string | null | Only required if using existing Security Group for Node Group VMs. See [Workers Security Group](./user/BYOnetwork.md#workers-security-group) for requirements. | + +Example `subnet_ids` variable: + +```terraform +subnet_ids = { + "public" : ["existing-public-subnet-id1", "existing-public-subnet-id2"], + "private" : ["existing-private-subnet-id1"], + "control_plane" : ["existing-control-plane-subnet-id1", "existing-control-plane-subnet-id2"], + "database" : ["existing-database-subnet-id1","existing-database-subnet-id2"] +} +``` + +**Note:** supplying two or more subnets into the `private` list will deploy the node pools in a multi-az configuration, which the [SAS Platform Operations documentation](https://documentation.sas.com/?cdcId=itopscdc&cdcVersion=default&docsetId=itopssr&docsetTarget=n098rczq46ffjfn1xbgfzahytnmx.htm#p0vx68bmb3fs88n12d73wwxpsnhu) does not recommend + +### VPC Endpoints +| Name | Description | Type | Default | Notes | + | :--- | ---: | ---: | ---: | ---: | + | vpc_private_endpoints_enabled | Enable the creation of VPC private endpoints | bool | true | Setting to false prevents IaC from creating and managing VPC private endpoints in the cluster | + + +## IAM + +By default, two custom IAM policies and two custom IAM roles (with instance profiles) are created. If your site security protocol does not allow for automatic creation of IAM resources, you can provide pre-created roles using the following options: + +|
Name
|
Description
|
Type
|
Default
|
Notes
| +| :--- | :--- | :--- | :--- | :--- | +| cluster_iam_role_arn | Amazon Resource Name (ARN) of the pre-existing IAM role for the EKS cluster | string | null | If an existing EKS cluster IAM role is being used, the IAM role's 'ARN' is required. | +| workers_iam_role_arn | ARN of the pre-existing IAM role for the cluster node VMs | string | null | If an existing EKS node IAM role is being used, the IAM role's 'ARN' is required. | + +The cluster IAM role must include three AWS-managed policies and one custom policy. + +AWS-managed policies: + +- `AmazonEKSClusterPolicy` +- `AmazonEKSServicePolicy` +- `AmazonEKSVPCResourceController` + +Custom policy: + +```yaml + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Allow", + "Action": [ + "ec2:DescribeInternetGateways", + "ec2:DescribeAddresses", + "ec2:DescribeAccountAttributes" + ], + "Resource": "*" + } + ] +``` + +The Workers IAM role must include the following three AWS-managed policies and one custom policy. It also requires an instance profile with the same name as the role. + +AWS-managed policies: + +- `AmazonEKSWorkerNodePolicy` +- `AmazonEKS_CNI_Policy` +- `AmazonEC2ContainerRegistryReadOnly` + +Custom policy: + +```yaml + "Version": "2012-10-17", + "Statement": [ + { + "Action": [ + "ec2:AttachVolume", + "ec2:CreateSnapshot", + "ec2:CreateTags", + "ec2:CreateVolume", + "ec2:DeleteSnapshot", + "ec2:DeleteTags", + "ec2:DeleteVolume", + "ec2:DescribeInstances", + "ec2:DescribeSnapshots", + "ec2:DescribeTags", + "ec2:DescribeVolumes", + "ec2:DetachVolume", + "elasticfilesystem:DescribeFileSystems", + "iam:DeletePolicyVersion" + ], + "Effect": "Allow", + "Resource": "*" + } + ] +``` + +## General + +|
Name
|
Description
|
Type
|
Default
|
Notes
| +| :--- | :--- | :--- | :--- | :--- | +| create_static_kubeconfig | Allows the user to create a provider- or service account-based kubeconfig file | bool | true | A value of `false` defaults to using the cloud provider's mechanism for generating the kubeconfig file. A value of `true` creates a static kubeconfig that uses a service account and cluster role binding to provide credentials. | +| kubernetes_version | The EKS cluster Kubernetes version | string | "1.30" | | +| create_jump_vm | Create bastion host (jump VM) | bool | true| | +| create_jump_public_ip | Add public IP address to jump VM | bool | true | | +| jump_vm_admin | OS admin user for the jump VM | string | "jumpuser" | | +| jump_rwx_filestore_path | File store mount point on jump VM | string | "/viya-share" | This location cannot include "/mnt" as its root location. This disk is ephemeral on Ubuntu, which is the operating system being used for the jump VM and NFS servers. | +| tags | Map of common tags to be placed on all AWS resources created by this script | map | { project_name = "viya" } | If left unspecified, or if a null or empty tags map value is provided, the tags variable will be set to the default value.| +| autoscaling_enabled | Enable cluster autoscaling | bool | true | | +| ssh_public_key | File name of public ssh key for jump and nfs VM | string | "~/.ssh/id_rsa.pub" | Required with `create_jump_vm=true` or `storage_type=standard` | +| cluster_api_mode | Public or private IP for the cluster api| string|"public"|Valid Values: "public", "private" | +| authentication_mode | The authentication mode for the EKS cluster.| string|"API_AND_CONFIG_MAP"| Valid values are CONFIG_MAP, API or API_AND_CONFIG_MAP | +| admin_access_entry_role_arns | Create an EKS access entry associated with the AmazonEKSClusterAdminPolicy for each of the existing IAM role ARNs that are included in this list. | list of strings | | **Note:** Do not include the assumed-role that is used to authenticate to Terraform in this list. The format for role ARNs resembles the following example: "arn:aws:iam:::role/"| + +## Node Pools + +### Default Node Pool + +|
Name
|
Description
|
Type
|
Default
|
Notes
| +| :--- | :--- | :--- | :--- | :--- | +| default_nodepool_vm_type | Type of the default node pool VMs | string | "m5.2xlarge" | | +| default_nodepool_os_disk_type | Disk type for default node pool VMs | string | gp2 | | +| default_nodepool_os_disk_size | Disk size for default node pool VMs in GB | number | 200 || +| default_nodepool_os_disk_iops | Disk IOPS for default node pool VMs | number | | For `io1`, you MUST set the value to your desired IOPS value. Refer to [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html) for details on values based on the `default_nodepool_os_disk_type` selected.| +| default_nodepool_node_count | Initial number of nodes in the default node pool | number | 1 | The value must be between `default_nodepool_min_nodes` and `default_nodepool_max_nodes`. | +| default_nodepool_max_nodes | Maximum number of nodes in the default node pool | number | 5 | | +| default_nodepool_min_nodes | Minimum and initial number of nodes for the node pool | number | 1 | | +| default_nodepool_taints | Taints for the default node pool VMs | list of strings | | | +| default_nodepool_labels | Labels to add to the default node pool VMs | map | | | +| default_nodepool_custom_data | Additional user data that will be appended to the default user data. | string | "" | The value must be an empty string ("") or the path to a file containing a Bash script snippet that will be executed on the node pool. | +| default_nodepool_metadata_http_endpoint | The state of the default node pool's metadata service | string | "enabled" | Valid values are: enabled, disabled. | +| default_nodepool_metadata_http_tokens | The state of the session tokens for the default node pool | string | "required" | Valid values are: required, optional. | +| default_nodepool_metadata_http_put_response_hop_limit | The desired HTTP PUT response hop limit for instance metadata requests for the default node pool | number | 1 | Valid values are either null or any number greater than 0. | + +### Additional Node Pools + +Additional node pools can be created separately from the default node pool. This is done with the `node_pools` variable, which is a map of objects. Each node pool requires the following variables: + +|
Name
|
Description
|
Type
|
Default
|
Notes
| +| :--- | :--- | :--- | :--- | :--- | +| vm_type | Type of the node pool VMs | string | | https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html | +| cpu_type | Processor type CPU/GPU | string | AL2_x86_64| [AMI type](https://docs.aws.amazon.com/eks/latest/APIReference/API_Nodegroup.html#AmazonEKS-Type-Nodegroup-amiType) – Choose Amazon Linux 2 (AL2_x86_64) for Linux non-GPU instances, Amazon Linux 2 GPU Enabled (AL2_x86_64_GPU) for Linux GPU instances| +| os_disk_type | Disk type for node pool VMs | string | | `gp2` or `io1` | +| os_disk_size | Disk size for node pool VMs in GB | number | | | +| os_disk_iops | Amount of provisioned [IOPS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html) | number | | For `io1`, you MUST set the value to your desired IOPS value. Reference [Amazon EBS volume types](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volume-types.html) for details on values based on the `os_disk_type` selected.| +| min_nodes | Minimum number of nodes in the node pool | number | | The value must be between `min_nodes` and `max_nodes`. | +| max_nodes | Maximum number of nodes in the node pool | number | | The value must be between `min_nodes` and `max_nodes`. | +| node_taints | Taints for the node pool VMs | list of strings | | | +| node_labels | Labels to add to the node pool VMs | map | | On nodes where you want to run SAS Pods, include this label: `"workload.sas.com/node" = ""`. | +| custom_data | Additional user data that will be appended to the default user data | string | | The value must be an empty string ("") or the path to a file containing a Bash script snippet that will be executed on the node pool. | +| metadata_http_endpoint | The state of the node pool's metadata service | string | "enabled" | Valid values are: enabled, disabled. | +| metadata_http_tokens | The state of the session tokens for the node pool | string | "required" | Valid values are: required, optional. | +| metadata_http_put_response_hop_limit | The desired HTTP PUT response hop limit for instance metadata requests for the node pool | number | 1 | Valid values are any number greater than 0. | + +## Storage + +|
Name
|
Description
|
Type
|
Default
|
Notes
| +| :--- | :--- | :--- | :--- | :--- | +| storage_type | Type of Storage. Valid Values: "standard", "ha" | string | "standard" | A value of "standard" creates a NFS server VM; a value of "ha" creates an AWS EFS mountpoint by default. | +| storage_type_backend | The storage backend employed for the chosen `storage_type`. | string | If `storage_type=standard` the default is "nfs";
If `storage_type=ha` the default is "efs" | Valid Values: "nfs" if `storage_type=standard`; "efs" or "ontap" if `storage_type=ha` | + +### NFS Server + +When `storage_type=standard`, an NFS server VM is created, and the following variables are applicable: + + +|
Name
|
Description
|
Type
|
Default
|
Notes
| +| :--- | :--- | :--- | :--- | :--- | +| create_nfs_public_ip | Add public IP address to the NFS server VM | bool | false | | +| nfs_vm_admin | Admin user account for the NFS server VM | string | "nfsuser" | | +| nfs_raid_disk_size | Size in GiB for each EBS volume of the RAID0 cluster on the NFS server VM | number | 128 | | +| nfs_raid_disk_type | Disk type for the NFS server EBS volumes | string | "gp2" | Valid values are: "standard", "gp2", "io1", "io2", "sc1" or "st1". | +| nfs_raid_disk_iops | IOPS for the the NFS server EBS volumes | number | 0 | Only used when `nfs_raid_disk_type` is "io1" or "io2". | + +### AWS Elastic File System (EFS) + +When `storage_type=ha` and `storage_type_backend=efs`, an [AWS Elastic File System](https://aws.amazon.com/efs/) service is created, and the following variables are applicable: + + +|
Name
|
Description
|
Type
|
Default
|
Notes
| +| :--- | :--- | :--- | :--- | :--- | +| efs_performance_mode | EFS performance mode | string | generalPurpose | Supported values are `generalPurpose` or `maxIO` | +| enable_efs_encryption | Enable encryption on EFS file systems | bool | false | When set to 'true', the EFS file systems will be encrypted. | +| efs_throughput_mode | EFS throughput mode | string | bursting | Supported values are 'bursting' and 'provisioned'. When using 'provisioned', 'efs_throughput_rate' is required. | +| efs_throughput_rate | EFS throughput rate, measured in MiB/s | number | 1024 | Valid values range from 1 to 1024 - MiB/s. Only applicable with 'efs_throughput_mode' set to 'provisioned'. | + +### AWS FSx for NetApp ONTAP File System + +When `storage_type=ha` and `storage_type_backend=ontap`, an [AWS FSx for NetApp ONTAP File System](https://aws.amazon.com/fsx/netapp-ontap/) is created, and the following variables are applicable: + + +|
Name
|
Description
|
Type
|
Default
|
Notes
| +| :--- | :--- | :--- | :--- | :--- | +| aws_fsx_ontap_deployment_type | The FSx file system availability zone deployment type. | string | SINGLE_AZ_1 | Supported values are `MULTI_AZ_1` and `SINGLE_AZ_1`. | +| aws_fsx_ontap_file_system_storage_capacity | The storage capacity of the ONTAP file system in GiB. | number | 1024 | Valid values range from 1024 to 196608. | +| aws_fsx_ontap_file_system_throughput_capacity | The throughput capacity of the ONTAP file system in MBps. | number | 256 | Valid values are 128, 256, 512, 1024, 2048 and 4096. | +| aws_fsx_ontap_fsxadmin_password | The ONTAP administrative password for the fsxadmin user. | string | "v3RyS3cretPa$sw0rd" | | + +**Note:** The base [IAM Policy](../files/policies/devops-iac-eks-policy.json) document has been updated for the 7.2.0 release to support FSx for NetApp ONTAP. You will need to add the iam:AttachUserPolicy and iam:DetachUserPolicy permissions to your user's existing base policy document to use FSx for NetApp ONTAP features added in the 7.2.0 release. + +### AWS Elastic Block Store (EBS) + +[AWS Elastic Block Store](https://aws.amazon.com/ebs/) is a block-level storage service provided by AWS for use with EC2 instances. EBS provides persistent storage for EC2 instances, allowing data to persist even after an EC2 instance is stopped or terminated. EBS volumes can be used as the root device for an EC2 instance, or as additional storage volumes. They can be attached and detached from instances as needed and can also be encrypted for increased security. + +To encrypt EBS volumes the following variable is applicable: + + +|
Name
|
Description
|
Type
|
Default
|
Notes
| +| :--- | :--- | :--- | :--- | :--- | +| enable_ebs_encryption | Enable encryption on EBS volumes | bool | false | When set to 'true', the EBS volumes will be encrypted. | + +## PostgreSQL Server + +When setting up ***external database servers***, you must provide information about those servers in the `postgres_servers` variable block. Each entry in the variable block represents a ***single database server***. + +This code only configures database servers. No databases are created during the infrastructure setup. + +The variable has the following format: + +```terraform +postgres_servers = { + default = {}, + ... +} +``` + + +**NOTE**: The `default = {}` elements is always required when creating external databases. This is the systems default database server. + +Each server element, like `foo = {}`, can contain none, some, or all of the parameters listed below: + + +|
Name
|
Description
|
Type
|
Default
|
Notes
| +| :--- | :--- | :--- | :--- | :--- | +| server_version | The version of the PostgreSQL server | string | "15" | 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. | +| instance_type | The VM type for the PostgreSQL Server | string | "db.m6idn.xlarge" | | +| storage_size | Max storage allowed for the PostgreSQL server in GB | number | 128 | | +| backup_retention_days | Backup retention days for the PostgreSQL server | number | 7 | Supported values are between 7 and 35 days. | +| storage_encrypted | Encrypt PostgreSQL data at rest | bool | false| | +| administrator_login | The Administrator Login for the PostgreSQL Server | string | "pgadmin" | The admin login name can not be 'admin', must start with a letter, and must be between 1-16 characters in length, and can only contain underscores, letters, and numbers. Changing this forces a new resource to be created | +| administrator_password | The Password associated with the administrator_login for the PostgreSQL Server | string | "my$up3rS3cretPassw0rd" | The admin password must have more than 8 characters, and be composed of any printable characters except the following / ' \" @ characters. | +| multi_az | Specifies if PostgreSQL instance is multi-AZ | bool | false | | +| deletion_protection | Protect from accidental resource deletion | bool | false | | +| ssl_enforcement_enabled | Enforce SSL on connections to PostgreSQL server instance | bool | true | | +| parameters | additional parameters for PostgreSQL server | list(map(string)) | [] | More details can be found [here](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.PostgreSQL.CommonDBATasks.html#Appendix.PostgreSQL.CommonDBATasks.Parameters) | +| options | additional options for PostgreSQL server | any | [] | | + +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 of the parameters: + +```terraform +postgres_servers = { + default = { + administrator_password = "D0ntL00kTh1sWay" + }, + cds-postgres = { + instance_type = "db.m6idn.xlarge" + storage_size = 128 + storage_encrypted = false + backup_retention_days = 7 + multi_az = false + deletion_protection = false + administrator_login = "cdsadmin" + administrator_password = "1tsAB3aut1fulDay" + server_version = "15" + server_port = "5432" + ssl_enforcement_enabled = true + parameters = [{ "apply_method": "pending-reboot", "name": "shared_preload_libraries", "value": "PGAUDIT,PG_CRON,PG_STAT_STATEMENTS" }, { "apply_method": "pending-reboot", "name": "bar", "value": "false" }] + options = [] + } +} +``` + +## Cluster Logging + +[CloudWatch](https://aws.amazon.com/cloudwatch/) can be enabled by setting the `cluster_enabled_log_types` configuration variable. The list of audits will be streamed to the CloudWatch Log Group. + +**NOTE**: This requires additional IAM policies to create and tag CloudWatch logs. + + +|
Name
|
Description
|
Type
|
Default
|
Notes
| +| :--- | :--- | :--- | :--- | :--- | +| cluster_enabled_log_types | List of audits to record from EKS cluster in CloudWatch | list(string) | | More information on the audit types can be [found here.](https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html) | \ No newline at end of file diff --git a/public/docs/Troubleshooting.md b/public/docs/Troubleshooting.md new file mode 100644 index 00000000..e606a2cf --- /dev/null +++ b/public/docs/Troubleshooting.md @@ -0,0 +1,16 @@ + +# Issue + +Description. + +Here is a sample of the error: + +```bash +Error message: +``` + +**Resolution:** + +```bash +any commands to resolve issue +``` diff --git a/public/docs/images/viya4-iac-aws-diag.png b/public/docs/images/viya4-iac-aws-diag.png new file mode 100644 index 0000000000000000000000000000000000000000..20a8f47a71ea263d55f64063b23c9455b19a221a GIT binary patch literal 265887 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�(Ref$g;D2&Md;iIz*>9{{u-A?W-HxJlot~4xfX| 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 z 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 literal 0 HcmV?d00001 diff --git a/public/docs/sas-updates.md b/public/docs/sas-updates.md new file mode 100644 index 00000000..dbb2a293 --- /dev/null +++ b/public/docs/sas-updates.md @@ -0,0 +1,28 @@ +New in SAS Viya platform 2021.2.6: the connect workload class is no longer required. For more information, see [Connect Workload Class Changes](https://documentation.sas.com/?cdcId=itopscdc&cdcVersion=v_026&docsetId=itopswn&docsetTarget=n0jh2fbifqgoksn1uou9p2zgbzdy.htm#p15778dvqwzjtgn1e95nq9v0y1wv). + +To deploy the SAS Viya platform 2021.2.6 and later, use the most recent version of SAS Viya 4 Infrastructure as Code. The default settings do not create a connect node pool. If your current software order has a requirement for the connect node pool, you can use the connect node pool example file in `examples/sample-input-connect.tfvars`. + +If you are updating the SAS Viya platform to version 2021.2.6, take some additional steps to remove the connect nodes. + +1. Perform the update by following the steps in the [SAS Viya platform documentation](https://documentation.sas.com/?cdcId=itopscdc&cdcVersion=default&docsetId=k8sag&docsetTarget=p043aa4ghwwom6n1beyfifdgkve7.htm). +2. When the update to 2021.2.6 has completed successfully, edit the sample-input-*.tfvars to scale down the connect node pool. Change `min_nodes` and `max_nodes` to 0: +``` + connect = { + "vm_type" = "m5.8xlarge" + "os_disk_type" = "gp2" + "os_disk_size" = 200 + "os_disk_iops" = 0 + "min_nodes" = 0 + "max_nodes" = 0 + "node_taints" = ["workload.sas.com/class=connect:NoSchedule"] + "node_labels" = { + "workload.sas.com/class" = "connect" + "launcher.sas.com/prepullImage" = "sas-programming-environment" + } + "custom_data" = "" + "metadata_http_endpoint" = "enabled" + "metadata_http_tokens" = "required" + "metadata_http_put_response_hop_limit" = 1 + }, +``` +3. Run `terraform apply` using your edited tfvars file. diff --git a/public/docs/user/AdvancedTerraformUsage.md b/public/docs/user/AdvancedTerraformUsage.md new file mode 100644 index 00000000..6e777f89 --- /dev/null +++ b/public/docs/user/AdvancedTerraformUsage.md @@ -0,0 +1,49 @@ + +# Advanced Terraform Usage + +## Terraform - Plan + +Once the Terraform project has been initialized, you can run the ```terraform plan``` command to generate a plan file. You can then review the plan before running ```terraform apply```, the command that actually creates cloud resources. Use the plan in order to: + +- verify that the Terraform script runs with no errors +- review the cloud resources and dependencies before creating them +- find any disparities between local definitions and the actual infrastructure. To find these differences, run the command after the infrastructure has been created with `terraform apply`. + +Terraform accepts inputs and will prompt you for them. However, you can also pass them in from the command line using the ```-var``` or ```-var-file``` options. Passing them in this way overrides any default values in ```variables.tf```. + +```bash +# to generate a terraform plan +terraform plan -var-file=sample-input.tfvars -out ./my-viya4-iac.plan +``` + +## Terraform - Show + +Run ```terraform show``` command to display the plan file again. + + # to review the plan + terraform show my-viya4-iac.plan + +## Terraform - Apply + +After any errors are resolved and you are satisfied with the plan, run the ```terraform apply``` command to create resources on the cloud provider. When a plan file is not provided, Terraform generates a plan at that time that might differ from previous ```plan``` runs. + + # run apply to create resources based on the plan + terraform apply ./my-viya4-iac.plan + +## Terraform - State + +After the resources have been created, use ```terraform state list``` to list all the resources and ```terraform state show``` to get details about a resource. + + terraform state list + # to get more details on a particular resource + terraform state show + +If you decide to use the [viya4-deployment project](https://github.com/sassoftware/viya4-deployment), which uses Ansible to complete the configuration of your cluster to meet SAS Viya platform requirements, you can provide the tfstate file to enable auto-discovery of the kubeconfig file and other settings. + +## Terraform - Output + +To display Terraform output, use the `terraform output` command to show all output or a specific output variable. + + terraform output + # to get the value of a specific output variable + terraform output diff --git a/public/docs/user/BYOnetwork.md b/public/docs/user/BYOnetwork.md new file mode 100644 index 00000000..7a2fbe3d --- /dev/null +++ b/public/docs/user/BYOnetwork.md @@ -0,0 +1,63 @@ +# Supported Scenarios and Requirements for Using Existing Network Resources + +You have the option to use existing network resources with SAS Viya 4 Terraform scripts. The table below summarizes the supported scenarios, requirements, and remaining resources that must still be created using the viya4-iac-aws project. + +**NOTE:** We refer to the use of existing resources as "bring your own" or "BYO" resources. + +|Scenario |Description|Required Variables|Optional Variables|Additional Requirements|Resources to be Created| +| -: | :--- | :--- | :--- | :--- | :---| +| 0|No existing network resources | None | | Not a BYO network scenario | IaC creates the required network resources | +| 1|To work with an existing VPC | `vpc_id` | |
  • VPC does not contain any Subnets or other [Network components](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Networking.html)
  • VPC block size must be IPv4 with '/16' netmask (supports 65,536 IP addresses)
  • `DNS hostnames` and `DNS resolution` are enabled
  • [`subnets`](../CONFIG-VARS.md#networking) CIDR blocks must match with VPC IPv4 CIDR block
| Subnets, NAT Gateway and Security Groups| +| 2|To configure all components of your VPC network - Subnets, Routes & associations and optionally Internet and NAT Gateways | `vpc_id`,
one `private` subnet and two `control_plane` subnets within the [subnet_ids](../CONFIG-VARS.md#use-existing) map,
see [Subnet requirements](../CONFIG-VARS.md#subnet-requirements) | `nat_id`,
`public` and `database` subnet lists within the [subnet_ids](../CONFIG-VARS.md#use-existing) map |