Skip to content

Conversation

@ballista01
Copy link
Member

@ballista01 ballista01 commented Oct 28, 2025

Inspired by #95 (comment) I tried to add a Helm Chart support for etcd-operator. The Chart is auto-generated from Kustomize manifests to maintain a single source of truth.

Changes

Helm Chart Generation

  • make helm generates Chart from Kustomize using helmify and yq
  • Includes automatic helm lint validation
  • Generated files excluded from git (Chart.yaml, values.yaml, templates/, crds/)

Deployment Methods

  • E2E tests now support both Kustomize and Helm
  • Use DEPLOY_METHOD env var: "kustomize", "helm", or "all" (default)
  • Both methods deploy functionally identical operators

Documentation

  • Added helm/README.md with usage guide
  • Updated main README.md with deployment options
  • Included example configs: values-ha.yaml (3 replicas, leader election) and values-minimal.yaml

Testing

  • Unit tests for Chart generation, validation, and values
  • E2E tests pass with both deployment methods
  • Tested with cert-manager v1.19.1 and etcd v3.6.5
  • Verified HA setup with 3-node cluster and leader election

Architecture

  • Kustomize manifests remain the source of truth
  • Helm Chart auto-generated during build/test (not committed)
  • CRDs installed by Helm but not deleted on uninstall
  • Tools (helmify, yq) auto-install

Breaking Changes

None. Existing Kustomize deployments work unchanged.

Closes #94

@k8s-ci-robot
Copy link

[APPROVALNOTIFIER] This PR is NOT APPROVED

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

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

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

@ballista01 ballista01 force-pushed the feat/helm-chart branch 2 times, most recently from ff91da2 to 67be641 Compare October 28, 2025 03:17
@ballista01 ballista01 changed the title feat: add Helm Chart support with auto-generation from Kustomize [WIP] feat: add Helm Chart support with auto-generation from Kustomize Oct 28, 2025
@ballista01 ballista01 force-pushed the feat/helm-chart branch 4 times, most recently from 2ee081b to 786d7e7 Compare October 28, 2025 04:01
@ballista01
Copy link
Member Author

@ivanvc @ahrtr Here's my attempt with Helmify. Most of it is documentation (~400 lines), tests (~700 lines), and examples (~100 lines). Core logic is just ~100 lines in Makefile. Let me know if you prefer smaller PRs (e.g. keeping only makefile changes)

@ballista01 ballista01 changed the title [WIP] feat: add Helm Chart support with auto-generation from Kustomize feat: add Helm Chart support with auto-generation from Kustomize Oct 28, 2025
@ballista01 ballista01 force-pushed the feat/helm-chart branch 2 times, most recently from 7845c57 to 8d64111 Compare October 28, 2025 18:22
@ivanvc
Copy link
Member

ivanvc commented Oct 28, 2025

I did briefly review this. I believe it should be broken down into at least separate commits. Also, the README.md appears to point to another chart.

I'll come back to this after 0.2.0.

@ivanvc ivanvc mentioned this pull request Nov 4, 2025
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.

Introduce a Helm chart

3 participants