The OpenFeature Operator is a server that communicates with Kubernetes components within a cluster. As such, it requires a means of authorizing requests between peers. Cert manager handles authorization by adding certificates and certificate issuers as resource types in Kubernetes clusters. This simplifies the process of obtaining, renewing, and using those certificates.
The installation docs for cert manager can be found here.
Alternatively, running the commands below will install cert manager into the cert-manager
namespace.
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.14.3/cert-manager.yaml &&
kubectl wait --for=condition=Available=True deploy --all -n 'cert-manager'
Install the latest helm release:
helm repo add openfeature https://open-feature.github.io/open-feature-operator/ &&
helm repo update &&
helm upgrade --install openfeature openfeature/open-feature-operator
helm upgrade --install openfeature openfeature/open-feature-operator
Note
If you upgrade to OFO v0.5.4
or higher while using a flagd-proxy
provider, the instance of
flagd-proxy
will be automatically upgraded to the latest supported version by the open-feature-operator
.
The upgrade of flagd-proxy
will also consider your current FeatureFlagSource
configuration and adapt
the flagd-proxy
Deployment accordingly.
If you are upgrading OFO to v0.5.3
or lower, flagd-proxy
(if present) won't be upgraded automatically.
CRDs are not upgraded automatically with helm (https://helm.sh/docs/chart_best_practices/custom_resource_definitions/).
OpenFeature Operator's CRDs are templated, and can be updated apart from the operator itself by using helm's template functionality and piping the output to kubectl
:
To install the CRDs:
helm template openfeature/open-feature-operator -s "templates/crds/*.yaml" | kubectl apply -f -
Keep in mind, you can set values as usual during this process:
helm template openfeature/open-feature-operator -s "templates/crds/*.yaml" --set defaultNamespace=myns | kubectl apply -f -
helm uninstall openfeature
Apply the release yaml directly via kubectl
kubectl create namespace open-feature-operator-system &&
kubectl apply -f https://github.com/open-feature/open-feature-operator/releases/download/v0.6.1/release.yaml
kubectl delete -f https://github.com/open-feature/open-feature-operator/releases/download/v0.6.1/release.yaml &&
kubectl delete namespace open-feature-operator-system
FeatureFlag
CustomResourceDefinition
(custom type that holds the configured state of feature flags).- Standard kubernetes primitives (e.g. namespace, accounts, roles, bindings, configmaps).
- Operator controller manager service.
- Operator webhook service.
- Deployment with containers kube-rbac-proxy & manager.
MutatingWebhookConfiguration
(configures webhooks to call the webhook service).
- Follow quick start guide to install custom resources and validate operator behavior: Quick Start