Skip to content

helm: add Dex wrapper chart#3480

Open
danish9039 wants to merge 12 commits into
kubeflow:masterfrom
danish9039:gsoc/dex-wrapper-chart
Open

helm: add Dex wrapper chart#3480
danish9039 wants to merge 12 commits into
kubeflow:masterfrom
danish9039:gsoc/dex-wrapper-chart

Conversation

@danish9039

@danish9039 danish9039 commented May 25, 2026

Copy link
Copy Markdown
Member

Summary

Adds the Dex Helm wrapper chart for the Project 5 platform-first Helm work under common/dex/helm, co-located with the Kustomize baseline under common/dex.

The chart is a static Kustomize-parity wrapper for the current Kubeflow Dex install. It follows common/dex and is aligned with Dex v2.45.1.

Supported comparison scenarios

  • base: common/dex/base
  • overlays-istio: common/dex/overlays/istio

Scope update

  • Move the wrapper chart from experimental/helm/charts/dex to common/dex/helm.
  • Update YAML lint config so co-located Helm templates under common/*/helm/templates/** are not treated as raw YAML.
  • Add Dex to tests/helm_kustomize_compare.sh with the co-located chart path and base / overlays-istio scenarios.

Follow-up

Sync script extension for appVersion, image tag, and CRD updates will follow separately after the chart location change, so this PR stays focused on co-location and parity proof.

Stacking note

This PR is part of the platform auth chain and follows the foundation, cert-manager, Istio, and oauth2-proxy wrapper work:

kubeflow-namespaces -> kubeflow-platform -> cert-manager -> istio -> oauth2-proxy + dex

The chart does not render Namespace/auth. That namespace is provided by the foundation chart in #3468, and the Helm release metadata is stored in the auth workload namespace.

Values note

The chart keeps Kustomize parity defaults in the CI values files. Production installs should provide their own static users, OIDC client values, and password hashes.

oidcClient.id and oidcClient.secret are raw values and are encoded by the template.

Validation

helm lint common/dex/helm/
./tests/helm_kustomize_compare.sh dex base
./tests/helm_kustomize_compare.sh dex overlays-istio
./tests/helm_kustomize_compare_all.sh dex
git diff --check HEAD~1..HEAD

Copilot AI review requested due to automatic review settings May 25, 2026 13:04
@github-actions

Copy link
Copy Markdown

Welcome to the Kubeflow Manifests Repository

Thanks for opening your first PR. Your contribution means a lot to the Kubeflow community.

Before making more PRs:
Please ensure your PR follows our Contributing Guide.
Please also be aware that many components are synchronizes from upstream via the scripts in /scripts.
So in some cases you have to fix the problem in the upstream repositories first, but you can use a PR against kubeflow/manifests to test the platform integration.

Community Resources:

Thanks again for helping to improve Kubeflow.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds Dex to the Helm↔Kustomize comparison harness and introduces an initial Dex Helm chart intended to render parity manifests with common/dex.

Changes:

  • Extend the compare scripts to support the new dex component and scenarios.
  • Add a new experimental Helm chart for Dex, including templates, CRD, and CI values files.
  • Adjust manifest-key normalization to include namespaces for Dex comparisons.

Reviewed changes

Copilot reviewed 16 out of 16 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
tests/helm_kustomize_compare_all.sh Adds dex scenarios and CLI help output for running comparisons across all components.
tests/helm_kustomize_compare.sh Adds Dex chart/manifests paths and Helm templating logic for Dex scenarios.
tests/helm_kustomize_compare.py Updates component allowlist and resource-keying behavior to support Dex.
experimental/helm/charts/dex/Chart.yaml Introduces the Dex Helm chart metadata.
experimental/helm/charts/dex/values.yaml Adds default chart values for namespaces, Dex config, and credentials.
experimental/helm/charts/dex/templates/_helpers.tpl Adds namespace helper templates used by Dex resources.
experimental/helm/charts/dex/templates/dex.yaml Adds Dex workload resources (SA, ConfigMap, Secrets, Service, Deployment).
experimental/helm/charts/dex/templates/rbac.yaml Adds ClusterRole/ClusterRoleBinding for Dex.
experimental/helm/charts/dex/templates/namespace.yaml Adds optional Namespace rendering for Dex workload namespace.
experimental/helm/charts/dex/templates/istio.yaml Adds optional Istio VirtualService for routing to Dex.
experimental/helm/charts/dex/templates/networkpolicies.yaml Adds optional NetworkPolicies for Dex ingress.
experimental/helm/charts/dex/crds/authcodes.yaml Adds Dex AuthCode CRD (installed via Helm CRDs mechanism).
experimental/helm/charts/dex/ci/values-*.yaml Adds scenario-specific values files for parity comparisons.
experimental/helm/charts/dex/README.md Documents install/caveats and comparison commands for the Dex chart.

Comment on lines +45 to +51
id: kubeflow-oidc-authservice
# -- OAuth client secret used by oauth2-proxy.
secret: pUBnBOY80SnXgjibTYM9ZWNzY2xreNGQok

staticPassword:
# -- Bcrypt hash for the default Dex static user password.
hash: $2y$12$4K/VkmDd1q1Orb3xAt82zu8gk7Ad6ReFR4LCP9UeYE90NLiN9Df72

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved the Kustomize parity secrets into CI values and left placeholders in chart defaults.

Comment thread common/dex/helm/templates/rbac.yaml
Comment on lines +41 to +43
data:
OIDC_CLIENT_ID: {{ .Values.oidcClient.id | b64enc }}
OIDC_CLIENT_SECRET: {{ .Values.oidcClient.secret | b64enc }}

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Kept data for dex-oidc-client to preserve Kustomize secretGenerator parity; dex-passwords already uses stringData like Kustomize.

kind: Namespace
metadata:
labels:
pod-security.kubernetes.io/enforce: restricted

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Made namespace labels configurable while keeping the current restricted Kustomize default.

web:
http: 0.0.0.0:5556
logger:
level: "debug"

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Made Dex log level configurable; chart defaults to info, while CI parity values keep Kustomize debug.

Comment thread tests/helm_kustomize_compare.py Outdated
Comment on lines +170 to +172
# Include namespace in key for components that render same-name resources
# across release/workload namespaces or multiple workload namespaces.
if component in ["katib", "dex"] and namespace:

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed by using namespace-aware resource keys whenever a manifest has metadata.namespace, instead of a Dex-specific allowlist.

@juliusvonkohout

Copy link
Copy Markdown
Member

Please first update kustomize to the latest available version in a separate PR.

Signed-off-by: danish9039 <danishsiddiqui040@gmail.com>
Signed-off-by: danish9039 <danishsiddiqui040@gmail.com>
@danish9039 danish9039 force-pushed the gsoc/dex-wrapper-chart branch from bf386ad to f3ce9a7 Compare May 26, 2026 19:38
Signed-off-by: danish9039 <danishsiddiqui040@gmail.com>
@danish9039

Copy link
Copy Markdown
Member Author

Addressed: Dex Kustomize manifests were synchronized to v2.45.1 in #3483, and this chart branch is aligned to that version.

@danish9039 danish9039 marked this pull request as ready for review June 1, 2026 13:36
@google-oss-prow google-oss-prow Bot requested a review from kimwnasptd June 1, 2026 13:36
Signed-off-by: danish9039 <danishsiddiqui040@gmail.com>
Signed-off-by: danish9039 <danishsiddiqui040@gmail.com>
@google-oss-prow google-oss-prow Bot added size/L and removed size/XL labels Jun 9, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why do we have this file? is it supposed to be meaningfully used standalone? What is the customer scenario?

@juliusvonkohout juliusvonkohout left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ad script in /scripts to automatically update the kustomize and helm for dex.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what is the purpose of this file? do you intent do deploy dex without oauth2-proxy ? what is the customer scenario ?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i want one meainingful value file, not 3

@juliusvonkohout

Copy link
Copy Markdown
Member

and please move this to common/dex/helm.

@juliusvonkohout

Copy link
Copy Markdown
Member

each extra line costs maintenance, keep this in mind.

Signed-off-by: danish9039 <danishsiddiqui040@gmail.com>
@google-oss-prow

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please ask for approval from juliusvonkohout. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Signed-off-by: danish9039 <danishsiddiqui040@gmail.com>
Signed-off-by: danish9039 <danishsiddiqui040@gmail.com>
Signed-off-by: danish9039 <danishsiddiqui040@gmail.com>
Signed-off-by: danish9039 <danishsiddiqui040@gmail.com>
@google-oss-prow google-oss-prow Bot added size/XL and removed size/L labels Jun 27, 2026
Signed-off-by: danish9039 <danishsiddiqui040@gmail.com>
Signed-off-by: danish9039 <danishsiddiqui040@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants