-
Story
-
Resolution: Done
-
Undefined
-
None
-
13
-
False
-
None
-
False
-
SECFLOWOTL-100 - Progressive Delivery CLI Support
-
-
-
GitOps Scarlet - Sprint 3263, GitOps Scarlet - Sprint 3264, GitOps Scarlet - Sprint 6/3265, GitOps Scarlet - Sprint 7/3266
Story (Required)
See parent epic for big picture details.
This is the Konflux instance we are using: https://console.redhat.com/application-pipeline/
You will need access to Konflux first.
This is where workspace where GitOps product resources are stored (I can grant you access, once you have Konflux access):
https://console.redhat.com/application-pipeline/workspaces/rh-openshift-gitops/applications/openshift-gitops-operator
Sketch of work
First, as part of this story, the goal is just to get the repository setup, and the source code successfully building on Konflux. There is a followup story which continues this work, for example, by enabling hermetic builds.
1) Create a Git repository with a sub-module to argo-rollouts
- As a first step, you can create your own repository in your own GitHub org (e.g. jgwest/downstream-argo-rollouts) and get it working from there.
- You can use this repo for initial experimentation, as part of this JIRA.
- In the next JIRA, we will move this repo into proper place.
- I created an example, here, you can potentially steal mine: https://github.com/jgwest/downstream-argo-rollouts
- Instructions here: https://konflux-ci.dev/docs/how-tos/workflows/git-submodules/
2) Create Application, Component for that repo, via Konflux UI (https://console.redhat.com/application-pipeline/)
- This process will onboard the repository onto Konflux
- Create the Application/Component in the 'rh-openshift-gitops' workspace, so that other team members can see it, and help debug.
- There is already another Application in that workspace, that can safely be ignored for this story.
3) Fix the warnings/errors that are identified by Konflux build
- For example, I saw a warning that was output because we weren't using a UBI image.
4) Create a simple Konflux integration test that pulls the image, extracts the binaries, and verifies each of the expected platform binaries exists.
- For now, we will just have a simple test that verifies that the files exist
- See Konflux docs for adding a custom integration test (https://konflux-ci.dev/docs/how-tos/testing/integration/creating/)
Acceptance Criteria (Mandatory)
- Initial GitHub repository exists in your own GitHub org, which has a sub-module reference to Argo Rollouts, and that GitHub repository references Argo Rollouts via sub-module.
- Konflux build from the above repository is building without any errors or warnings in Konflux UI.
- EDIT: Manually test the resulting binaries, especially the web UI
- Verify that you are able to trigger a rollout (for example, by using a binary to follow the rollouts getting started instructions in openshift gitops docs)
- Argo Rollouts CLI contains a dashboard (https://argo-rollouts.readthedocs.io/en/stable/dashboard/) that is run when you run the 'kubectl argo rollouts dashboard' command.
- Verify that the dashboard works as expected (when you create rollouts you see them in the dashboard) when running the binaries.
- Fix 'not a git repository' error that is seen in the current container output from my example repo
- Konflux integration test is verifying that the binaries exist within the container image that is built.
- All work should be within the 'rh-openshift-gitops' workspace.
Resources
- #konflux-users slack channel: This is the 'customer support' mechanism for Konflux, where they have folks answering any/all Konflux questions. You can also use Slack search feature to search this channel, as your question may already have been answered.
- Konflux docs:
- Internal docs: https://gitlab.cee.redhat.com/konflux/docs/users
- External docs: https://konflux-ci.dev/docs/
- Examples of other team's Konflux configurations: https://gitlab.cee.redhat.com/releng/konflux-release-data/
- You can find examples of other team's Konflux configurations within this repo.
- For example, if you were looking for examples of 'ReleasePlanAdmission' object, you can clone the repo and run 'grep -r -i "kind: ReleasePlanAdmission"'
- If you're looking for examples of other team's Pipelines, you can find other GitHub repositories that are onboarded onto Konflux by running 'grep -r -i "github.com"'.
- Other resource:
- JIRA ticket which keeps track of which Konflux features we need for our migration to Konflux: https://issues.redhat.com/browse/KONFLUX-2308
- See the other existing JIRAs we have for onboarding onto Konflux:
- OpenShift GitOps Konflux Enablement: https://issues.redhat.com/browse/SECFLOWOTL-190
- OpenShift GitOps Konflux Enablement: https://issues.redhat.com/browse/GITOPS-5018
- blocks
-
GITOPS-5636 Rollouts CLI on Konflux: 2) Enable hermetic build to Rollouts Kubectl build, and integrate with existing OpenShift GitOps Konflux build
- Review