che-operator/RELEASE.md

103 lines
3.7 KiB
Markdown

# `che-operator` release process
## 1. Release files
See `release.yml` workflow, which can be used to perform this step using GitHub Actions CI.
Alternatively, use these manual steps to prepare release pull requrests:
Export environment variables:
1. `QUAY_ECLIPSE_CHE_USERNAME` and `QUAY_ECLIPSE_CHE_PASSWORD` to access https://quay.io/organization/eclipse
```bash
./make-release.sh <RELEASE_VERSION> --release --push-olm-bundles --push-git-changes --pull-requests
```
```
Usage: ./make-release.sh [RELEASE_VERSION] --release --release-olm-files --push-olm-bundles --push-git-changes --pull-requests
--release: to release
--release-olm-files: to release olm files
--push-olm-bundles: to push OLM bundle images to quay.io. This flag should be omitted
if already a greater version released. For instance, we are releasing 7.9.3 version but
7.10.0 already exists. Otherwise it breaks the linear update path of the stable channel.
--push-git-changes: to create release branch and push changes into.
--pull-requests: to create pull requests.
```
## 2. Testing release on openshift
This part now runs automatically as part of the PR check for release PRs. See PROW CI checks in release PRs.
Alternatively, use these manual steps to verify operator update on Openshift.
Start a cluster using `cluster-bot` application.
To be able to test update it is needed to created some user before. Login as `kubeadmin`. Click `Update the cluster OAuth configuration` at the middle of the dashboard, then `Identity providers` -> `Add` -> `HTPassword` and upload a htpassword file (can be created with HTPassword utility). Logout and login using HTPassword, then logout and login as `kubeadmin`. Go to `kube:admin` -> `Copy Login Command` -> `Display Token` and launch showing command in the terminal. Now it is possible to test update:
```bash
cd olm
./testUpdate.sh openshift stable
```
Open Eclipse Che dashboard in an anonymous tab:
```bash
echo http://$(oc get route -n eclipse-che-preview-test | grep ^che | awk -F ' ' '{ print $2 }')
```
Login using HTPassword then allow selected permissions. Validate that the release version is installed and workspace can be created:
## 3. Testing release on minikube
This part now runs automatically as part of the PR check for release PRs. See `minikube-stable-operator-update.yml` action.
Alternatively, use these manual steps to verify operator update on Minikube.
Run script to test updates:
```bash
cd olm
./testUpdate.sh kubernetes stable
```
Open Eclipse Che dashboard:
```bash
xdg-open http://$(kubectl get ingress -n eclipse-che-preview-test | grep ^che | awk -F ' ' '{ print $2 }')
```
Validate that the release version is installed and workspace can be created:
## 4. Merge pull requests
Merge pull request into .x and main branches.
## 5. Testing release on minishift (when chectl is released)
Login to local minishift cluster:
```bash
oc login <LOCAL_MINISHIFT_CLUSTER_ADDRESS>
```
Install the previous version of Eclipse Che using the corresponding version of `chectl`:
```bash
chectl server:deploy --platform=minishift --installer=operator
```
Update Eclipse Che to the latest version. Validate that the correct version is installed and workspace can be created:
```bash
chectl update stable
chectl server:update --platform=minishift --installer=operator
xdg-open http://$(kubectl get ingress -n che | grep ^che | awk -F ' ' '{ print $2 }')
```
## 6. Prepare community operator PR
See `release-community-operator-PRs.yml` workflow, which will be triggered automatically, once release PRs are merged.
Alternatively, it can be run manually:
```bash
cd olm
./prepare-community-operators-update.sh
```