@@ -26,6 +26,21 @@ Parameters:
2626 VpcPublicSubnet1Id : { Type: AWS::EC2::Subnet::Id }
2727 SharedClickhouseInstanceSecurityGroupId : { Type: AWS::EC2::SecurityGroup::Id }
2828
29+ Mappings :
30+ # castlehouse git shas:
31+ # https://github.com/PRX/castlehouse/commits/main/
32+ #
33+ # clickhouse server/client versions:
34+ # https://packages.clickhouse.com/deb/dists/stable/main/binary-amd64/Packages
35+ # yum list clickhouse-server --showduplicates
36+ VersionMap :
37+ Staging :
38+ Castlehouse : 650fb00
39+ Clickhouse : 25.10.3.100
40+ Production :
41+ Castlehouse : d5de04b
42+ Clickhouse : 25.10.2.65
43+
2944Conditions :
3045 EnableNestedChangeSetScrubbingResources : !Equals [!Ref NestedChangeSetScrubbingResourcesState, Enabled]
3146 IsPrimaryRegion : !Equals [!Ref RegionMode, Primary]
@@ -116,14 +131,42 @@ Resources:
116131 - developer_keys : !Join ["\n", !Ref AuthorizedKeys]
117132 02_install_clickhouse :
118133 # https://clickhouse.com/docs/en/install#from-rpm-packages
119- command : |
120- #!/bin/bash
121- if ! command -v clickhouse-server &> /dev/null; then
122- yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo
123- yum install -y clickhouse-server clickhouse-client
124- systemctl enable clickhouse-server
125- systemctl start clickhouse-server
126- fi
134+ command : !Sub
135+ - |-
136+ #!/bin/bash
137+ if ! yum list installed clickhouse-server | grep ${clickhouse_version} &> /dev/null; then
138+ yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo
139+
140+ echo "upgrading to clickhouse-server-${clickhouse_version}"
141+ yum install -y clickhouse-server-${clickhouse_version} clickhouse-client-${clickhouse_version}
142+ export NEEDS_RESTART=true
143+ fi
144+
145+ export CONFIG_PATH=/etc/clickhouse-server/config.d/override-config.xml
146+ export CONFIG_URL=https://raw.githubusercontent.com/PRX/castlehouse/${castlehouse_version}/override-config.xml
147+ if ! diff $CONFIG_PATH <(curl -s $CONFIG_URL) &> /dev/null; then
148+ echo "updating to override-config.xml ${castlehouse_version}"
149+ curl -so $CONFIG_PATH $CONFIG_URL
150+ export NEEDS_RESTART=true
151+ fi
152+
153+ export USERS_PATH=/etc/clickhouse-server/users.d/override-users.xml
154+ export USERS_URL=https://raw.githubusercontent.com/PRX/castlehouse/${castlehouse_version}/override-users.xml
155+ if ! diff $USERS_PATH <(curl -s $USERS_URL) &> /dev/null; then
156+ echo "updating to override-users.xml ${castlehouse_version}"
157+ curl -so $USERS_PATH $USERS_URL
158+ export NEEDS_RESTART=true
159+ fi
160+
161+ if [ "$NEEDS_RESTART" = "true" ]; then
162+ echo "restarting clickhouse-server"
163+ systemctl enable clickhouse-server
164+ systemctl stop clickhouse-server
165+ systemctl start clickhouse-server
166+ echo "success!"
167+ fi
168+ - clickhouse_version : !FindInMap [VersionMap, !Ref EnvironmentType, Clickhouse]
169+ castlehouse_version : !FindInMap [VersionMap, !Ref EnvironmentType, Castlehouse]
127170 03_setup_schema :
128171 # https://github.com/PRX/castlehouse/tree/main
129172 command : !Sub |
@@ -240,10 +283,6 @@ Resources:
240283 Environment="GOOGLE_STORAGE_BUCKET_ENDPOINT=https://storage.googleapis.com/${GoogleStorageBucket}"
241284 Environment="GOOGLE_STORAGE_HMAC_KEY_ID=${GoogleStorageHmacKeyId}"
242285 Environment="GOOGLE_STORAGE_HMAC_KEY_SECRET=${GoogleStorageHmacKeySecret}"
243- /etc/clickhouse-server/config.d/override-config.xml :
244- source : https://raw.githubusercontent.com/PRX/castlehouse/main/override-config.xml
245- /etc/clickhouse-server/users.d/override-users.xml :
246- source : https://raw.githubusercontent.com/PRX/castlehouse/main/override-users.xml
247286 packages :
248287 yum :
249288 jq : []
0 commit comments