-
Notifications
You must be signed in to change notification settings - Fork 465
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
*: Integrate the kgateway chart into the repository #10485
*: Integrate the kgateway chart into the repository #10485
Conversation
Publishing this branch after some offline conversation with a couple of people. This branch is highly WIP but it's failing conformance and folks with more context could help triage. |
2832a75
to
de864ab
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.
left some comments, over all looks good!
@@ -3,7 +3,7 @@ apiVersion: gateway.networking.k8s.io/v1 | |||
metadata: | |||
name: example-gateway | |||
spec: | |||
gatewayClassName: gloo-gateway | |||
gatewayClassName: kgateway |
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.
i agree we need to perform this change but will also need to think about downstream effects. cc @lgadban
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.
let's track gatewayClass discussion in this repo
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.
stubbed out #10503
de864ab
to
8e245da
Compare
Sorry for the force push. I was looking into chunking the WIP commit into several commits to cherry-pick into their own PRs if necessary. |
version: 0.1.0 | ||
version: "v0.0.1" |
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.
Just a temporary version here, but we can figure out the right value in a follow-up or do it here.
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.
Removed for now. We can add helm tests once the new chart is hooked into the release workflow.
namespace: "kgateway-system" | ||
|
||
# Gateway proxy configuration | ||
gateway: |
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.
I held off on changing any of the gateway param related helm chart values and c/p from the legacy chart as the deployer unit tests validate the AI extension and SDS containers components and I didn't want to change too much all at once.
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.
we can leave for now so it's not a massive PR but i think we need to revisit soon; if these are the values consumed by the default GatewayParams i would want to move them closer to the gatewayClass itself.
happy to discuss more here but seems like a good follow-up
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.
Totally agree. I was going to handle re-designing this as a follow-up during this stream of release work. I just wanted to get a chart integrated with CI so publishing this chart is unblocked in the release workflow.
GlooDeploymentName = "gloo" | ||
GlooServiceName = "gloo" | ||
GlooDeploymentName = "kgateway" | ||
GlooServiceName = "kgateway" |
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.
Mentioned in the commit message, but this was needed to ensure the right xds_cluster socket address got populated in managed proxies.
@@ -35,8 +34,8 @@ go run k8s.io/code-generator/cmd/register-gen --output-file zz_generated.registe | |||
go run sigs.k8s.io/controller-tools/cmd/controller-gen crd:maxDescLen=0 object rbac:roleName=k8sgw-controller paths="${APIS_PKG}/api/${VERSION}" \ | |||
output:crd:artifacts:config=${SCRIPT_ROOT}/../../install/helm/gloo/crds/ output:rbac:artifacts:config=${SCRIPT_ROOT}/../../install/helm/gloo/files/rbac | |||
|
|||
go run sigs.k8s.io/controller-tools/cmd/controller-gen crd:maxDescLen=0 object rbac:roleName=k8sgw-controller paths="${APIS_PKG}/api/${VERSION}" \ |
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.
A follow-up will rip out the legacy chart's RBAC generation.
namespace: "kgateway-system" | ||
|
||
# Gateway proxy configuration | ||
gateway: |
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.
we can leave for now so it's not a massive PR but i think we need to revisit soon; if these are the values consumed by the default GatewayParams i would want to move them closer to the gatewayClass itself.
happy to discuss more here but seems like a good follow-up
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.
do we have an equivalent to this anywhere else?
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.
Not at the moment, but this is a gap imo with how we're installing kgateway in CI anyways (i.e. there's no single make target that handles all of this). Ex, the conformance suite first calls setup-kind.sh, then helm installs the locally packaged chart, then runs the make conformance
target. I'll tackle this as a follow-up -- there's a couple of open questions w.r.t. VERSION default that I'd like to discuss more.
Signed-off-by: timflannagan <[email protected]>
… for kgateway chart Signed-off-by: timflannagan <[email protected]>
This commit adds several kubebuilder RBAC markers for the corev1, appsv1, GW API, etc. resources that are needed by the slimmed down stack. Previously, we were generating RBAC for kgateway-specific APIs (e.g. DirectResponse, GatewayParameters, etc.). Signed-off-by: timflannagan <[email protected]>
The kgateway chart was initially bootstrapped via helm create in a previous main branch PR. This chart is not functional and contains some cruft that helm generates that isn't relevant to this project (e.g. ingress). This commit deletes several files, re-structures the values.yaml and templates/ directories. Previous commits generated the required RBAC files. This expands on that motion and introduces the GatewayClass and default GatewayParameter CR templates. Signed-off-by: timflannagan <[email protected]>
This script will be no longer relevant once the repository overhaul is complete and Makefile targets have been introduced to replicate any install paths. Signed-off-by: timflannagan <[email protected]>
…tewayClass name Signed-off-by: timflannagan <[email protected]>
This removes the Settings CR from the setup.yaml bootstrap configuration in the envtests. The kgateway chart does not carry this CR over to it's crds/ directory or have the RBAC permissions to watch, list, etc. the resource. Previously, we removed the legacy Settings logic in the gateway2 control plane in kgateway-dev#10458, so this resource is no longer necessary in the setup.yaml and envtest fails trying to deploy it with the new chart. Signed-off-by: timflannagan <[email protected]>
…ebuilder Signed-off-by: timflannagan <[email protected]>
This updates the constant variables in the kubeutils package to use the "kgateway" container name. Without this, the conformance suite will fail as the xds_cluster socket address is pointing to a kube svc DNS name that does not exist (e.g. gloo.kgateway-system.svc). Signed-off-by: timflannagan <[email protected]>
…nce fails Signed-off-by: timflannagan <[email protected]>
Signed-off-by: timflannagan <[email protected]>
Signed-off-by: timflannagan <[email protected]>
Signed-off-by: timflannagan <[email protected]>
… chart Signed-off-by: timflannagan <[email protected]>
This was a temporary hack needed until kgateway-dev#10499 landed in main. Signed-off-by: timflannagan <[email protected]>
881b237
to
0bf312e
Compare
(Accidentally ran rebase --onto on the wrong branch lol). |
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!
Description
This commit is a follow-up to #10470 and integrates the newly bootstrapped kgateway helm chart into the repository and replacing the legacy chart in CI. While this is a foundational step, further iterations and chart design adjustments will follow to refine and fully replace the legacy chart. The goal is to gradually transition to the new chart while deprecating the legacy implementation.
Additional changes include publishing this helm chart along with the #10441 stream of work. This can be done as an extension of the release GHA workflow once we pass the initial hurdle with integrated this chart with CI and getting green runs.
Related to #10484 which renamed the default container image registry from quay to ghcr.io. The new helm chart will have this as the default registry going forward.
Checklist: