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: README.md
+52-4Lines changed: 52 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,9 +11,9 @@
11
11
12
12
The OpenFeature Operator is a Kubernetes native operator that allows you to expose feature flags to your applications. It injects a [flagD](https://github.com/open-feature/flagd) sidecar into your pod and allows you to poll the flagD server for feature flags in a variety of ways.
-`certificate.yaml` holds the cert-manager manifests used to authorize requests between components.
31
+
-`release.yaml` contains the configuration of:
32
+
-`FeatureFlagConfiguration``CustomResourceDefinition` (custom type that holds the configured state of feature flags).
33
+
- Standard kubernetes primitives (e.g. namespace, accounts, roles, bindings, configmaps).
34
+
- Operator controller manager service.
35
+
- Operator webhook service.
36
+
- Deployment with containers kube-rbac-proxy & manager.
37
+
-`MutatingWebhookConfiguration` (configures webhooks to call the webhook service).
38
+
39
+
### How to deploy a flag consuming application
40
+
41
+
_Prerequisite: the release and certificates have been deployed as outlined above._
42
+
43
+
Deploying a flag consuming application requires (at minimum) the creation of the following 2 resources (an example can be found [here](./config/samples/end-to-end.yaml)):
44
+
45
+
#### FeatureFlagConfiguration
46
+
47
+
This is a `CustomResourceDefinition` which contains the feature flags specification and a name of the spec.
48
+
49
+
#### Deployment (or Statefulset/Daemonset)
50
+
51
+
This is a kubernetes primitive for deploying an application. The metadata annotations must include `openfeature.dev/featureflagconfiguration`
52
+
with the value set as the name of the `FeatureFlagConfiguration` created in the step prior.
53
+
54
+
e.g.
55
+
```
56
+
metadata:
57
+
annotations:
58
+
openfeature.dev/featureflagconfiguration: "demo"
59
+
```
60
+
61
+
## Architecture
29
62
30
63
As per the issue [here](https://github.com/open-feature/ofep/issues/1)
31
64
@@ -35,7 +68,22 @@ High level architecture is as follows:
35
68
36
69
<imgsrc="images/arch-0.png"width="700">
37
70
38
-
### Example
71
+
### Requirements
72
+
73
+
#### Namespace
74
+
75
+
The Kubernetes resources created by OpenFeature Operator are under the `open-feature-operator-system` namespace. This means
76
+
any resources that want to communicate with the OFO system (e.g. an application calling flag evaluations) must fall under
77
+
this namespace.
78
+
79
+
#### Cert Manager
80
+
81
+
OpenFeature Operator is a server that communicates with Kubernetes components within the cluster, as such it requires a means of
82
+
authorizing requests between peers. [Cert manager](https://cert-manager.io/) handles the authorization by
83
+
adding certificates and certificate issuers as resource types in Kubernetes clusters, and simplifies the process of
84
+
obtaining, renewing and using those certificates.
85
+
86
+
## Example
39
87
40
88
When wishing to leverage feature flagging within the local pod, the following steps are required:
0 commit comments