From d560718cb4854075698234cc5e02e8f470b225ed Mon Sep 17 00:00:00 2001 From: Matt Gowie Date: Tue, 7 Jul 2020 17:32:23 -0600 Subject: [PATCH] Updates to ChatOps - Automated commit ## What * Adds chatops commands - '/test all' - '/test bats' - '/test readme' - '/test terratest' * Drops codefresh * Drops slash-command-dispatch * Removes codefresh badge * Rebuilds README ## Why * Change over from codefresh to GH Actions * Facilitate testing of PRs from forks --- .github/CODEOWNERS | 14 +++++ .github/ISSUE_TEMPLATE/bug_report.md | 37 ++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 18 ++++++ .github/ISSUE_TEMPLATE/feature_request.md | 36 +++++++++++ .github/ISSUE_TEMPLATE/question.md | 0 .github/PULL_REQUEST_TEMPLATE.md | 13 ++++ .github/workflows/chatops.yml | 37 ++++++++++++ README.md | 42 ++++++++----- README.yaml | 14 ----- codefresh/test.yml | 74 ----------------------- docs/terraform.md | 40 ++++++++---- 11 files changed, 210 insertions(+), 115 deletions(-) create mode 100644 .github/CODEOWNERS create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 .github/ISSUE_TEMPLATE/question.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/workflows/chatops.yml delete mode 100644 codefresh/test.yml diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..bed3c96 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,14 @@ +# Use this file to define individuals or teams that are responsible for code in a repository. +# Read more: +# +# Order is important: the last matching pattern takes the most precedence + +# These owners will be the default owners for everything +* @cloudposse/engineering @cloudposse/contributors + +# Cloud Posse must review any changes to Makefiles +**/Makefile @cloudposse/engineering +**/Makefile.* @cloudposse/engineering + +# Cloud Posse must review any changes to GitHub actions +.github/* @cloudposse/engineering diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..f3df96b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,37 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: 'bug' +assignees: '' + +--- + +Found a bug? Maybe our [Slack Community](https://slack.cloudposse.com) can help. + +[![Slack Community](https://slack.cloudposse.com/badge.svg)](https://slack.cloudposse.com) + +## Describe the Bug +A clear and concise description of what the bug is. + +## Expected Behavior +A clear and concise description of what you expected to happen. + +## Steps to Reproduce +Steps to reproduce the behavior: +1. Go to '...' +2. Run '....' +3. Enter '....' +4. See error + +## Screenshots +If applicable, add screenshots or logs to help explain your problem. + +## Environment (please complete the following information): + +Anything that will help us triage the bug will help. Here are some ideas: + - OS: [e.g. Linux, OSX, WSL, etc] + - Version [e.g. 10.15] + +## Additional Context +Add any other context about the problem here. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..76ae6d6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,18 @@ +blank_issues_enabled: false + +contact_links: + + - name: Community Slack Team + url: https://cloudposse.com/slack/ + about: |- + Please ask and answer questions here. + + - name: Office Hours + url: https://cloudposse.com/office-hours/ + about: |- + Join us every Wednesday for FREE Office Hours (lunch & learn). + + - name: DevOps Accelerator Program + url: https://cloudposse.com/accelerate/ + about: |- + Own your infrastructure in record time. We build it. You drive it. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..39a8686 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,36 @@ +--- +name: Feature Request +about: Suggest an idea for this project +title: '' +labels: 'feature request' +assignees: '' + +--- + +Have a question? Please checkout our [Slack Community](https://slack.cloudposse.com) or visit our [Slack Archive](https://archive.sweetops.com/). + +[![Slack Community](https://slack.cloudposse.com/badge.svg)](https://slack.cloudposse.com) + +## Describe the Feature + +A clear and concise description of what the bug is. + +## Expected Behavior + +A clear and concise description of what you expected to happen. + +## Use Case + +Is your feature request related to a problem/challenge you are trying to solve? Please provide some additional context of why this feature or capability will be valuable. + +## Describe Ideal Solution + +A clear and concise description of what you want to happen. If you don't know, that's okay. + +## Alternatives Considered + +Explain what alternative solutions or features you've considered. + +## Additional Context + +Add any other context or screenshots about the feature request here. diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md new file mode 100644 index 0000000..e69de29 diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..4b8f32d --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,13 @@ +## what +* Describe high-level what changed as a result of these commits (i.e. in plain-english, what do these changes mean?) +* Use bullet points to be concise and to the point. + +## why +* Provide the justifications for the changes (e.g. business case). +* Describe why these changes were made (e.g. why do these commits fix the problem?) +* Use bullet points to be concise and to the point. + +## references +* Link to any supporting github issues or helpful documentation to add some context (e.g. stackoverflow). +* Use `closes #123`, if this PR closes a GitHub issue `#123` + diff --git a/.github/workflows/chatops.yml b/.github/workflows/chatops.yml new file mode 100644 index 0000000..a6bb11b --- /dev/null +++ b/.github/workflows/chatops.yml @@ -0,0 +1,37 @@ +name: chatops +on: + issue_comment: + types: [created] + +jobs: + default: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: "Handle common commands" + uses: cloudposse/actions/github/slash-command-dispatch@0.15.0 + with: + token: ${{ secrets.PUBLIC_REPO_ACCESS_TOKEN }} + reaction-token: ${{ secrets.GITHUB_TOKEN }} + repository: cloudposse/actions + commands: rebuild-readme, terraform-fmt + permission: none + issue-type: pull-request + + test: + runs-on: ubuntu-latest + steps: + - name: "Checkout commit" + uses: actions/checkout@v2 + - name: "Run tests" + uses: cloudposse/actions/github/slash-command-dispatch@0.15.0 + with: + token: ${{ secrets.PUBLIC_REPO_ACCESS_TOKEN }} + reaction-token: ${{ secrets.GITHUB_TOKEN }} + repository: cloudposse/actions + commands: test + permission: none + issue-type: pull-request + reactions: false + + diff --git a/README.md b/README.md index 23c4e67..a197bf8 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ [![Cloud Posse][logo]](https://cpco.io/homepage) -# terraform-aws-route53-alias [![Codefresh Build Status](https://g.codefresh.io/api/badges/pipeline/cloudposse/terraform-modules%2Fterraform-aws-route53-alias?type=cf-1)](https://g.codefresh.io/public/accounts/cloudposse/pipelines/5d119fda4bb3780bc79a6395) [![Latest Release](https://img.shields.io/github/release/cloudposse/terraform-aws-route53-alias.svg)](https://github.com/cloudposse/terraform-aws-route53-alias/releases/latest) [![Slack Community](https://slack.cloudposse.com/badge.svg)](https://slack.cloudposse.com) +# terraform-aws-route53-alias [![Latest Release](https://img.shields.io/github/release/cloudposse/terraform-aws-route53-alias.svg)](https://github.com/cloudposse/terraform-aws-route53-alias/releases/latest) [![Slack Community](https://slack.cloudposse.com/badge.svg)](https://slack.cloudposse.com) Terraform module that implements "vanity" host names (e.g. `brand.com`) as `ALIAS` records to another Route53 DNS resource record (e.g. ELB/ALB, S3 Bucket Endpoint or CloudFront Distribution). @@ -114,28 +114,42 @@ Available targets: lint Lint terraform code ``` +## Requirements + +| Name | Version | +|------|---------| +| terraform | ~> 0.12.0 | +| aws | ~> 2.0 | +| local | ~> 1.2 | + +## Providers + +| Name | Version | +|------|---------| +| aws | ~> 2.0 | + ## Inputs | Name | Description | Type | Default | Required | -|------|-------------|:----:|:-----:|:-----:| -| aliases | List of aliases | list(string) | - | yes | -| allow_overwrite | Allow creation of this record in Terraform to overwrite an existing record, if any. This does not affect the ability to update the record in Terraform and does not prevent other resources within Terraform or manual Route 53 changes outside Terraform from overwriting this record. false by default. This configuration is not recommended for most environments | bool | `false` | no | -| enabled | Set to false to prevent the module from creating any resources | bool | `true` | no | -| evaluate_target_health | Set to true if you want Route 53 to determine whether to respond to DNS queries | bool | `false` | no | -| ipv6_enabled | Set to true to enable an AAAA DNS record to be set as well as the A record | bool | `false` | no | -| parent_zone_id | ID of the hosted zone to contain this record (or specify `parent_zone_name`) | string | `` | no | -| parent_zone_name | Name of the hosted zone to contain this record (or specify `parent_zone_id`) | string | `` | no | -| private_zone | Is this a private hosted zone? | bool | `false` | no | -| target_dns_name | DNS name of target resource (e.g. ALB, ELB) | string | - | yes | -| target_zone_id | ID of target resource (e.g. ALB, ELB) | string | - | yes | +|------|-------------|------|---------|:--------:| +| aliases | List of aliases | `list(string)` | n/a | yes | +| allow\_overwrite | Allow creation of this record in Terraform to overwrite an existing record, if any. This does not affect the ability to update the record in Terraform and does not prevent other resources within Terraform or manual Route 53 changes outside Terraform from overwriting this record. false by default. This configuration is not recommended for most environments | `bool` | `false` | no | +| enabled | Set to false to prevent the module from creating any resources | `bool` | `true` | no | +| evaluate\_target\_health | Set to true if you want Route 53 to determine whether to respond to DNS queries | `bool` | `false` | no | +| ipv6\_enabled | Set to true to enable an AAAA DNS record to be set as well as the A record | `bool` | `false` | no | +| parent\_zone\_id | ID of the hosted zone to contain this record (or specify `parent_zone_name`) | `string` | `""` | no | +| parent\_zone\_name | Name of the hosted zone to contain this record (or specify `parent_zone_id`) | `string` | `""` | no | +| private\_zone | Is this a private hosted zone? | `bool` | `false` | no | +| target\_dns\_name | DNS name of target resource (e.g. ALB, ELB) | `string` | n/a | yes | +| target\_zone\_id | ID of target resource (e.g. ALB, ELB) | `string` | n/a | yes | ## Outputs | Name | Description | |------|-------------| | hostnames | List of DNS records | -| parent_zone_id | ID of the hosted zone to contain the records | -| parent_zone_name | Name of the hosted zone to contain the records | +| parent\_zone\_id | ID of the hosted zone to contain the records | +| parent\_zone\_name | Name of the hosted zone to contain the records | diff --git a/README.yaml b/README.yaml index 6fe87d8..5506526 100644 --- a/README.yaml +++ b/README.yaml @@ -1,4 +1,3 @@ ---- # # This is the canonical configuration for the `README.md` # Run `make readme` to rebuild the `README.md` @@ -6,7 +5,6 @@ # Name of this project name: terraform-aws-route53-alias - # Tags of this project tags: - aws @@ -15,32 +13,24 @@ tags: - networking - route53 - alias - # Categories of this project categories: - terraform-modules/networking - # Logo for this project #logo: docs/logo.png # License of this project license: "APACHE2" - # Canonical GitHub repo github_repo: cloudposse/terraform-aws-route53-alias - # Badges to display badges: - - name: "Codefresh Build Status" - image: "https://g.codefresh.io/api/badges/pipeline/cloudposse/terraform-modules%2Fterraform-aws-route53-alias?type=cf-1" - url: "https://g.codefresh.io/public/accounts/cloudposse/pipelines/5d119fda4bb3780bc79a6395" - name: "Latest Release" image: "https://img.shields.io/github/release/cloudposse/terraform-aws-route53-alias.svg" url: "https://github.com/cloudposse/terraform-aws-route53-alias/releases/latest" - name: "Slack Community" image: "https://slack.cloudposse.com/badge.svg" url: "https://slack.cloudposse.com" - related: - name: "terraform-aws-route53-cluster-hostname" description: "Terraform module to define a consistent AWS Route53 hostname" @@ -51,12 +41,10 @@ related: - name: "terraform-aws-kops-route53" description: "Terraform module to lookup the IAM role associated with `kops` masters, and attach an IAM policy to the role with permissions to modify Route53 record sets" url: "https://github.com/cloudposse/terraform-aws-kops-route53" - # Short description of this project description: |- Terraform module that implements "vanity" host names (e.g. `brand.com`) as `ALIAS` records to another Route53 DNS resource record (e.g. ELB/ALB, S3 Bucket Endpoint or CloudFront Distribution). Unlike `CNAME` records, the synthetic `ALIAS` record works with zone apexes. - # How to use this project usage: |- This will define a `A` resource record for `www.example.com` as an alias of the `aws_elb.example.dns_name`. @@ -70,11 +58,9 @@ usage: |- target_zone_id = "${aws_elb.example.zone_id}" } ``` - include: - "docs/targets.md" - "docs/terraform.md" - # Contributors to this project contributors: - name: "Erik Osterman" diff --git a/codefresh/test.yml b/codefresh/test.yml deleted file mode 100644 index ddd07f9..0000000 --- a/codefresh/test.yml +++ /dev/null @@ -1,74 +0,0 @@ -version: '1.0' - -stages: - - Prepare - - Test - -steps: - wait: - title: Wait - stage: Prepare - image: codefresh/cli:latest - commands: - - codefresh get builds --pipeline=${{CF_REPO_NAME}} --status running --limit 1000 -o json | jq --arg id ${{CF_BUILD_ID}} -ser 'flatten|.[-1].id==$id' - retry: - maxAttempts: 10 - delay: 20 - exponentialFactor: 1.1 - - main_clone: - title: "Clone repository" - type: git-clone - stage: Prepare - description: "Initialize" - repo: ${{CF_REPO_OWNER}}/${{CF_REPO_NAME}} - git: CF-default - revision: ${{CF_REVISION}} - - clean_init: - title: Prepare build-harness and test-harness - image: ${{TEST_IMAGE}} - stage: Prepare - commands: - - cf_export PATH="/usr/local/terraform/0.12/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" - - make init - - git -C build-harness checkout master - - make -C test/ clean init TEST_HARNESS_BRANCH=master - - make -C test/src clean init - - find . -type d -name '.terraform' | xargs rm -rf - - find . -type f -name 'terraform.tfstate*' -exec rm -f {} \; - - test: - type: "parallel" - title: "Run tests" - description: "Run all tests in parallel" - stage: Test - steps: - test_readme_lint: - title: "Test README.md updated" - stage: "Test" - image: ${{TEST_IMAGE}} - description: Test "readme/lint" - commands: - - make readme/lint - - test_module: - title: Test module with bats - image: ${{TEST_IMAGE}} - stage: Test - commands: - - make -C test/ module - - test_examples_complete: - title: Test "examples/complete" with bats - image: ${{TEST_IMAGE}} - stage: Test - commands: - - make -C test/ examples/complete - - test_examples_complete_terratest: - title: Test "examples/complete" with terratest - image: ${{TEST_IMAGE}} - stage: Test - commands: - - make -C test/src diff --git a/docs/terraform.md b/docs/terraform.md index 3179859..0d0d8d8 100644 --- a/docs/terraform.md +++ b/docs/terraform.md @@ -1,23 +1,37 @@ +## Requirements + +| Name | Version | +|------|---------| +| terraform | ~> 0.12.0 | +| aws | ~> 2.0 | +| local | ~> 1.2 | + +## Providers + +| Name | Version | +|------|---------| +| aws | ~> 2.0 | + ## Inputs | Name | Description | Type | Default | Required | -|------|-------------|:----:|:-----:|:-----:| -| aliases | List of aliases | list(string) | - | yes | -| allow_overwrite | Allow creation of this record in Terraform to overwrite an existing record, if any. This does not affect the ability to update the record in Terraform and does not prevent other resources within Terraform or manual Route 53 changes outside Terraform from overwriting this record. false by default. This configuration is not recommended for most environments | bool | `false` | no | -| enabled | Set to false to prevent the module from creating any resources | bool | `true` | no | -| evaluate_target_health | Set to true if you want Route 53 to determine whether to respond to DNS queries | bool | `false` | no | -| ipv6_enabled | Set to true to enable an AAAA DNS record to be set as well as the A record | bool | `false` | no | -| parent_zone_id | ID of the hosted zone to contain this record (or specify `parent_zone_name`) | string | `` | no | -| parent_zone_name | Name of the hosted zone to contain this record (or specify `parent_zone_id`) | string | `` | no | -| private_zone | Is this a private hosted zone? | bool | `false` | no | -| target_dns_name | DNS name of target resource (e.g. ALB, ELB) | string | - | yes | -| target_zone_id | ID of target resource (e.g. ALB, ELB) | string | - | yes | +|------|-------------|------|---------|:--------:| +| aliases | List of aliases | `list(string)` | n/a | yes | +| allow\_overwrite | Allow creation of this record in Terraform to overwrite an existing record, if any. This does not affect the ability to update the record in Terraform and does not prevent other resources within Terraform or manual Route 53 changes outside Terraform from overwriting this record. false by default. This configuration is not recommended for most environments | `bool` | `false` | no | +| enabled | Set to false to prevent the module from creating any resources | `bool` | `true` | no | +| evaluate\_target\_health | Set to true if you want Route 53 to determine whether to respond to DNS queries | `bool` | `false` | no | +| ipv6\_enabled | Set to true to enable an AAAA DNS record to be set as well as the A record | `bool` | `false` | no | +| parent\_zone\_id | ID of the hosted zone to contain this record (or specify `parent_zone_name`) | `string` | `""` | no | +| parent\_zone\_name | Name of the hosted zone to contain this record (or specify `parent_zone_id`) | `string` | `""` | no | +| private\_zone | Is this a private hosted zone? | `bool` | `false` | no | +| target\_dns\_name | DNS name of target resource (e.g. ALB, ELB) | `string` | n/a | yes | +| target\_zone\_id | ID of target resource (e.g. ALB, ELB) | `string` | n/a | yes | ## Outputs | Name | Description | |------|-------------| | hostnames | List of DNS records | -| parent_zone_id | ID of the hosted zone to contain the records | -| parent_zone_name | Name of the hosted zone to contain the records | +| parent\_zone\_id | ID of the hosted zone to contain the records | +| parent\_zone\_name | Name of the hosted zone to contain the records |