-
Notifications
You must be signed in to change notification settings - Fork 836
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
Fully automate CI/CD process and introduce manual trigger for release process #986
Comments
Currently there was some exploratory work to identify how to run KIND in Kubernetes. It seems that the way to correctly run it (based on kubernetes-sigs/kind#303) it is by running a kubernetes pod with mounted volumes and a docker service running inside of the container. |
An example Kubernetes pod that would be able to start the docker service and create a KIND cluster would require mounted volumes as follows:
The docker image itself would require installing Docker, KIND and a few other dependencies, which are well outlined Kubernetes Sig-infra KIND Runtime Environment (KRTE). You can see the Dockerfile which provides some of the dependencies required, as well as the wrapper.sh which is the entry point that starts and stops the docker service. |
As its outlined in kubernetes-sigs/kind#303 (comment) we need to be careful with stopping the KIND cluster and shutting down the docker service. |
Initial milestone to run e2e tests is not added through #994. That current PR includes:
More specifically, what the PR will do, is that it will run the e2e tests using KIND (kubernetes in docker) inside the a Jekins X triggered pod. The next steps will be the following: Adding a notification if e2e tests fail:
Build and push the docker images ONLY to SNAPSHOT for every PR mergedThis would involve two things, the first one is modifying the jenkins-x file to have the commands to run this, such as the following:
Furthermore, in order to run these commands we will have to use the |
This issue contains insight around the CI/CD process and how it's set up for the project. The current objective aims to introduce the following process leveraging Jenkins X for most of the automation steps:
PR Process
Automated process when PR is created (or modified):
Manual actions that should also be possible:
Land to master
Automated process when commit is added to master (i.e. landing PR):
Release is not performed automatically, but instead in a separate manual step (below)
Perform release
Seldon team manually creates a tag, which is related to a specific branch - this then triggers the release process, which would be the same as the one above, but it would be bumping a version (and removing the SNAPSHOT suffix).
This could be triggered by running a manual script that would bump the version (i.e. change all the SNAPSHOT) into the actual version, then commit and tag, which then should trigger the release).
Automated process when triggered:
What is not currently automated (and hence need to be performed manually):
The text was updated successfully, but these errors were encountered: