Skip to content

Conversation

mkerkstra
Copy link

What this PR does / why we need it:

  • Adds an Helm chart to deploy the Feast Operator.
  • Includes Deployment, ServiceAccount, RBAC (ClusterRole/Binding plus leader-election Role/Binding), metrics Service, and optional ServiceMonitor (CRD-gated).
  • CRD install toggle via crds.install.
  • Adds chart metadata (Chart.yaml), values + schema, CHANGELOG, and README.

Which issue(s) this PR fixes:

  • NA

Misc

  • Tested with helm lint and helm template.
  • ArtifactHub annotations included.
    • Happy to help set up an Artifact Hub organization and wire up the charts if that is something y'all would be interested in.

@mkerkstra mkerkstra requested a review from a team as a code owner August 23, 2025 02:58
@mkerkstra mkerkstra force-pushed the mkerkstra/operator-add-helm-chart branch from 3d96b9d to 0d588d7 Compare August 23, 2025 03:00
Copy link
Contributor

@tchughesiv tchughesiv left a comment

Choose a reason for hiding this comment

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

If the community is on board with creating a helm chart for deploying the operator, it should definitely be dynamically built and not require manual changes as the operator evolves. The following tool looks promising and has documented how to integrate with our existing operator-sdk implementation, it's called Helmify -
https://github.com/arttor/helmify?tab=readme-ov-file#integrate-to-your-operator-sdkkubebuilder-project

manifests: controller-gen ## Generate WebhookConfiguration, ClusterRole and CustomResourceDefinition objects.
$(CONTROLLER_GEN) rbac:roleName=manager-role crd:maxDescLen=120 webhook paths="./..." output:crd:artifacts:config=config/crd/bases

kustomize: $(KUSTOMIZE) ## Download kustomize locally if necessary.
$(KUSTOMIZE): $(LOCALBIN)
$(call go-install-tool,$(KUSTOMIZE),sigs.k8s.io/kustomize/kustomize/v5,$(KUSTOMIZE_VERSION))

That said, the "official" method for managing operator deployment/lifecycle is something called OLM and operator bundles (existing make bundle command) -
https://github.com/operator-framework/operator-lifecycle-manager
https://operatorhub.io/

bundle: manifests kustomize related-image-fs operator-sdk ## Generate bundle manifests and metadata, then validate generated files.

However, i understand the convenience and familiarity of helm for folks so something like helmify would also suffice.

@mkerkstra mkerkstra marked this pull request as draft August 25, 2025 00:27
Comment on lines 102 to 103
# Generate dynamic Helm chart from updated manifests
$(MAKE) helm-generate
Copy link
Contributor

Choose a reason for hiding this comment

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

does it make more sense to run this here?

build-installer: manifests generate-ref kustomize related-image-fs ## Generate a consolidated YAML with CRDs and deployment.
mkdir -p dist
cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG}
$(KUSTOMIZE) build config/default > dist/install.yaml

Copy link
Contributor

Choose a reason for hiding this comment

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

it's worth noting that make build-installer is executed with CI for each release, it also similarly already runs kustomize build

@mkerkstra mkerkstra force-pushed the mkerkstra/operator-add-helm-chart branch 2 times, most recently from 33b4f41 to 74720d6 Compare August 25, 2025 14:23
@mkerkstra mkerkstra force-pushed the mkerkstra/operator-add-helm-chart branch from 8fbc403 to cb27e31 Compare August 25, 2025 14:36
Comment on lines +1 to +6
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.15.0
name: featurestores.feast.dev
Copy link
Contributor

Choose a reason for hiding this comment

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

@@ -0,0 +1,21 @@
apiVersion: v2
Copy link
Contributor

Choose a reason for hiding this comment

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

move this and any helm related files to a new dir within the existing infra/charts path -
https://github.com/feast-dev/feast/tree/master/infra/charts

@franciscojavierarceo franciscojavierarceo changed the title feat: feast-operator Helm chart feat: Feast-operator Helm chart Sep 29, 2025
@franciscojavierarceo
Copy link
Member

@mkerkstra any update here? I was wondering if you want me to include this in the next release?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants