Skip to content

Commit adc7ed7

Browse files
authored
Merge pull request #880 from PRX/feat/upgrade_clickhouse_in_place
Script clickhouse updates
2 parents 2aed7a0 + eae9443 commit adc7ed7

File tree

1 file changed

+51
-12
lines changed

1 file changed

+51
-12
lines changed

spire/templates/shared-clickhouse/instance.yml

Lines changed: 51 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
2944
Conditions:
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

Comments
 (0)