Skip to content

Commit 85600e4

Browse files
committed
chore(operator chart): add chart metadata, values, schema, changelog and readme
1 parent acb97fb commit 85600e4

File tree

6 files changed

+631
-0
lines changed

6 files changed

+631
-0
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Changelog
2+
3+
All notable changes to the Feast Operator Helm chart will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
8+
## [0.52.0] - 2025-08-22
9+
10+
### Added
11+
- Initial release of Feast Operator Helm chart
12+
- Support for Feast v0.52.0
13+
- Configurable deployment with customizable resources, replicas, and security contexts
14+
- Full RBAC support with minimal required permissions
15+
- Metrics service for monitoring and observability
16+
- CRD installation with conditional deployment
17+
- Namespace management with automatic creation
18+
- Health checks and probes configuration
19+
- Node affinity, tolerations, and selectors support
20+
- Comprehensive documentation and examples
21+
- ArtifactHub.io integration with rich metadata
22+
23+
### Features
24+
- **Security**: Pod and container security contexts with non-root execution
25+
- **Monitoring**: Built-in metrics endpoint on port 8443
26+
- **Flexibility**: Configurable image registry, tags, and pull policies
27+
- **Production Ready**: Resource limits, health checks, and graceful shutdown
28+
- **Extensibility**: Support for custom labels, annotations, and environment variables
29+
30+
### Configuration Options
31+
- Operator image configuration (repository, tag, pullPolicy)
32+
- Resource requests and limits
33+
- Replica count and scaling options
34+
- Health check intervals and timeouts
35+
- RBAC and service account settings
36+
- Metrics service configuration
37+
- Namespace and CRD management
38+
- Security contexts and pod security policies
39+
40+
### Documentation
41+
- Comprehensive README with installation instructions
42+
- Configuration reference table
43+
- Examples for common use cases
44+
- Troubleshooting guide
45+
- ArtifactHub metadata and annotations
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
apiVersion: v2
2+
name: feast-operator
3+
description: A Kubernetes operator for managing Feast feature stores
4+
type: application
5+
version: 0.52.0
6+
appVersion: "0.52.0"
7+
keywords:
8+
- machine learning
9+
- operator
10+
- feast
11+
- feature store
12+
- mlops
13+
- kubernetes
14+
- crd
15+
- data
16+
- analytics
17+
- ai
18+
home: https://feast.dev/
19+
icon: https://feast.dev/feast-icon-black.png
20+
sources:
21+
- https://github.com/feast-dev/feast
22+
- https://github.com/feast-dev/feast/tree/master/infra/feast-operator
23+
maintainers:
24+
- name: Feast Community
25+
url: https://feast.dev/
26+
27+
annotations:
28+
# ArtifactHub annotations
29+
artifacthub.io/category: ai-machine-learning
30+
artifacthub.io/operator: "true"
31+
artifacthub.io/operatorCapabilities: Deep Insights
32+
artifacthub.io/containsSecurityUpdates: "false"
33+
artifacthub.io/prerelease: "false"
34+
artifacthub.io/license: Apache-2.0
35+
artifacthub.io/links: |
36+
- name: Website
37+
url: https://feast.dev/
38+
- name: Documentation
39+
url: https://docs.feast.dev/
40+
- name: GitHub Repository
41+
url: https://github.com/feast-dev/feast
42+
- name: Slack Community
43+
url: https://slack.feast.dev/
44+
- name: Blog
45+
url: https://feast.dev/blog/
46+
artifacthub.io/changes: |
47+
- kind: added
48+
description: Initial Helm chart for Feast Operator
49+
links:
50+
- name: GitHub Issue
51+
url: https://github.com/feast-dev/feast/issues/
52+
- kind: added
53+
description: Support for Feast v0.52.0
54+
- kind: added
55+
description: Configurable RBAC and security contexts
56+
- kind: added
57+
description: Metrics and monitoring support
58+
artifacthub.io/crds: |
59+
- kind: FeatureStore
60+
version: v1alpha1
61+
name: featurestores.feast.dev
62+
displayName: Feast Feature Store
63+
description: Defines a Feast feature store deployment
64+
artifacthub.io/crdsExamples: |
65+
- apiVersion: feast.dev/v1alpha1
66+
kind: FeatureStore
67+
metadata:
68+
name: sample-feast
69+
spec:
70+
feastProject: my-project
71+
services:
72+
registry:
73+
local:
74+
persistence:
75+
store:
76+
secretKeyName: sql
77+
secretRef:
78+
name: db-feast
79+
type: sql
80+
artifacthub.io/images: |
81+
- name: feast-operator
82+
image: feast-operator:0.52.0
83+
- name: feast-feature-server
84+
image: feast:0.52.0
85+
- name: cron-job
86+
image: origin-cli:latest
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
# feast-operator
2+
3+
![Version: 0.52.0](https://img.shields.io/badge/Version-0.52.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.52.0](https://img.shields.io/badge/AppVersion-0.52.0-informational?style=flat-square)
4+
5+
Current chart version is `0.52.0`
6+
7+
A Kubernetes operator for managing Feast feature stores
8+
9+
## Installation
10+
```bash
11+
helm repo add feast https://feast-dev.github.io/feast
12+
helm repo update
13+
helm install feast-operator feast/feast-operator \
14+
--namespace features --create-namespace
15+
```
16+
17+
```bash
18+
# From source (within the Feast repo)
19+
cd infra/charts/feast-operator
20+
helm install feast-operator . \
21+
--namespace features --create-namespace
22+
```
23+
24+
## CRDs and Operator
25+
- This chart installs/updates the Feast Operator.
26+
- CRDs can be installed by setting `crds.install=true` (default).
27+
- Manage `FeatureStore` custom resources separately (your app chart/manifests, GitOps).
28+
29+
## Service Account & RBAC
30+
- Creates a dedicated ServiceAccount by default (`serviceAccount.create=true`).
31+
- Includes ClusterRole/Binding and a namespaced Role/Binding for leader election.
32+
33+
## Metrics and Monitoring
34+
- `metrics.enabled` exposes an HTTPS metrics service on port 8443.
35+
- `prometheus.serviceMonitor.enabled` creates a ServiceMonitor (only rendered if the CRD exists in the cluster).
36+
37+
## Uninstall
38+
```bash
39+
helm uninstall feast-operator -n features
40+
```
41+
42+
## Values
43+
44+
| Key | Type | Default | Description |
45+
|-----|------|---------|-------------|
46+
| advanced.healthProbeBindAddress | string | `":8081"` | |
47+
| advanced.leaderElection | bool | `true` | |
48+
| advanced.metricsBindAddress | string | `":8443"` | |
49+
| advanced.terminationGracePeriodSeconds | int | `10` | |
50+
| commonAnnotations | object | `{}` | |
51+
| commonLabels | object | `{}` | |
52+
| crds.install | bool | `true` | |
53+
| global.imagePullSecrets | list | `[]` | |
54+
| global.imageRegistry | string | `""` | |
55+
| metrics.enabled | bool | `true` | |
56+
| metrics.service.annotations | object | `{}` | |
57+
| metrics.service.port | int | `8443` | |
58+
| metrics.service.targetPort | int | `8443` | |
59+
| metrics.service.type | string | `"ClusterIP"` | |
60+
| namePrefix | string | `""` | |
61+
| namespace.create | bool | `true` | |
62+
| namespace.labels.control-plane | string | `"controller-manager"` | |
63+
| namespace.name | string | `""` | |
64+
| operator.affinity | object | `{}` | |
65+
| operator.args | list | `[]` | |
66+
| operator.containerSecurityContext.allowPrivilegeEscalation | bool | `false` | |
67+
| operator.containerSecurityContext.capabilities.drop[0] | string | `"ALL"` | |
68+
| operator.env.relatedImageCronJob | string | `"quay.io/openshift/origin-cli:4.17"` | |
69+
| operator.env.relatedImageFeatureServer | string | `"quay.io/feastdev/feature-server:0.52.0"` | |
70+
| operator.healthcheck.livenessProbe.initialDelaySeconds | int | `15` | |
71+
| operator.healthcheck.livenessProbe.periodSeconds | int | `20` | |
72+
| operator.healthcheck.port | int | `8081` | |
73+
| operator.healthcheck.readinessProbe.initialDelaySeconds | int | `5` | |
74+
| operator.healthcheck.readinessProbe.periodSeconds | int | `10` | |
75+
| operator.image.pullPolicy | string | `"IfNotPresent"` | |
76+
| operator.image.repository | string | `"quay.io/feastdev/feast-operator"` | |
77+
| operator.image.tag | string | `"0.52.0"` | |
78+
| operator.nodeSelector | object | `{}` | |
79+
| operator.podAnnotations."kubectl.kubernetes.io/default-container" | string | `"manager"` | |
80+
| operator.podLabels | object | `{}` | |
81+
| operator.replicaCount | int | `1` | |
82+
| operator.resources.limits.cpu | string | `"1000m"` | |
83+
| operator.resources.limits.memory | string | `"256Mi"` | |
84+
| operator.resources.requests.cpu | string | `"10m"` | |
85+
| operator.resources.requests.memory | string | `"64Mi"` | |
86+
| operator.securityContext.runAsNonRoot | bool | `true` | |
87+
| operator.tolerations | list | `[]` | |
88+
| prometheus.serviceMonitor.enabled | bool | `false` | |
89+
| prometheus.serviceMonitor.interval | string | `"30s"` | |
90+
| prometheus.serviceMonitor.labels | object | `{}` | |
91+
| prometheus.serviceMonitor.timeout | string | `"10s"` | |
92+
| rbac.create | bool | `true` | |
93+
| serviceAccount.annotations | object | `{}` | |
94+
| serviceAccount.create | bool | `true` | |
95+
| serviceAccount.name | string | `""` | |
96+
| storage.defaultAccessModes[0] | string | `"ReadWriteOnce"` | |
97+
| storage.defaultStorageClass | string | `""` | |
98+
| storage.reclaimPolicy | string | `""` | |
99+
100+
## Source Code
101+
102+
* <https://github.com/feast-dev/feast>
103+
* <https://github.com/feast-dev/feast/tree/master/infra/feast-operator>
104+
## Maintainers
105+
106+
| Name | Email | Url |
107+
| ---- | ------ | --- |
108+
| Feast Community | <[email protected]> | <https://feast.dev/> |
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
{{ template "chart.header" . }}
2+
{{ template "chart.badgesSection" . }}
3+
4+
Current chart version is `{{ template "chart.version" . }}`
5+
6+
{{ template "chart.description" . }}
7+
8+
## Installation
9+
```bash
10+
helm repo add feast https://feast-dev.github.io/feast
11+
helm repo update
12+
helm install feast-operator feast/feast-operator \
13+
--namespace features --create-namespace
14+
```
15+
16+
```bash
17+
# From source (within the Feast repo)
18+
cd infra/charts/feast-operator
19+
helm install feast-operator . \
20+
--namespace features --create-namespace
21+
```
22+
23+
## CRDs and Operator
24+
- This chart installs/updates the Feast Operator.
25+
- CRDs can be installed by setting `crds.install=true` (default).
26+
- Manage `FeatureStore` custom resources separately (your app chart/manifests, GitOps).
27+
28+
## Service Account & RBAC
29+
- Creates a dedicated ServiceAccount by default (`serviceAccount.create=true`).
30+
- Includes ClusterRole/Binding and a namespaced Role/Binding for leader election.
31+
32+
## Metrics and Monitoring
33+
- `metrics.enabled` exposes an HTTPS metrics service on port 8443.
34+
- `prometheus.serviceMonitor.enabled` creates a ServiceMonitor (only rendered if the CRD exists in the cluster).
35+
36+
## Uninstall
37+
```bash
38+
helm uninstall feast-operator -n features
39+
```
40+
41+
{{ template "chart.valuesSection" . }}
42+
43+
{{ template "chart.sourcesSection" . }}
44+
{{ template "chart.maintainersSection" . }}

0 commit comments

Comments
 (0)