-
Notifications
You must be signed in to change notification settings - Fork 809
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
CI rework - use kind, validate->test->publish, contrib and release rework #1422
Conversation
b59ddc1
to
e9ee883
Compare
7bdc5da
to
fe33c9b
Compare
hey @consideRatio you know you can use ci/Vagrantfile to simulate the travis env right? ;) do you want to integrate the netpol related changes into #1259? |
@clkao I know ;D I didn't get to doing that, mainly because of past experience of running into hurdles getting the VM up and running and knowledge of I want to work on this from multiple computers. This PR branch builds on the tip of #1259 and contains all its commits (except that I've rebased it on master). I'd like to close #1259 and merge this after documentation/verification/review if that's alright with you @clkao. |
6a4031a
to
bbc5908
Compare
5992c1d
to
7156319
Compare
7156319
to
0924e65
Compare
It'll be a few days before I have time to review this. |
0924e65
to
531d6cf
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @consideRatio. I did a quick scan of the PR and left a few comments.
Overall, looks good. We may want to run the bash scripts through shellcheck if we don't already do so. Thanks.
44c1ad4
to
42158ec
Compare
btw @consideRatio, I tried the new |
Thank you @clkao for your help testing as well as making this happen at all by your initial push to make this work! ❤️ |
Review requests
I hope you don't mind I sent a review request. I find lowering the complexity of making code contributions and reducing the complexity of making a release is essential for this repository at this point in time. A concrete suggestion of a review contribution of great value would be to read through CONTRIBUTING.md and RELEASE.md.
PR Changes
I made a huge amount of changes in one go building on @clkao's excellent work with #1259 and #1260 and @manics past excellent work with setting up a VM for local development using a Vagrantfile. Almost all the changes relate to the CI/CD system and contribution related documentation, so while the amount of changes are huge, it should not cause a disruption to merge. But there is one deviation - I bumped from JupyterHub 1.0.0 to a recent master commit stabilizing the hub on startup.
I have so much appreciation for the work of @clkao and @manics that I'm building on top of currently ❤️ 🌻
Local development
I've worked to make local development easy and compatible with the CI runs. I've also made an opinionated switch to kind from minikube. VirtualBox and Vagrantfile are powering the local development as well as local runs of CI tests.
minikube
andkind
can do the job, but kind supports multiple nodes etc and is embraced by CNCF, so I opted to go all out onkind
and drop the outdated documentation on how to use minikube.dev
script to help out. Key benefits of this includes: a similar development environment for contributors allowing issues to be easier to reproduce, less dependencies on the operating system as not even python is required, quick to setup and start fresh with little risk of messing with current installation of kubectl etc.Travis multi-stage builds and tagged releases
The Travis CI/CD pipeline now has three stages, lint and validate -> test -> publish, where publish will only be run on pushes to the master branch.
I've also planned for handling tagged pushes allowing a release process to be a lot easier where we no longer require manual dockerhub and helm chart upload for them.
CONTRIBUTING.md and RELEASE.md rework
I moved RELEASE.md out from the CONTRIBUTING.md documentation and reworked both thoroughly.
In RELEASE.md I made the release issue template contain the relevant details for how to do things, and trimmed away lots of details.
In CONTRIBUTING.md I removed outdated minikube related instructions and focused solely on setting up a VM with the Vagrantfile and developing within the VM. I believe a local development experience should be a lot more consistent and reliable for everyone now, and that it can mimic runs on the CI pipeline as well.
Other
TODO
dev-config-netpol.yaml
withdev-config.yaml
like @minrk does in enable network policy by default #1271.KUBECONFIG
is set in.env
kubectl config
->get-contexts
,current-context
are of relevance, we should not runuse-context
as that manipulates the kubeconfig though.Post merge TODO
Moved to #1447
Integrated PRs
I've picked commits and ideas from the following PRs.
Closes #1259
Closes #1260