StackStorm / stackstorm-k8s

K8s Helm Chart that codifies StackStorm (aka "IFTTT for Ops" https://stackstorm.com/) Highly Availability fleet as a simple to use reproducible infrastructure-as-code app
https://helm.stackstorm.com/
Apache License 2.0
99 stars 107 forks source link

More detailed "Releasing information" #402

Open mamercad opened 6 months ago

mamercad commented 6 months ago

Add more details, including command examples, to step 4 of Releasing information to follow for the next release. Links to the upstream documentation are nice, but, it'd be nicer to have a series of commands.

Perhaps somewhere in the README.md we also include some of the basic Helm commands:

helm repo add stackstorm https://helm.stackstorm.com/
helm repo list
helm repo update
helm search repo stackstorm
helm install my-stackstorm-ha stackstorm/stackstorm-ha --version 1.0.0
cognifloyd commented 6 months ago

Here's what I did for the most recent release:

I created a github release, and told github to create the tag when publishing the release.

Then prepare the keyring in a format helm can handle:

# get the dsa3072 gpg key from 1password (helm does not support ed25519 keys)
gpg --import private.gpg
# export the key into a gpg v1 keyring because helm does not support the gpg v2 format
gpg --export-secret-key "info@stackstorm.com" > ~/.gnupg/st2-secring.gpg

Then, in your clone of the stackstorm-k8s repo, on the master branch (where the latest commit should be the commit you just released/tagged):

helm package -d index --sign . --key "info@stackstorm.com" --keyring ~/.gnupg/st2-secring.gpg
git checkout gh-pages
mv index/* ./
rmdir index
# remove the 3rd party charts so that helm doesn't try to include them in the index
rm -r charts/
helm repo index . --merge=index.yaml

For some irritating reason I haven't figured out, helm changes the timestamps on all entries in the index. So, I only commit the newest entry for the helm package I just created, and the overall index timestamp at the end of the file.

git add stackstorm-ha-1.0.0.tgz{,.prov}
git add --patch index.yaml
git commit -m 'release v1.0.0'
# get rid of all the unnecessary timestamp changes
git checkout -- index.yaml
git push