-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into szymon/versioning
- Loading branch information
Showing
9 changed files
with
284 additions
and
18 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
name: ChatOps Dispatcher | ||
|
||
on: | ||
issue_comment: | ||
types: | ||
- created | ||
|
||
jobs: | ||
slash-command-dispatch: | ||
name: Slash Command Dispatcher | ||
runs-on: ubuntu-latest | ||
permissions: | ||
pull-requests: write | ||
steps: | ||
- name: Slash Command Dispatch | ||
uses: peter-evans/slash-command-dispatch@v4 | ||
with: | ||
token: ${{ secrets.WANDB_RELEASE_TOKEN }} | ||
reaction-token: ${{ secrets.WANDB_RELEASE_TOKEN }} | ||
commands: | | ||
test | ||
destroy | ||
help | ||
permission: maintain | ||
issue-type: pull-request | ||
event-type-suffix: -command |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
name: Pull Request Help Handler | ||
|
||
on: | ||
repository_dispatch: | ||
types: | ||
- help-command | ||
|
||
jobs: | ||
help: | ||
name: Run help | ||
runs-on: ubuntu-latest | ||
permissions: | ||
pull-requests: write | ||
steps: | ||
- name: Update comment | ||
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0 | ||
with: | ||
token: ${{ secrets.WANDB_RELEASE_TOKEN }} | ||
repository: ${{ github.event.client_payload.github.payload.repository.full_name }} | ||
comment-id: ${{ github.event.client_payload.github.payload.comment.id }} | ||
body: | | ||
> | Command | Description | | ||
> | ------- | ----------- | | ||
> | /test [destroy=false] | Run the Terraform test workflow on the modules in the tests/ The named argument "destroy=false" will disable the destruction of test infrastructure for debugging purposes. | | ||
> | /destroy | Destroy any resources that may still be in Terraform state from previous tests | | ||
> | /help | Shows this help message | | ||
reactions: confused |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
name: Pull Request Test Handler | ||
|
||
on: | ||
repository_dispatch: | ||
types: | ||
- test-command | ||
|
||
env: | ||
GOOGLE_SERVICE_ACCOUNT: "[email protected]" | ||
TF_TOKEN_app_terraform_io: ${{ secrets.TFE_TOKEN }} | ||
|
||
jobs: | ||
public-dns-with-cloud-dns: | ||
name: Public DNS with Cloud DNS | ||
runs-on: ubuntu-latest | ||
|
||
defaults: | ||
run: | ||
working-directory: ./tests/public-dns | ||
|
||
steps: | ||
- name: Create URL to the run output | ||
id: vars | ||
run: echo "run-url=https://github.com/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID" >> $GITHUB_OUTPUT | ||
|
||
- name: Display Action URL | ||
if: ${{ always() }} | ||
uses: peter-evans/create-or-update-comment@v4 | ||
with: | ||
token: ${{ secrets.WANDB_RELEASE_TOKEN }} | ||
repository: ${{ github.event.client_payload.github.payload.repository.full_name }} | ||
comment-id: ${{ github.event.client_payload.github.payload.comment.id }} | ||
body: | | ||
${{ format('### Public DNS Terraform Google - Test Report', job.status == 'success' && ':white_check_mark:' || ':x:') }} | ||
${{ format(':link: [Action Summary Page]({0})', steps.vars.outputs.run-url) }} | ||
- name: Checkout code | ||
uses: actions/checkout@v2 | ||
with: | ||
repository: ${{ github.event.client_payload.pull_request.head.repo.full_name }} | ||
ref: ${{ github.event.client_payload.pull_request.head.sha }} | ||
persist-credentials: false | ||
|
||
- name: Setup Terraform | ||
uses: hashicorp/setup-terraform@v1 | ||
with: | ||
terraform_version: "~1" | ||
|
||
- name: Install k6 for load testing | ||
env: | ||
K6_URL: https://github.com/loadimpact/k6/releases/download/v0.31.1/k6-v0.31.1-linux64.tar.gz | ||
run: | | ||
sudo apt-get install jq | ||
curl -L $K6_URL | tar -xz --strip-components=1 | ||
- name: Authenticate with Google Cloud | ||
id: auth | ||
uses: google-github-actions/auth@v2 | ||
with: | ||
credentials_json: "${{ secrets.GOOGLE_TESTING_SA_CREDENTIALS }}" | ||
|
||
- name: Set up Cloud SDK | ||
uses: google-github-actions/setup-gcloud@v2 | ||
|
||
- name: Terraform Init | ||
id: init | ||
run: terraform init -input=false -no-color | ||
|
||
- name: Terraform Validate | ||
id: validate | ||
run: terraform validate -no-color | ||
|
||
- name: Terraform Apply | ||
id: apply | ||
run: terraform apply -auto-approve -input=false -no-color | ||
|
||
- name: Retrieve Health Check URL | ||
id: retrieve-health-check-url | ||
run: | | ||
terraform output -no-color -raw health_check_url | ||
- name: Terraform Destroy | ||
id: destroy | ||
if: ${{ always() && github.event.client_payload.slash_command.args.named.destroy != 'false' }} | ||
run: terraform destroy -auto-approve -input=false -no-color | ||
|
||
- name: Update comment | ||
if: ${{ always() }} | ||
uses: peter-evans/create-or-update-comment@v4 | ||
with: | ||
token: ${{ secrets.WANDB_RELEASE_TOKEN }} | ||
repository: ${{ github.event.client_payload.github.payload.repository.full_name }} | ||
comment-id: ${{ github.event.client_payload.github.payload.comment.id }} | ||
body: | | ||
${{ format('- {0} Terraform Init', steps.init.outcome == 'success' && ':white_check_mark:' || ':x:') }} | ||
${{ format('- {0} Terraform Validate', steps.validate.outcome == 'success' && ':white_check_mark:' || ':x:') }} | ||
${{ format('- {0} Terraform Apply', steps.apply.outcome == 'success' && ':white_check_mark:' || ':x:') }} | ||
${{ github.event.client_payload.slash_command.args.named.destroy != 'false' && format('- {0} Terraform Destroy', steps.destroy.outcome == 'success' && ':white_check_mark:' || ':x:') || '' }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
name: Terraform Lint Check | ||
|
||
on: [push] | ||
|
||
jobs: | ||
tflint: | ||
name: Run tflint | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v2 | ||
|
||
- name: Setup Terraform | ||
uses: hashicorp/setup-terraform@v1 | ||
with: | ||
terraform_version: "~1" | ||
|
||
- name: Install tflint | ||
run: | | ||
curl -s https://raw.githubusercontent.com/terraform-linters/tflint/master/install_linux.sh | bash | ||
- name: Run tflint | ||
run: tflint |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# TEST: Public DNS deployment of W&B | ||
|
||
## About This Test | ||
|
||
## Prerequisites | ||
|
||
## How This Test Is Used | ||
|
||
This test is leveraged by this repository's continuous integration setup which | ||
leverages workspaces in a Terraform Cloud workspaces as a remote backend so that | ||
Terraform state is preserved. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
provider "google" {} | ||
provider "google-beta" {} | ||
|
||
resource "random_pet" "main" { | ||
length = 1 | ||
prefix = "tgw-pd" | ||
separator = "-" | ||
} | ||
|
||
variable "license" { | ||
type = string | ||
} | ||
|
||
locals { | ||
labels = { | ||
oktodelete = "true" | ||
department = "engineering" | ||
product = "server" | ||
repository = "terraform-google-wandb" | ||
description = "public-dns" | ||
environment = "test" | ||
} | ||
|
||
subdomain = "tgw-pd" | ||
|
||
project = "playground-111" | ||
} | ||
|
||
data "google_dns_managed_zone" "default" { | ||
project = local.project | ||
name = "wandb-ml" | ||
} | ||
|
||
# Create A record which points to lb ip address | ||
resource "google_dns_record_set" "a" { | ||
project = local.project | ||
name = "${local.subdomain}.${data.google_dns_managed_zone.default.dns_name}" | ||
managed_zone = data.google_dns_managed_zone.default.name | ||
type = "A" | ||
ttl = 60 | ||
rrdatas = [module.wandb.address] | ||
} | ||
|
||
module "wandb" { | ||
source = "../.." | ||
|
||
namespace = random_pet.main.id | ||
license = var.license | ||
domain_name = "wandb.ml" | ||
subdomain = local.subdomain | ||
|
||
create_redis = true | ||
use_internal_queue = true | ||
|
||
deletion_protection = false | ||
|
||
labels = local.labels | ||
} | ||
|
||
output "url" { | ||
value = module.wandb.url | ||
} | ||
|
||
output "health_check_url" { | ||
value = "${module.wandb.url}/health" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
terraform { | ||
required_version = ">= 0.14" | ||
|
||
cloud { | ||
organization = "weights-and-biases" | ||
|
||
workspaces { | ||
name = "terraform-google-wandb-public-dns" | ||
} | ||
} | ||
} |