sequenceDiagram
participant nginx
participant py-hosts-creater
critical ① 初期設定
Note over py-hosts-creater: configのmount(/etc/create_hosts/config) TTL設定など
Note over py-hosts-creater: hosts_listのmount(/etc/create_hosts/hosts_list) 解決したいアドレスリスト
nginx->>py-hosts-creater: ※/etc/hostsは同じものを参照している
Note over py-hosts-creater: /etc/hostsを/etc/create_hosts/にbase_hostsとしてコピーする
Note over py-hosts-creater: 【GET_RDS_ENDPOINT】Trueならrds_hosts_listに設定されたクレデンシャルのRDSのエンドポイントを列挙する
end
loop ② CREATE_HOST_TTL秒の間隔で実行
Note over py-hosts-creater: base_hostsから編集用のファイルhostsをコピーして作成
Note over py-hosts-creater: hostsファイルを開く
Note over py-hosts-creater: hosts_listを開く
Note over py-hosts-creater: hosts_listを1行ずつ名前解決し、成功したらhostsに追記する
Note over py-hosts-creater: 【GET_RDS_ENDPOINT】rds_hosts_listを開く
Note over py-hosts-creater: 【GET_RDS_ENDPOINT】rds_hosts_listを1行ずつ名前解決し、成功したらhostsに追記する
Note over py-hosts-creater: 全て名前解決成功し終えたら、/etc/hostsに上書きコピーする
py-hosts-creater->>nginx: ※nginxのhostsも更新される
Note over py-hosts-creater: hostsファイルのvalidate
end
example
[DEFAULT]
TTL = 10
GET_RDS_ENDPOINT = True
GET_REDIS_ENDPOINT = True
[RDS]
CLOUD_ENV = aws
SELECT_TAG_KEY =
SELECT_TAG_VALUE =
[REDIS]
CLOUD_ENV = aws
SELECT_TAG_KEY =
SELECT_TAG_VALUE =
| param | description | default | Note |
|---|---|---|---|
| TTL | 何秒間隔でhostsを書き換えるか | 10 | config.ini > 環境変数($CREATE_HOST_TTL)の優先順位。いずれも見つからない場合にデフォルト値を利用する |
| GET_RDS_ENDPOINT | RDSのendpointを取得するかどうか | False | true/falseの文字列で大文字小文字は問わない。true以外ならfalse扱い |
| GET_REDIS_ENDPOINT | Redisのendpointを取得するかどうか | False | 〃(※GET_RDS_ENDPOINTと同様) |
| CLOUD_ENV | RDSのクラウドサービスの種類。現状AWSのみ | aws | 大文字小文字は問わない。誤った文字列を指定するとPodは終了する |
| SELECT_TAG_KEY | rdsに設定されたタグのkey名。指定しない場合は空にする | ||
| SELECT_TAG_VALUE | rdsに設定されたタグのvalue名。指定しない場合は空にする |
IAM roleでやる場合は
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"rds:DescribeDBInstances",
"elasticache:DescribeCacheClusters",
"elasticache:ListTagsForResource"
],
"Resource": "*"
}
]
}
Content type
Image
Digest
sha256:8892807dc…
Size
49.5 MB
Last updated
over 3 years ago
docker pull rhemsjapan/hosts-creator