open-feature-operator

Installation

Prerequisites

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'

Helm

Artifact hub

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

Upgrading

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.

Upgrading CRDs

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 -

Uninstall

helm uninstall openfeature

kubectl

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.8.5/release.yaml

Uninstall

kubectl delete -f https://github.com/open-feature/open-feature-operator/releases/download/v0.8.5/release.yaml &&
kubectl delete namespace open-feature-operator-system

Release contents

What’s next ?