Skip to content

Commit 244a625

Browse files
thisthattoddbaertbeeme1mr
authored
docs: add instruction for using OFO and GitOps (#497)
Signed-off-by: Giovanni Liva <[email protected]> Co-authored-by: Todd Baert <[email protected]> Co-authored-by: Michael Beemer <[email protected]>
1 parent 5af75bb commit 244a625

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

docs/concepts.md

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,20 @@ The high level architecture of the operator is as follows:
2323

2424
Each approach have their advantages and disadvantages.
2525

26-
The kubernetes, grpc and flagd-proxy sync configuration has the advantage of providing near real-time flag updates(on the order of seconds) to the flagd sidecar.
26+
The `kubernetes`, `grpc` and `flagd-proxy` sync configuration has the advantage of providing near real-time flag updates (on the order of seconds) to the flagd sidecar.
2727

28-
For example, Kubernetes syncs require the flagd sidecar(and consequently the workload pod) to communicate with the
29-
Kubernetes API. This may violate the security or network policies of some organizations.
28+
The `kubernetes` syncs require the flagd sidecar (and consequently the workload pod) to communicate with the
29+
Kubernetes API. To satisfy this requirement, the OpenFeature Operator registers a [mutating admission webhook](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/)
30+
that changes the manifest of Pods annotated with [OpenFeature annotations](./annotations.md) and adds a `ClusterRoleBinding`
31+
to the `ServiceAccount` of the Pod. This may violate the security or network policies of some organizations.
32+
33+
Furthermore, if you're using GitOps to deliver your application, please ensure that the `ClusterRoleBinding` deployed with the application
34+
are not reconciled. Otherwise, the changes made by the Operator will be reverted, and the injected [flagD](https://github.com/open-feature/flagd) won't be
35+
able to fetch Feature Flag information. For further information on how to avoid reconciling specific resources, you can check
36+
[Argo](https://argo-cd.readthedocs.io/en/stable/user-guide/diffing/#application-level-configuration) and
37+
[Flux](https://fluxcd.io/flux/components/source/gitrepositories/#excluding-files) documentation pages.
38+
39+
**When deploying an application via GitOps, we recommend using the `flagd-proxy` mode, which doesn't suffer from the shortcomings above.**
3040

3141
The `"filepath"` provider requires no such communication, but relies on the fact that [Kubernetes automatically updates mounted ConfigMaps](https://kubernetes.io/docs/concepts/configuration/configmap/#mounted-configmaps-are-updated-automatically).
3242
The disadvantage of this approach is that flag configuration updates may take as long as two minutes to propagate, depending on cluster configuration:

docs/installation.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ helm repo add openfeature https://open-feature.github.io/open-feature-operator/
2121
helm repo update &&
2222
helm upgrade --install openfeature openfeature/open-feature-operator
2323
```
24+
2425
### Upgrading
2526

2627
```sh

0 commit comments

Comments
 (0)