Skip to content

Commit 87f48d2

Browse files
celo: ssm cloudwatch setup
1 parent b06ac32 commit 87f48d2

26 files changed

Lines changed: 415 additions & 270 deletions
Lines changed: 81 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,84 +1,91 @@
1-
name: Continuos Deployment Action Production
1+
# WATCH OUT! I have put these workflows out, because I believe it is quite
2+
# dangerous to automatically apply terraform without first carefully inspecting the
3+
# plan. And it is unfortunate, that GitHub actions does not allow me to manually
4+
# trigger a workflow after inspecting the plan.
5+
# So, terraform apply should be done manually from the local machine, after
6+
# inspecting the plan suggested.
27

3-
on:
4-
push:
5-
branches:
6-
- main
7-
paths-ignore:
8-
- "terraform/rollback"
9-
- "terraform/production/rollback"
10-
- "rollback-production.txt"
11-
- "terraform/rollback_last_deployment.sh"
12-
- ".github/workflows/rollback_last_deployment_production.yml"
8+
# name: Continuos Deployment Action Production
139

14-
env:
15-
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_PLAY_DEVOPS }}
16-
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_PLAY_DEVOPS }}
10+
# on:
11+
# push:
12+
# branches:
13+
# - main
14+
# paths-ignore:
15+
# - "terraform/rollback"
16+
# - "terraform/production/rollback"
17+
# - "rollback-production.txt"
18+
# - "terraform/rollback_last_deployment.sh"
19+
# - ".github/workflows/rollback_last_deployment_production.yml"
1720

18-
defaults:
19-
run:
20-
shell: bash
21+
# env:
22+
# AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_PLAY_DEVOPS }}
23+
# AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_PLAY_DEVOPS }}
2124

22-
jobs:
23-
deploy:
24-
runs-on: ubuntu-latest
25-
environment: production
26-
# environment: xxxx can we set this? Is this useful?
27-
env:
28-
ETHEREUM_PEM: ${{ secrets.ETHEREUM_PEM }}
29-
ENVIRONMENT: production
30-
GF_SECURITY_ADMIN_USER: "${{ secrets.GF_SECURITY_ADMIN_USER }}"
31-
GF_SECURITY_ADMIN_PASSWORD: "${{ secrets.GF_SECURITY_ADMIN_PASSWORD }}"
32-
PROMETHEUS_ADMIN_PASSWORD: "${{ secrets.PROMETHEUS_ADMIN_PASSWORD }}"
33-
PROMETHEUS_ADMIN_PASSWORD_BCRYPTED: "${{ secrets.PROMETHEUS_ADMIN_PASSWORD_BCRYPTED }}"
25+
# defaults:
26+
# run:
27+
# shell: bash
3428

35-
steps:
36-
# -------------------
37-
- name: Checkout code
38-
uses: actions/checkout@v4
29+
# jobs:
30+
# deploy:
31+
# runs-on: ubuntu-latest
32+
# environment: production
33+
# # environment: xxxx can we set this? Is this useful?
34+
# env:
35+
# ETHEREUM_PEM: ${{ secrets.ETHEREUM_PEM }}
36+
# ENVIRONMENT: production
37+
# GF_SECURITY_ADMIN_USER: "${{ secrets.GF_SECURITY_ADMIN_USER }}"
38+
# GF_SECURITY_ADMIN_PASSWORD: "${{ secrets.GF_SECURITY_ADMIN_PASSWORD }}"
39+
# PROMETHEUS_ADMIN_PASSWORD: "${{ secrets.PROMETHEUS_ADMIN_PASSWORD }}"
40+
# PROMETHEUS_ADMIN_PASSWORD_BCRYPTED: "${{ secrets.PROMETHEUS_ADMIN_PASSWORD_BCRYPTED }}"
3941

40-
# ------------------------------------
41-
- name: Install Terraform
42-
uses: hashicorp/setup-terraform@v3
43-
with:
44-
terraform_version: 1.13.1
45-
terraform_wrapper: false
42+
# steps:
43+
# # -------------------
44+
# - name: Checkout code
45+
# uses: actions/checkout@v4
4646

47-
# ---------------------
48-
- name: Terraform init
49-
run: |
50-
cd terraform
51-
cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
52-
. ./.envrc.good
53-
cd ${{ env.ENVIRONMENT }}
54-
cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
55-
. ./.envrc.good
56-
unset AWS_PROFILE
57-
terraform init
47+
# # ------------------------------------
48+
# - name: Install Terraform
49+
# uses: hashicorp/setup-terraform@v3
50+
# with:
51+
# terraform_version: 1.13.1
52+
# terraform_wrapper: false
5853

59-
- name: private key for ec2 access
60-
run: echo '${{ env.ETHEREUM_PEM }}' > ./terraform/${{ env.ENVIRONMENT }}/ethereum.pem
54+
# # ---------------------
55+
# - name: Terraform init
56+
# run: |
57+
# cd terraform
58+
# cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
59+
# . ./.envrc.good
60+
# cd ${{ env.ENVIRONMENT }}
61+
# cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
62+
# . ./.envrc.good
63+
# unset AWS_PROFILE
64+
# terraform init
6165

62-
# ---------------------
63-
- name: Terraform plan
64-
run: |
65-
cd terraform
66-
cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
67-
. ./.envrc.good
68-
cd ${{ env.ENVIRONMENT }}
69-
cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
70-
. ./.envrc.good
71-
unset AWS_PROFILE
72-
terraform plan -out planfile
66+
# - name: private key for ec2 access
67+
# run: echo '${{ env.ETHEREUM_PEM }}' > ./terraform/${{ env.ENVIRONMENT }}/ethereum.pem
7368

74-
# ---------------------
75-
- name: Terraform apply
76-
run: |
77-
cd terraform
78-
cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
79-
. ./.envrc.good
80-
cd ${{ env.ENVIRONMENT }}
81-
cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
82-
. ./.envrc.good
83-
unset AWS_PROFILE
84-
terraform apply -input=false planfile
69+
# # ---------------------
70+
# - name: Terraform plan
71+
# run: |
72+
# cd terraform
73+
# cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
74+
# . ./.envrc.good
75+
# cd ${{ env.ENVIRONMENT }}
76+
# cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
77+
# . ./.envrc.good
78+
# unset AWS_PROFILE
79+
# terraform plan -out planfile
80+
81+
# # ---------------------
82+
# - name: Terraform apply
83+
# run: |
84+
# cd terraform
85+
# cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
86+
# . ./.envrc.good
87+
# cd ${{ env.ENVIRONMENT }}
88+
# cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
89+
# . ./.envrc.good
90+
# unset AWS_PROFILE
91+
# terraform apply -input=false planfile
Lines changed: 81 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,84 +1,91 @@
1-
name: Continuos Deployment Action Staging
1+
# WATCH OUT! I have put these workflows out, because I believe it is quite
2+
# dangerous to automatically apply terraform without first carefully inspecting the
3+
# plan. And it is unfortunate, that GitHub actions does not allow me to manually
4+
# trigger a workflow after inspecting the plan.
5+
# So, terraform apply should be done manually from the local machine, after
6+
# inspecting the plan suggested.
27

3-
on:
4-
push:
5-
branches:
6-
- staging
7-
paths-ignore:
8-
- "terraform/rollback"
9-
- "terraform/staging/rollback"
10-
- "rollback-staging.txt"
11-
- "terraform/rollback_last_deployment.sh"
12-
- ".github/workflows/rollback_last_deployment_staging.yml"
8+
# name: Continuos Deployment Action Staging
139

14-
env:
15-
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_PLAY_DEVOPS }}
16-
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_PLAY_DEVOPS }}
10+
# on:
11+
# push:
12+
# branches:
13+
# - staging
14+
# paths-ignore:
15+
# - "terraform/rollback"
16+
# - "terraform/staging/rollback"
17+
# - "rollback-staging.txt"
18+
# - "terraform/rollback_last_deployment.sh"
19+
# - ".github/workflows/rollback_last_deployment_staging.yml"
1720

18-
defaults:
19-
run:
20-
shell: bash
21+
# env:
22+
# AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_PLAY_DEVOPS }}
23+
# AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_PLAY_DEVOPS }}
2124

22-
jobs:
23-
deploy:
24-
runs-on: ubuntu-latest
25-
environment: staging
26-
# environment: xxxx can we set this? Is this useful?
27-
env:
28-
ETHEREUM_PEM: ${{ secrets.ETHEREUM_PEM }}
29-
ENVIRONMENT: staging
30-
GF_SECURITY_ADMIN_USER: "${{ secrets.GF_SECURITY_ADMIN_USER }}"
31-
GF_SECURITY_ADMIN_PASSWORD: "${{ secrets.GF_SECURITY_ADMIN_PASSWORD }}"
32-
PROMETHEUS_ADMIN_PASSWORD: "${{ secrets.PROMETHEUS_ADMIN_PASSWORD }}"
33-
PROMETHEUS_ADMIN_PASSWORD_BCRYPTED: "${{ secrets.PROMETHEUS_ADMIN_PASSWORD_BCRYPTED }}"
25+
# defaults:
26+
# run:
27+
# shell: bash
3428

35-
steps:
36-
# -------------------
37-
- name: Checkout code
38-
uses: actions/checkout@v4
29+
# jobs:
30+
# deploy:
31+
# runs-on: ubuntu-latest
32+
# environment: staging
33+
# # environment: xxxx can we set this? Is this useful?
34+
# env:
35+
# ETHEREUM_PEM: ${{ secrets.ETHEREUM_PEM }}
36+
# ENVIRONMENT: staging
37+
# GF_SECURITY_ADMIN_USER: "${{ secrets.GF_SECURITY_ADMIN_USER }}"
38+
# GF_SECURITY_ADMIN_PASSWORD: "${{ secrets.GF_SECURITY_ADMIN_PASSWORD }}"
39+
# PROMETHEUS_ADMIN_PASSWORD: "${{ secrets.PROMETHEUS_ADMIN_PASSWORD }}"
40+
# PROMETHEUS_ADMIN_PASSWORD_BCRYPTED: "${{ secrets.PROMETHEUS_ADMIN_PASSWORD_BCRYPTED }}"
3941

40-
# ------------------------------------
41-
- name: Install Terraform
42-
uses: hashicorp/setup-terraform@v3
43-
with:
44-
terraform_version: 1.13.1
45-
terraform_wrapper: false
42+
# steps:
43+
# # -------------------
44+
# - name: Checkout code
45+
# uses: actions/checkout@v4
4646

47-
# ---------------------
48-
- name: Terraform init
49-
run: |
50-
cd terraform
51-
cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
52-
. ./.envrc.good
53-
cd ${{ env.ENVIRONMENT }}
54-
cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
55-
. ./.envrc.good
56-
unset AWS_PROFILE
57-
terraform init
47+
# # ------------------------------------
48+
# - name: Install Terraform
49+
# uses: hashicorp/setup-terraform@v3
50+
# with:
51+
# terraform_version: 1.13.1
52+
# terraform_wrapper: false
5853

59-
- name: private key for ec2 access
60-
run: echo '${{ env.ETHEREUM_PEM }}' > ./terraform/${{ env.ENVIRONMENT }}/ethereum.pem
54+
# # ---------------------
55+
# - name: Terraform init
56+
# run: |
57+
# cd terraform
58+
# cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
59+
# . ./.envrc.good
60+
# cd ${{ env.ENVIRONMENT }}
61+
# cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
62+
# . ./.envrc.good
63+
# unset AWS_PROFILE
64+
# terraform init
6165

62-
# ---------------------
63-
- name: Terraform plan
64-
run: |
65-
cd terraform
66-
cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
67-
. ./.envrc.good
68-
cd ${{ env.ENVIRONMENT }}
69-
cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
70-
. ./.envrc.good
71-
unset AWS_PROFILE
72-
terraform plan -out planfile
66+
# - name: private key for ec2 access
67+
# run: echo '${{ env.ETHEREUM_PEM }}' > ./terraform/${{ env.ENVIRONMENT }}/ethereum.pem
7368

74-
# ---------------------
75-
- name: Terraform apply
76-
run: |
77-
cd terraform
78-
cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
79-
. ./.envrc.good
80-
cd ${{ env.ENVIRONMENT }}
81-
cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
82-
. ./.envrc.good
83-
unset AWS_PROFILE
84-
terraform apply -input=false planfile
69+
# # ---------------------
70+
# - name: Terraform plan
71+
# run: |
72+
# cd terraform
73+
# cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
74+
# . ./.envrc.good
75+
# cd ${{ env.ENVIRONMENT }}
76+
# cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
77+
# . ./.envrc.good
78+
# unset AWS_PROFILE
79+
# terraform plan -out planfile
80+
81+
# # ---------------------
82+
# - name: Terraform apply
83+
# run: |
84+
# cd terraform
85+
# cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
86+
# . ./.envrc.good
87+
# cd ${{ env.ENVIRONMENT }}
88+
# cat .envrc | grep -vE '^(dotenv_if_exists|source_env)' > .envrc.good
89+
# . ./.envrc.good
90+
# unset AWS_PROFILE
91+
# terraform apply -input=false planfile

docs/TODO.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
- [ ] Grafana Dashboards
2+
- [ ] `celo-sepolia`
3+
- [ ] `celo`
4+
- [ ] Under/Over-provisioning. Need to make sure that all nodes are well provisioned.
5+
- [ ] Testnets
6+
- [ ] `sepolia`
7+
- [ ] `base-sepolia`
8+
- [ ] `celo-sepolia`
9+
- [ ] Mainnets
10+
- [ ] `mainnet`
11+
- [ ] `base`
12+
- [ ] `celo-mainnet`
13+
- [ ] Latest `reth` version. Upgrade `reth` to latest version.
14+
- [ ] Testnets
15+
- [ ] `sepolia`
16+
- [ ] `base-sepolia`
17+
- [ ] Mainnets
18+
- [ ] `mainnet`
19+
- [ ] `base`
20+
- [ ] CloudWatch Logs
21+
- [ ] Testnets
22+
- [ ] `celo-sepolia`
23+
- [ ] `op-geth`
24+
- [ ] `nginx`
25+
- [ ] `access`
26+
- [ ] `error`
27+
- [ ] `ssm-agent`
28+
- [ ] success
29+
- [ ] `error`
30+
- [ ] Mainnets
31+
- [ ] `celo-mainnet`
32+
- [ ] `op-geth`
33+
- [ ] `nginx`
34+
- [ ] `access`
35+
- [ ] `error`
36+
- [ ] `ssm-agent`
37+
- [ ] success
38+
- [ ] `error`
39+
- [ ] CloudWatch Agent
40+
- [ ] Testnets
41+
- [ ] `celo-sepolia`
42+
- [ ] Mainnets
43+
- [ ] `celo-mainnet`
44+
- [ ] Metrics Exporter
45+
- [ ] Testnets
46+
- [ ] `celo-sepolia`
47+
- [ ] Mainnets
48+
- [ ] `celo-mainnet`
49+
- [ ] Alarms
50+
- [ ] Testnets
51+
- [ ] `celo-sepolia`
52+
- [ ] CPU
53+
- [ ] Memory
54+
- [ ] Disk Storage Low
55+
- [ ] `/data`
56+
- [ ] `/`
57+
- [ ] `sepolia`
58+
- [ ] `staging_ethereum` alarms to be renamed to `staging_sepolia`
59+
- [ ] Mainnets
60+
- [ ] `celo-mainnet`
61+
- [ ] CPU
62+
- [ ] Memory
63+
- [ ] Disk Storage Low
64+
- [ ] `/data`
65+
- [ ] `/`
66+
- [ ] `mainnet`
67+
- [ ] `production_ethereum` alarms to be renamed to `production_mainnet`

0 commit comments

Comments
 (0)