github.com/argoproj-labs/argocd-operator@v0.10.0/docs/release-process.md (about)

     1  # Argo CD Operator Release Process
     2  
     3  ## Prerequisites
     4  
     5  Before beginning, make sure you have push access to the following repositories in quay.io:
     6  
     7    * [https://quay.io/repository/argoprojlabs/argocd-operator-util](https://quay.io/repository/argoprojlabs/argocd-operator-util)
     8    * [http://quay.io/argoprojlabs/argocd-operator](http://quay.io/argoprojlabs/argocd-operator)
     9    * [http://quay.io/argoprojlabs/argocd-operator-registry](http://quay.io/argoprojlabs/argocd-operator-registry) 
    10  
    11  Lastly, make sure you are listed as a maintainer for argocd-operator in order to tag and publish releases. 
    12  
    13  ## `argocd-operator` changes
    14  
    15  * `VERSION` in Makefile defines the project version for the bundle. You will need to update this value when you want to upgrade the version of your project.
    16    
    17  ```txt
    18    VERSION ?= 0.2.0
    19  ```
    20  
    21  * Ensure that the `replaces` field in `config/manifests/bases/argocd-operator.clusterserviceversion.yaml` is set to the version you are planning to release.
    22  
    23  * Ensure that the `currentCSV` field in `deploy/olm-catalog/argocd-operator/argocd-operator.package.yaml` is set to the version you are planning to release.
    24  
    25  * Build the `argocd-operator-util` image.
    26    
    27  ```txt
    28    make util-build 
    29  ```
    30  
    31  * Push the `argocd-operator-util` image to quay.io
    32    
    33  ```txt
    34    make util-push
    35  ```
    36  
    37  * Copy the SHA digest of utility container image from the above command. Set this value to `ArgoCDDefaultExportJobVersion` in `common/defaults.go`.
    38       
    39  * Build the operator container image. (Below command assumes the release version as `v0.2.0`; please change the command accordingly.)
    40    
    41  ```txt
    42    make docker-build IMG=quay.io/argoprojlabs/argocd-operator:v0.2.0-rc1
    43  ```
    44  
    45  * Push the operator container image. (Below command assumes the release version as `v0.2.0`; please change the command accordingly.)
    46    
    47  ```txt
    48    make docker-push IMG=quay.io/argoprojlabs/argocd-operator:v0.2.0-rc1
    49  ```
    50  
    51  * Create the bundle artifacts using the SHA of the operator container image.
    52    
    53  ```txt
    54    make bundle IMG=quay.io/argoprojlabs/argocd-operator@sha256:d894c0f7510c8f41b48900b52eac94f623885fd409ebf2660793cd921b137bde
    55  ```
    56  
    57  * Create the registry image. (Below command assumes the release version as `v0.2.0`; please change the command accordingly.)
    58    
    59  ```txt
    60    make registry-build REGISTRY_IMG=quay.io/argoprojlabs/argocd-operator-registry:v0.2.0-rc1
    61  ```
    62  
    63  * Push the registry image. (Below command assumes the release version as `v0.2.0`; please change the command accordingly.)
    64    
    65  ```txt
    66    make registry-push REGISTRY_IMG=quay.io/argoprojlabs/argocd-operator-registry:v0.2.0-rc1
    67  ```
    68  
    69  * Update `deploy/catalog_source.yaml` with the SHA of the operator registry image.
    70  
    71  * Once all testing has been done, from the quay.io user interface, add the actual release tags (e.g. 'v0.2.0') to the `argocd-operator` and `argocd-operator-registry` images.
    72  
    73  * Commit and push the changes, then create a PR and get it merged.
    74  
    75  * Go to the argocd-operator GitHub repo and [create (aka draft) a new release](https://github.com/argoproj-labs/argocd-operator/releases). Make sure to include release notes detailing what's changed and contributors. GitHub can help you generate new release notes (make sure to only include changes since the previous release, there is a dropdown option on the GitHub UI when drafting release notes to specify the previous tag).
    76  
    77  ----
    78  
    79  ## Steps to create a PR for Kubernetes OperatorHub Community Operators
    80  
    81  * Fork and clone [kubernetes community operators](https://github.com/k8s-operatorhub/community-operators).
    82  
    83  * Go to the `community-operators/operators/argocd-operator` folder.
    84  
    85  * Copy the relevant release folder from the actual argocd-operator's `deploy/olm-catalog/argocd-operator` folder into this folder.
    86  
    87  * Edit the `argocd-operator.package.yaml` file and update the value of the `currentCSV` field.
    88  
    89  * Edit the CSV file in the new release folder, and add a `containerImage` tag to the metadata section. Copy the value from the `image` tag already found in the file.
    90  
    91  * Commit and push the changes, then create a PR.
    92  
    93  ----
    94  
    95  ## Steps to create a PR for Red Hat Operators
    96  
    97  * Fork and clone [redhat community operators](https://github.com/redhat-openshift-ecosystem/community-operators-prod).
    98  
    99  * Go to the `community-operators-prod/operators/argocd-operator` folder.
   100  
   101  * Copy the relevant release folder from the actual argocd-operator's `deploy/olm-catalog/argocd-operator` folder into this folder.
   102  
   103  * Edit the `argocd-operator.package.yaml` file and update the value of the `currentCSV` field.
   104  
   105  * Edit the CSV file in the new release folder, and add a `containerImage` tag to the metadata section. Copy the value from the `image` tag already found in the file.
   106  
   107  * Commit and push the changes, then create a PR.
   108  
   109  ## Setting up the next version
   110  
   111  * In the `argocd-operator` repo, synchronize any changes in the release folder under `deploy/olm-catalog/argocd-operator` on the release branch back to the master branch (ensure the folder is an exact copy of what's on the release branch).
   112  
   113  * Update the `VERSION` in the Makefile in the `argocd-operator` repo's master branch to the next version (e.g. from `0.2.0 to 0.3.0).
   114  
   115  * In `config/manifests/bases/argocd-operator.clusterserviceversion.yaml`, update the `replaces:` field to be the current version (the one you just released), and the `version:` field to be the next version. 
   116  
   117  * Run `make bundle` to generate the intial bundle manifests for the next version. (You may need to also run `go mod vendor` and `go mod tidy`)
   118  
   119  * Commit and push the changes, then create a PR to argocd-operator's master branch.