You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/concepts.md
+13-3Lines changed: 13 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,10 +23,20 @@ The high level architecture of the operator is as follows:
23
23
24
24
Each approach have their advantages and disadvantages.
25
25
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.
27
27
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
**When deploying an application via GitOps, we recommend using the `flagd-proxy` mode, which doesn't suffer from the shortcomings above.**
30
40
31
41
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).
32
42
The disadvantage of this approach is that flag configuration updates may take as long as two minutes to propagate, depending on cluster configuration:
0 commit comments