Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CodeBuild + CodePipeline + Nginx API Gateway #13

Merged
merged 16 commits into from
Mar 14, 2024
Merged

CodeBuild + CodePipeline + Nginx API Gateway #13

merged 16 commits into from
Mar 14, 2024

Conversation

hellais
Copy link
Member

@hellais hellais commented Mar 7, 2024

Convert to terraform the CodeBuild and CodePipeline projects that were previously created through the web UI (fixes: #12) and add support for an nginx based API gateway (fixes: #7)

To convert CodeBuild and CodePipeline to terraform I made use the of the terraformer tool running it like this:

terraformer import aws --resources=ec2,codebuild,codepipeline,iam --regions=eu-central-1

The output of this tool cannot be used as-is, but instead required a bit of massaging to adapt it to the conventions used in the ooni terraform scripts and hook it up to the existing variables, however it was very helpful to bootstrap the config.

For the nginx API gateway, the actual configuration is still missing, but the general idea is that we will have a Elastic Load Balancer rule to forward requests to the nginx reverse proxy running in EC2 or the dataapi running on ECS.

Note:

As part of this work I also did some refactoring of the names of some of the resources and items inside of the terraform config. In doing so this triggered a destruction and re-creation of all relevant resources, which is I guess a nice lesson learned (I actually saw it from the plan, but was curious to see what would happen).

In the future if we would like to do this kind of refactoring we should be sure to make use of the moved syntax in terraform like this: https://developer.hashicorp.com/terraform/language/modules/develop/refactoring#moved-block-syntax or manually move the state by running terraform mv.

hellais added 3 commits March 7, 2024 14:36
…r creation

The task is updated via a Code Pipeline deploy operation so once it's
created that becomes the new source of truth for it
Copy link

github-actions bot commented Mar 7, 2024

Terraform Run Output 🤖

Format and Style 🖌success

Initialization ⚙️success

Validation 🤖success

Validation Output

$ terraform validate
Success! The configuration is valid.

Plan 📖success

  • undefined
Show Plan

$ terraform plan
Acquiring state lock. This may take a few moments...
Pusher @hellais
Action pull_request
Environment dev
Workflow .github/workflows/check_terraform.yml
Last updated Thu, 14 Mar 2024 07:46:06 GMT

Copy link

github-actions bot commented Mar 7, 2024

Ansible Run Output 🤖

Ansible Playbook Recap 🔍



Ansible playbook output 📖success

Show Execution

$ ansible-playbook playbook.yml --check --diff -i ../tf/modules/ansible_inventory/inventories/inventory-dev.ini
[WARNING]: provided hosts list is empty, only localhost is available. Note that
the implicit localhost does not match 'all'
[WARNING]: Could not match supplied host pattern, ignoring: clickhouse_servers

PLAY [ClickHouse servers] ******************************************************
skipping: no hosts matched

PLAY RECAP *********************************************************************

Pusher @hellais
Action pull_request
Working Directory
Workflow .github/workflows/check_ansible.yml
Last updated Thu, 14 Mar 2024 07:46:38 GMT

hellais and others added 13 commits March 7, 2024 17:20
This PR is to refactor the various resource groups into modules to make
it easier to develop the test environment.

See: #6

Also includes changes implemented by @DecFox

feat: add OONI Dev User for GH actions (#17)

This adds a new IAM user: ooni_dev_user which shall be used as the
github user to run terraform apply. This IAM user has been given minimal
ReadOnly permissions to resources which allow it to successfully run
`terraform plan`

---------

Co-authored-by: DecFox <[email protected]>
@hellais hellais merged commit cc76097 into main Mar 14, 2024
2 checks passed
@hellais hellais deleted the api-gateway branch March 14, 2024 07:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Move Code Build and Code Pipeline setup to terraform Implement API gateway for api.ooni.io
2 participants