Gruntwork Reference Architecture Form Fields #341
-
|
This post details the various fields on the Gruntwork Reference Architecture's It serves as a reference for how the fields are used, their possible values, important caveats to consider when filling out the form, etc. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
|
CompanyName (type = string) PrimaryRegion (type = string) Please note that not all AWS regions are currently supported. This is because some AWS regions may not actually implement certain AWS services that the Reference Architecture composes. If the region you selected is not supported, a Gruntwork engineer will let you know. InfraLiveRepoURL (type = string) Whereas the
your InfraLiveRepoURL can optionally point to a different repository where you or your company wants to manage your Ref Arch going forward. For example, if your company prefers Bitbucket and normally works there, you should set this to the HTTPS URL of the Bitbucket repository where you will host this code in the future. InfraLiveRepoSSHURL (type = string) This is the SSH URL to the repository where you want to host and run your Reference Architecture code after your Reference Architecture has been delivered to you. This URL must end in Note that this URL is related to your InfraLiveRepoURL. Your InfraLiveDefaultBranchName (type = string) The default branch of the infrastructure-live repository. This branch is the only branch that the Gruntwork Pipelines solution will be allowed to deploy from. This branch should be marked as protected by your VCS platform. If you are unfamiliar with protected branches, you can review the following documentation: GitHub: https://docs.github.com/en/github/administering-a-repository/about-protected-branches We recommend using "main" as the name of the default branch. If you already have a specially configured branch you want to use# that is not "main" you can create a copy of it by running Your CI/CD integration will use this branch as the production branch, meaning that
AdminIAMUsers (type = list) You must specify at least one Admin IAM user when preparing for a Ref Arch deployment. This user will become one of the primary ways to access your Reference Architecture once it is deployed. For each user in your list, you can supply the following attributes:
If your keybase username is To confirm that your keybase user has a public PGP key associated, go to https://keybase.io/ and ensure you can see a key icon followed by the key fingerprint, like so:
AWSAccounts (type = list) This is where you will configure the AWS accounts that your Reference Architecture will be deployed into. Please use the Gruntwork CLI to automatically scaffold and create your AWS accounts if you have not already created them manually. We STRONGLY RECOMMEND use of the Gruntwork CLI because it removes the possibility of manual configuration errors that may delay your deployment. It's important to understand a few key points when defining your AWS Accounts.
stage:
- Name: "staging"
ID: "<YOUR ACCOUNT ID>"
DomainName: "example-staging.com"
- Name: "qa"
ID: "<YOUR ACCOUNT ID>"
DomainName: "example-qa.com"
MachineUserGitUsername (type = string) For example, if you are ultimately going to host and run your code in GitHub, you would create a new GitHub account for your machine user. You cannot use an existing GitHub account, such as your existing, personal account because we request a GitHub Personal Access Token from your Machine user's account which gives us sufficient access to upload SSH keys for your user and to make any other changes necessary to perform a deployment. Separation of accounts is an intentional design choice made to enhance your own security. MachineUserGitEmail (type = string) We need this email address in order to complete Git configuration required to allow your machine user to make commits in the CI/CD pipeline. CIServerPlatform We strongly recommend you choose Please do not choose VCSPlatformType (type = string) Depending upon your selection, we may attempt to do some of the CI/CD pipelines setup for you. For example, if you select Gitlab, we attempt to create the Gitlab project variables your Gruntwork Pipelines solution will require on your behalf. Please note this feature is dependent upon your correctly supplying us with valid credentials to make Gitlab API calls on your behalf. Currently we do not offer such support for Bitbucket. For any and all CI/CD VCS platforms, you will still need to complete a few integration steps upon delivery of your Ref Arch to make your pipeline fully operational. VCSPATSecretsManagerARN Whatever VCS platform you are using, do this:
If you are using GitHub as your VCS, you’re done with this section! If you’re using GitLab or BitBucket, do the following: For GitLab, use these instructions, and grant the following scopes (NOTE: api, read_user, and read_api scopes are only used for uploading the public SSH key for the user. You can replace the token with a new one that only has write_repository permission after the Reference Architecture is deployed.):
For Bitbucket, use these instructions, and grant the following scopes (NOTE: Account:Write is only used for uploading the public SSH key for the user. You can replace the token with a new one that only has Repositories:Write permission after the Reference Architecture is deployed.):
Then create another secret in AWS Secrets Manager in the shared account containing this PAT. Note the ARN, as in the GitHub step above. In the ref arch form, Why do we require this? The reference architecture includes an end-to-end CI/CD pipeline for infrastructure. You’ll need to set up a machine user (also known as a service account) that will automatically checkout your code, push artifacts (such as Docker images and AMIs), and access the Gruntwork IaC Library. You need one machine user in GitHub to access the repos in the Gruntwork IaC Library. If you’re not using GitHub, (e.g., in BitBucket or GitLab), you’ll need to create another machine user for that VCS. CACertFields (type = map) UsingCISCompliance (type = bool) Set this value to true if you have purchased the CIS AWS Foundations Benchmark add-on VPNIPAllowList (type = list) The list of CIDR ranges that are permitted to access the network bastion. Note that, even if you have purchased the CIS compliance add-on, you MAY supply the default CIDR range of If you wish to specify that a single IP address should have access, be sure to add the correct VPNIPAllowList:
- "192.168.2.1/32"SSHIPAllowList (type = list) The list of CIDR ranges that will be permitted SSH access to the network bastion. Note that if you purchased the CIS compliance add-on, you MUST set this to a CIDR range more restricted than BastionType (type = string) AppServerClusterType (type = string) DatabaseType (type = string) CacheType (type = string) |
Beta Was this translation helpful? Give feedback.

CompanyName (type = string)
This is your company's name. It may be used when generating unique prefixes for resources such as S3 buckets, Application Load Balancers, etc. If your company name is too long, our tooling will truncate it so that it does not exceed the character limits imposed by various AWS resources.
PrimaryRegion (type = string)
This is the AWS region that you want your resources (databases, compute stack, etc) deployed into initially. Note, you can only select one PrimaryRegion initially for your deployment. If you wish to run resources in more than one region following your deployment, see this Knowledge Base answer.
Please note that not all AWS regions are currently supp…