-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Improvements for K8S deployment (especially ITs) #18514
Conversation
I am testing this now. |
I haven't had a chance to look into it, but there does seem to be a bug in the way the |
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.
As mentioned, we may want to include a work around to the runner_params
parsing problem until that has been resolved.
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.
lgtm! I think the default param issue can be fixed by directly subscripting instead of using dict.get()
Co-authored-by: Nuwan Goonasekera <[email protected]>
Change active check for ITs
I added another commit that makes jobs in kubernetes not be marked as running until the pod is actually running, as opposed to for eg waiting for container image to be pulled. I also changed the |
Co-authored-by: Nuwan Goonasekera <[email protected]>
Adds GHCR build, to get a k8s container image built and pushed to
ghcr.io
under repository owner, with no credentials needed (complementing the DockerHub/Quay.io pushed that are only forgalaxyproject
repo and require credentials). Demonstrated for the Bioconductor fork (https://github.com/Bioconductor/galaxy/pkgs/container/galaxy), and could also be useful for AnVIL fork where it could replace the custom workflow that is currently being used.Updates
pykube-ng
version to latest available, making the deployment compatible with newer versions of Kubernetes (would error out on an API call for ingresses otherwise). It seemspykube-ng
is not being updated anymore though, and there is an official Kubernetes API client for python now, which should likely be the long-term solution here imo.Add ability to override the TLS secret for ITs' ingress resources, notably useful for easily setting up a wildcard cert instead of relying on
cert-manager
to issue a new certificate per subdomain (which eventually hits the rate limit at least for letsencrypt).Adds ability to override ingress version, currently useful for running on old kubernetes versions (and added back conditional logic to work with old
v1beta1
API version).I don't remember ITs on Kubernetes being tested, so I didn't really look into adding tests. The changes aren't too complicated though. One thing I did notice is that although default is set here,
runner_params.get()
still returnsNone
when it's not set. Is that a bug in the runner_params parsing?cc: @nuwang @ksuderman @afgane
License