Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement scripts to release che-operator #13780

Closed
davidfestal opened this issue Jul 5, 2019 · 8 comments
Closed

Implement scripts to release che-operator #13780

davidfestal opened this issue Jul 5, 2019 · 8 comments
Assignees
Labels
area/che-operator Issues and PRs related to Eclipse Che Kubernetes Operator severity/P1 Has a major impact to usage or development of the system.
Milestone

Comments

@davidfestal
Copy link
Contributor

davidfestal commented Jul 5, 2019

Setup a reproducible way to test / release the operator on OperatorHub

Current state of Testing / Release process

Until now releasing the che operator is a totally manual thing. Though it was still somewhat easy for the operator code itself (build, tag and deploy docker image), it isn't easy at all, and very error-prone to manually build OLM-related yaml files and submit them in PR to the community-operators repository for each release we want to deploy to the OperatorHub, especially due to the fact that we cannot test the whole package before deploying it to the marketplace.

Detailed description

This issue defines what should be done to correctly and continuously test the Che Operator (including the OLM files and OperatorHub-based installation), and release it to the OperatorHub without risks.

This would be great if a decent minimal implementation of this purpose could be setup before Che 7 GA, to ensure a successful release to the marketplace.

The main purpose can be decomposed into several subtasks:

  • Bring back the Che operator OLM and OperatorHub related YAML files (.csv, .package) into the che-operator repository for both the Openshift and the K8S cases,
  • Allow maintaining the consistency between the basic operator deployment yaml files (operator.yaml, rile.yaml, etc...) and the OLM-related files (.csv, etc ...)
  • Have a way to easily package the OLM-related files and push them to a distinct Quay.io namespace and application, so that can be installed and tested independently from the official OperatorHub marketplace,
  • Allow this new way to test the operators in OLM to also test the nightly operator with nightly versions of the Che and Keycloak docker images,
  • Allow deriving the files that should be included into the official OperatorHub (community-operators Repository) from the source CSV maintained our own che-operator repository,
  • Provide scripts to:
    • build and push to Quay.io the night operator docker image,
    • build, tag and push to Quay.io a (pre-)release of the operator docker image,
    • manage the various OLM-related files and push them to appropriate testing Quay.io application repositories
    • Prepare the content of PRs on the community-operators repository, based on a given release of the OLM files hosted in our own che-operator repository
@davidfestal davidfestal added the area/che-operator Issues and PRs related to Eclipse Che Kubernetes Operator label Jul 5, 2019
@davidfestal davidfestal added this to the 7.0.0 milestone Jul 5, 2019
@dmytro-ndp
Copy link
Contributor

There could Che CI or CRW CCI be used for this propose.

@davidfestal
Copy link
Contributor Author

@dmytro-ndp It seems we would plan to use Eclipse CI for the Che operator, as discussed in these PR comments: eclipse-che/che-operator#45 (comment)
But the first step is definitely to add all the necessary bits in the che-operator repository in a conveniently structured way, and provide related scripts, before even thinking of automating it in a CI.

@davidfestal davidfestal self-assigned this Jul 5, 2019
@tsmaeder
Copy link
Contributor

tsmaeder commented Jul 5, 2019

This sounds like good and important work, but I have two questions:

  1. Is this going to be done before end of this sprint?
  2. Is there potential for this breaking anything or disrupting developement?

@tsmaeder tsmaeder added the status/info-needed More information is needed before the issue can move into the “analyzing” state for engineering. label Jul 5, 2019
@davidfestal
Copy link
Contributor Author

@tsmaeder

  1. Is this going to be done before end of this sprint?

That's the idea yes. Maybe not a full automation of it (in CI I mean), but at least having the related files and scripts available in the repo, and a clear process documented about how to update / test / release the Operator OLM files.

  1. Is there potential for this breaking anything or disrupting developement?

I don't see any: this issue is mainly about adding new files and scripts that were not in the repository previously, and formalizing / scripting / documenting processes that were purely manual and informal until now.

@davidfestal
Copy link
Contributor Author

So what should I do to add it into the Endgame plan ?

@davidfestal davidfestal reopened this Jul 8, 2019
@l0rd l0rd changed the title Setup a reproducible way to test / release the operator on OperatorHub Implement scripts to release che-operator Jul 8, 2019
@l0rd
Copy link
Contributor

l0rd commented Jul 8, 2019

I confirm that this will be part of the endgame but the scope is only limited to what is needed to script a release of the che-operator, something that was done manually until now.

@l0rd l0rd added severity/P1 Has a major impact to usage or development of the system. and removed status/info-needed More information is needed before the issue can move into the “analyzing” state for engineering. labels Jul 8, 2019
davidfestal added a commit to eclipse-che/che-operator that referenced this issue Jul 15, 2019
Implementation of issue eclipse-che/che#13780

* complete cluster role
* update operator.yaml
* Add OLM files for openshift in beta-5 state
* Add RC 2 release CSV
* Reordered beta 5 csv in alphabetic order
* Add first bits of OLM files management
* lowercase `RC` and remove readiness probe
* pre-release (with `rc-2.0`) and nightly channels
* Add the kubernetes version of the OLM package
* Adding operator sources
* `OperatorSource`s should be in distinct namespaces
* Change proposed by @l0rd
* scripts to update nightly CSVs
* script to release OLM files
* Add the script to push OLM files as Quay apps
* Add script to prepare `community-operators` PRs
* script to release the operator Go code
* Rename `*-test-*` to `*-preview-*` and rename the `pre-releases` channel to `stable`
* `9.9.9` as semver-compliant prefix for nightlies

Signed-off-by: David Festal <dfestal@redhat.com>
@l0rd l0rd mentioned this issue Jul 16, 2019
85 tasks
@ibuziuk
Copy link
Member

ibuziuk commented Jul 22, 2019

@davidfestal I believe we can close this one and have a CI for che-operator as part of the separate issue #13951

@davidfestal
Copy link
Contributor Author

@ibuziuk sure.

@ibuziuk ibuziuk closed this as completed Jul 22, 2019
nickboldt added a commit to nickboldt/che-operator that referenced this issue Sep 9, 2019
…just update deploy/cluster_role.yaml with 2 new verbs update and patch

Change-Id: I1a51e11be9259e29f4eb4ccdcdcd950601e82c3b
Signed-off-by: nickboldt <nboldt@redhat.com>
nickboldt added a commit to eclipse-che/che-operator that referenced this issue Sep 9, 2019
… deploy/cluster_role.yaml with 2 new verbs update and patch

Change-Id: I1a51e11be9259e29f4eb4ccdcdcd950601e82c3b
Signed-off-by: nickboldt <nboldt@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/che-operator Issues and PRs related to Eclipse Che Kubernetes Operator severity/P1 Has a major impact to usage or development of the system.
Projects
None yet
Development

No branches or pull requests

5 participants