Skip to content

Commit 341657f

Browse files
authored
Merge pull request #1935 from cmu-delphi/release/indicators_v0.3.51_utils_v0.3.22
Release covidcast-indicators 0.3.51
2 parents d566a59 + 8eba482 commit 341657f

20 files changed

+367
-307
lines changed

.bumpversion.cfg

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[bumpversion]
2-
current_version = 0.3.50
2+
current_version = 0.3.51
33
commit = True
44
message = chore: bump covidcast-indicators to {new_version}
55
tag = False

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,8 @@ venv.bak/
129129
.retry
130130
.indicators-ansible-vault-pass
131131
indicators-ansible-vault-pass
132+
vault_plain*
133+
vault_backup*
132134

133135
# testing_utils
134136
testing_utils/cache

ansible/README.md

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
# Ansible
2+
3+
Ansible is used in the indicators deployment process.
4+
5+
It aids in:
6+
7+
- Setting up staging and production systems to run the indicators.
8+
- Placing templated indicators params files onto staging and production systems.
9+
- Managing secrets.
10+
11+
## Managing secrets with ansible-vault
12+
13+
The deployment process uses [`ansible-vault`](https://docs.ansible.com/ansible/latest/vault_guide/index.html) and a corresponding file of `vault.yaml` to write secrets into template files that are placed onto staging and production systems. `vault.yaml` should always be encrypted.
14+
15+
To work with secrets in this repo you should follow one of these processes:
16+
17+
1. Work with systems administrators to add secrets.
18+
19+
OR
20+
21+
2. Obtain the vault decryption password and use the helper scripts.
22+
23+
- Make sure you are in the repo's `ansible` directory.
24+
25+
```shell
26+
cd $(git rev-parse --show-toplevel)/ansible
27+
```
28+
29+
- Use the helper scripts to:
30+
31+
- Decrypt to `vault_plain.yaml` - Creates a .gitgnored "plain" file for editing. Also a backup directory and backup file if possible.
32+
33+
```shell
34+
bash vault-decrypt.sh
35+
```
36+
37+
- Make your changes in `vault_plain.yaml`
38+
39+
- Encrypt to a new `vault.yaml` - Creates a new encrypted vault file suitable for committing. Also creates a backup directory and backup file if possible.
40+
41+
```shell
42+
bash vault-encrypt.sh
43+
```

ansible/templates/changehc-params-prod.json.j2

+3-3
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,10 @@
6262
},
6363
"archive": {
6464
"aws_credentials": {
65-
"aws_access_key_id": "{{ delphi_aws_access_key_id }}",
66-
"aws_secret_access_key": "{{ delphi_aws_secret_access_key }}"
65+
"aws_access_key_id": "{{ archive_differ_bucket_user_access_key_id }}",
66+
"aws_secret_access_key": "{{ archive_differ_bucket_user_secret_access_key }}"
6767
},
68-
"bucket_name": "delphi-covidcast-indicator-output",
68+
"bucket_name": "{{ archive_differ_bucket_name }}",
6969
"cache_dir": "./cache",
7070
"indicator_prefix": "delphi_changehc"
7171
}

ansible/templates/hhs_hosp-params-prod.json.j2

+3-3
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@
2222
},
2323
"archive": {
2424
"aws_credentials": {
25-
"aws_access_key_id": "{{ delphi_aws_access_key_id }}",
26-
"aws_secret_access_key": "{{ delphi_aws_secret_access_key }}"
25+
"aws_access_key_id": "{{ archive_differ_bucket_user_access_key_id }}",
26+
"aws_secret_access_key": "{{ archive_differ_bucket_user_secret_access_key }}"
2727
},
28-
"bucket_name": "delphi-covidcast-indicator-output",
28+
"bucket_name": "{{ archive_differ_bucket_name }}",
2929
"cache_dir": "./cache",
3030
"indicator_prefix": "delphi_hhs_hosp"
3131
}

ansible/templates/nchs_mortality-params-prod.json.j2

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@
1111
},
1212
"archive": {
1313
"aws_credentials": {
14-
"aws_access_key_id": "{{ delphi_aws_access_key_id }}",
15-
"aws_secret_access_key": "{{ delphi_aws_secret_access_key }}"
14+
"aws_access_key_id": "{{ archive_differ_bucket_user_access_key_id }}",
15+
"aws_secret_access_key": "{{ archive_differ_bucket_user_secret_access_key }}"
1616
},
17-
"bucket_name": "delphi-covidcast-indicator-output",
17+
"bucket_name": "{{ archive_differ_bucket_name }}",
1818
"daily_cache_dir": "./daily_cache",
1919
"weekly_cache_dir": "./cache"
2020
}

ansible/templates/quidel_covidtest-params-prod.json.j2

+3-3
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,10 @@
5454
},
5555
"archive": {
5656
"aws_credentials": {
57-
"aws_access_key_id": "{{ delphi_aws_access_key_id }}",
58-
"aws_secret_access_key": "{{ delphi_aws_secret_access_key }}"
57+
"aws_access_key_id": "{{ archive_differ_bucket_user_access_key_id }}",
58+
"aws_secret_access_key": "{{ archive_differ_bucket_user_secret_access_key }}"
5959
},
60-
"bucket_name": "delphi-covidcast-indicator-output",
60+
"bucket_name": "{{ archive_differ_bucket_name }}",
6161
"cache_dir": "./archivediffer_cache",
6262
"indicator_prefix": "quidel"
6363
},

ansible/vars.yaml

+10-2
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ safegraph_aws_secret_access_key: "{{ vault_safegraph_aws_secret_access_key }}"
2828
# Quidel
2929
quidel_aws_access_key_id: "{{ vault_quidel_aws_access_key_id }}"
3030
quidel_aws_secret_access_key: "{{ vault_quidel_aws_secret_access_key }}"
31-
quidel_aws_bucket_name: 'delphi-quidel-data'
31+
quidel_aws_bucket_name: "delphi-quidel-data"
3232

3333
# Change Healthcare
3434
changehc_sftp_host: "{{ vault_changehc_sftp_host }}"
@@ -51,7 +51,10 @@ doctor_visits_midas_user: "{{ vault_doctor_visits_midas_user }}"
5151
doctor_visits_midas_password: "{{ vault_doctor_visits_midas_password }}"
5252

5353
# NCHS
54-
nchs_mortality_token: "{{ vault_nchs_mortality_token }}"
54+
nchs_mortality_token: "{{ vault_cdc_socrata_token }}"
55+
56+
# NWSS
57+
nwss_wastewater_token: "{{ vault_cdc_socrata_token }}"
5558

5659
# SirCAL
5760
sir_complainsalot_api_key: "{{ vault_sir_complainsalot_api_key }}"
@@ -90,3 +93,8 @@ grb_wlssecret: "{{ vault_grb_wlssecret }}"
9093
backfillcorr_aws_access_key_id: "{{ vault_backfillcorr_aws_access_key_id }}"
9194
backfillcorr_aws_secret_access_key: "{{ vault_backfillcorr_aws_secret_access_key }}"
9295
backfillcorr_aws_bucket_name: "{{ vault_backfillcorr_aws_bucket_name }}"
96+
97+
# Archive differ S3 bucket
98+
archive_differ_bucket_user_access_key_id: "{{ vault_archive_differ_bucket_user_access_key_id }}"
99+
archive_differ_bucket_user_secret_access_key: "{{ vault_archive_differ_bucket_user_secret_access_key }}"
100+
archive_differ_bucket_name: 'delphi-covidcast-indicator-output-scsdr'

ansible/vault-decrypt.sh

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/bin/sh
2+
3+
# Create backup directory and copy vault_plain.yaml if it exists.
4+
if [ -f vault_plain.yaml ]; then
5+
echo "Creating backup of vault_plain.yaml..."
6+
mkdir -p vault_backup
7+
cp -Rvp vault_plain.yaml \
8+
"vault_backup/vault_plain.yaml.backup-$(date -u +%Y-%m-%d_T%H-%M-%S_%Z)"
9+
fi
10+
11+
# Create a new/overwrite vault_plain.yaml using vault.yaml as the source.
12+
ansible-vault decrypt --output vault_plain.yaml vault.yaml

ansible/vault-encrypt.sh

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/bin/sh
2+
3+
# Create backup directory and copy vault.yaml if it exists.
4+
if [ -f vault.yaml ]; then
5+
echo "Creating backup of vault.yaml..."
6+
mkdir -p vault_backup
7+
cp -Rvp vault.yaml \
8+
"vault_backup/vault.yaml.backup-$(date -u +%Y-%m-%d_T%H-%M-%S_%Z)"
9+
fi
10+
11+
# Create a new/overwrite vault.yaml using vault_plain.yaml as the source.
12+
ansible-vault encrypt --output vault.yaml vault_plain.yaml

0 commit comments

Comments
 (0)