Skip to content

Commit d11a805

Browse files
Update the Release Guide about the Helm Chart package (#2179)
* Update the Release Guide about the Helm Chart package * Update release-guide.md Co-authored-by: Pierre Laporte <pierre@pingtimeout.fr> * Add missing commit message * Whitespace * Use Helm GPG plugin to sign the Helm chart * Fix directories during Helm chart copy to SVN * Add Helm index to SVN * Use long name for svn checkout * Ensure the Helm index is updated after the chart is moved to SVN dist release * Do not publish any Docker image before the vote succeeds * Typos * Revert "Do not publish any Docker image before the vote succeeds" This reverts commit 5617e65. * Don't mention Helm values.yaml in the release guide as it doesn't contain version details --------- Co-authored-by: Pierre Laporte <pierre@pingtimeout.fr>
1 parent d9ea304 commit d11a805

File tree

1 file changed

+70
-15
lines changed

1 file changed

+70
-15
lines changed

site/content/release-guide.md

Lines changed: 70 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,12 @@ To create a release candidate, you will need:
2828
* your Apache credentials (for repository.apache.org and dist.apache.org repositories)
2929
* a [GPG key](https://www.apache.org/dev/release-signing#generate) for signing artifacts, published in [KEYS](https://downloads.apache.org/incubator/polaris/KEYS) file
3030

31+
### Publish your GPG key
32+
3133
If you haven't published your GPG key yet, you must publish it before starting the release process:
3234

3335
```
34-
svn co https://dist.apache.org/repos/dist/release/incubator/polaris polaris-dist-release
36+
svn checkout https://dist.apache.org/repos/dist/release/incubator/polaris polaris-dist-release
3537
cd polaris-dist-release
3638
echo "" >> KEYS # append a new line
3739
gpg --list-sigs <YOUR KEY ID HERE> >> KEYS # append signatures
@@ -42,7 +44,6 @@ svn commit -m "add key for <YOUR NAME HERE>"
4244
To send the key to the Ubuntu key-server, Apache Nexus needs it to validate published artifacts:
4345
```
4446
gpg --keyserver hkps://keyserver.ubuntu.com --send-keys <YOUR KEY ID HERE>
45-
4647
```
4748

4849
### Dist repository
@@ -74,7 +75,7 @@ export ORG_GRADLE_PROJECT_apachePassword=bar
7475

7576
### PGP signing
7677

77-
During release process, the artifacts will be signed with your key, eventually using `gpg-agent`.
78+
During release process, the artifacts will be signed with your key, using `gpg-agent`.
7879

7980
To configure gradle to sign the artifacts, you can add the following settings in your `~/.gradle/gradle.properties` file:
8081

@@ -86,6 +87,10 @@ To use `gpg` instead of `gpg2`, also set `signing.gnupg.executable=gpg`.
8687

8788
For more information, see the Gradle [signing documentation](https://docs.gradle.org/current/userguide/signing_plugin.html#sec:signatory_credentials).
8889

90+
### Helm chart signing
91+
92+
Helm chart artifacts are signed with your key, using the [helm gpg plugin](https://github.com/technosophos/helm-gpg). Ensure the plugin is installed locally.
93+
8994
### GitHub Repository
9095

9196
The release should be executed against https://github.com/apache/polaris.git repository (not a fork).
@@ -113,16 +118,25 @@ git push apache release/x.y.z
113118
Go in the branch, and set the target release version:
114119

115120
```
116-
git checkoout release/x.y.z
121+
git checkout release/x.y.z
117122
echo "x.y.z" > version.txt
118-
git commit -a
119-
git push
123+
```
124+
125+
and update the version in the Helm Chart in:
126+
127+
* `helm/polaris/Chart.yaml`
128+
* `helm/polaris/README.md`
129+
130+
and commit/push the version bump:
131+
132+
```
133+
git commit -m "Bump version to x.y.z" version.txt helm/polaris/Chart.yaml helm/polaris/README.md helm/polaris/values.yaml
120134
```
121135

122136
Update `CHANGELOG.md`:
123137
```
124138
./gradlew patchChangelog
125-
git commit -a
139+
git commit CHANGELOG.md -m "Update CHANGELOG for x.y.z release"
126140
git push
127141
```
128142

@@ -183,23 +197,62 @@ The binary distributions (for convenience) are available in:
183197
Now, we can stage the artifacts to dist dev repository:
184198

185199
```
186-
svn co https://dist.apache.org/repos/dist/dev/incubator/polaris polaris-dist-dev
200+
svn checkout https://dist.apache.org/repos/dist/dev/incubator/polaris polaris-dist-dev
187201
cd polaris-dist-dev
188202
mkdir x.y.z
189203
cp /path/to/polaris/github/clone/repo/build/distribution/* x.y.z
190204
cp /path/to/polaris/github/clone/repo/runtime/distribution/build/distributions/* x.y.z
191-
cp -r /path/to/polaris/github/clone/repo/helm/polaris helm-chart/x.y.z
192205
svn add x.y.z
206+
```
207+
208+
### Stage Helm Chart package
209+
210+
You can now create a Helm package with the following command in the Polaris source folder:
211+
212+
```
213+
cd helm
214+
helm package polaris
215+
helm gpg sign polaris-x.y.z.tgz
216+
```
217+
218+
Create the signature and checksum for the Helm package tgz and prov files:
219+
220+
```
221+
shasum -a 512 polaris-x.y.z.tgz > polaris-x.y.z.tgz.sha512
222+
gpg --armor --output polaris-x.y.z.tgz.asc --detach-sig polaris-x.y.z.tgz
223+
shasum -a 512 polaris-x.y.z.tgz.prov > polaris-x.y.z.tgz.prov.sha512
224+
gpg --armor --output polaris-x.y.z.tgz.prov.asc --detach-sig polaris-x.y.z.tgz.prov
225+
```
226+
227+
Copy and Add the Helm package files to dist folder:
228+
229+
```
230+
cd ../polaris-dist-dev
231+
mkdir helm-chart/x.y.z
232+
cp ../helm/*.tgz* helm-chart/x.y.z
193233
svn add helm-chart/x.y.z
194-
svn commit -m"Stage Apache Polaris x.y.z RCx"
234+
```
235+
236+
You can now update the Helm index:
237+
238+
```
239+
cd helm-chart
240+
helm repo index .
241+
svn add index.yaml
242+
```
243+
244+
Dist repository is now "complete" and we can push/commit:
245+
246+
```
247+
svn commit -m "Stage Apache Polaris x.y.z RCx"
195248
```
196249

197250
### Build and stage Maven artifacts
198251

199252
You can now build and publish the Maven artifacts on a Nexus staging repository:
200253

201254
```
202-
./gradlew publishToApache -Prelease -PuseGpgAgent
255+
./gradlew publishToApache -Prelease -PuseGpgAgent -Dorg.gradle.parallel=false
203256
```
204257

205258
Next, you have to close the staging repository:
@@ -365,12 +418,14 @@ svn mv https://dist.apache.org/repos/dist/dev/incubator/polaris/x.y.z https://di
365418
svn mv https://dist.apache.org/repos/dist/dev/incubator/polaris/helm-chart/x.y.z https://dist.apache.org/repos/dist/release/incubator/polaris/helm-chart
366419
```
367420

368-
NB: you have to update the Helm chart repository index on https://dist.apache.org/repos/dist/release/incubator/polaris/helm-chart/index.yaml
421+
Then, update the Helm Chart repository index on https://dist.apache.org/repos/dist/release/incubator/polaris/helm-chart/index.yaml:
422+
369423
```
370-
svn co https://dist.apache.org/repos/dist/release/incubator/polaris/helm-chart polaris-helm-chart
371-
cd polaris-helm-chart
424+
svn checkout https://dist.apache.org/repos/dist/release/incubator/polaris/helm-chart polaris-dist-release-helm-chart
425+
cd polaris-dist-release-helm-chart
372426
helm repo index .
373-
svn commit
427+
svn add index.yaml
428+
svn commit -m "Update Helm index for x.y.z release"
374429
```
375430

376431
Next, add a release tag to the git repository based on the candidate tag:

0 commit comments

Comments
 (0)