diff --git a/zero-module.yml b/zero-module.yml index d0b0168..b49c89a 100644 --- a/zero-module.yml +++ b/zero-module.yml @@ -1,6 +1,7 @@ name: zero-aws-eks-stack description: 'zero module for an AWS kubernetes stack on EKS' author: 'Commit' +zeroVersion: '>= 0.1.0' template: strictMode: true @@ -15,12 +16,42 @@ requiredCredentials: - github parameters: + - field: useExistingAwsProfile + label: "Use credentials from an existing AWS profile?" + options: + "yes": "Yes" + "no": "No" + omitFromProjectFile: yes + - field: profilePicker + omitFromProjectFile: yes + type: AWSProfilePicker + conditions: + - action: KeyMatchCondition + whenValue: "yes" + matchField: useExistingAwsProfile + - field: accessKeyId + label: AWS AccessKeyId + envVarName: "AWS_ACCESS_KEY_ID" + conditions: + - action: KeyMatchCondition + whenValue: "no" + matchField: useExistingAwsProfile + - field: secretAccessKey + envVarName: "AWS_SECRET_ACCESS_KEY" + label: AWS SecretAccessKey + conditions: + - action: KeyMatchCondition + whenValue: "no" + matchField: useExistingAwsProfile + - field: githubAccessToken + label: "Github API Key to setup your repository and optionally CI/CD" + envVarName: GITHUB_ACCESS_TOKEN - field: region label: Select AWS Region options: - - "us-west-2" - - "us-east-1" - - "us-east-2" + "us-west-2": "us-west-2 (Oregon)" + "us-east-1": "us-east-1 (N. Virginia)" + "us-east-2": "us-east-2 (Ohio)" - field: productionHostRoot label: Production Root Host Name (e.g. mydomain.com) - this must be the root of the chosen domain, not a subdomain. fieldValidation: @@ -61,40 +92,57 @@ parameters: type: regex value: '^([a-z0-9]+(-[a-z0-9]+)*\.)$' errorMessage: Invalid subdomain (cannot contain special chars & must end with a '.') + - field: CIVendor + label: Using either circleCI or github Actions to build / test your repository + default: "circleci" + options: + "circleci": "CircleCi" + "github-actions": "Github Actions" + - field: circleciApiKey + label: "Circle CI API Key to setup your CI/CD for repositories" + envVarName: CIRCLECI_API_KEY + conditions: + - action: KeyMatchCondition + matchField: CIVendor + whenValue: "circleci" - field: database label: Database engine to use (postgres) options: - - "postgres" - - "mysql" + "postgres": "PostgreSQL" + "mysql": "MySQL" - field: cacheStore label: "Cache store to use (default: no cache)" options: - - "none" - - "redis" - - "memcached" + "none": "none" + "redis": "Redis" + "memcached": "Memcached" - field: loggingType label: Application logging to configure. Cloudwatch is cheaper with a more limited feature set. Elasticsearch + Kibana will set up more infrastructure but enable a much richer logging search and visualization experience. options: - - "cloudwatch" - - "kibana" + "cloudwatch": "AWS CloudWatch" + "kibana": "Kibana" - field: metricsType label: Additional application metrics method to configure. Metrics are available through CloudWatch, but choosing prometheus will install Prometheus and Grafana, for a richer metrics experience. No additional infrastructure is required, but a number of prometheus pods will need to exist in the cluster, utilizing some resources. options: - - "none" - - "prometheus" + "none": "none" + "prometheus": "Prometheus" - field: notificationServiceEnabled label: "Install the Zero Notification Service in your cluster?" info: Provides easy notification capability through email, slack, etc. - https://github.com/commitdev/zero-notification-service default: yes options: - - "yes" - - "no" + "yes": "Yes" + "no": "No" - field: sendgridApiKey label: "API key to setup email integration (optional: leave blank to opt-out of Sendgrid setup)" info: Signup at https://signup.sendgrid.com or create an API key at https://app.sendgrid.com/settings/api_keys - Sendgrid is an email delivery service enabling transactional email sending and more. - field: notificationServiceSlackApiKey label: "API key of your Slack bot if you want to use Slack with the Zero Notification Service. Leave blank if not applicable." info: See https://slack.com/intl/en-ca/help/articles/215770388-Create-and-regenerate-API-tokens + conditions: + - action: KeyMatchCondition + whenValue: "yes" + matchField: notificationServiceEnabled - field: accountId label: AWS Account ID execute: aws sts get-caller-identity --query "Account" | tr -d '"' @@ -108,11 +156,11 @@ parameters: label: Enable file uploads using S3 and Cloudfront signed URLs? (Will require manual creation of a Cloudfront keypair in AWS) default: yes options: - - "yes" - - "no" + "yes": "Yes" + "no": "No" - field: userAuth label: Enable user management using Kratos and authentication using the Oathkeeper access proxy? default: yes options: - - "yes" - - "no" + "yes": "Yes" + "no": "No"