Skip to content

Commit 3365e44

Browse files
authored
Merge pull request #118 from skyerus/issue-104_document-installation
chore: document the end to end installation process with more explanation
2 parents d4abda1 + a0079d6 commit 3365e44

File tree

1 file changed

+52
-4
lines changed

1 file changed

+52
-4
lines changed

README.md

Lines changed: 52 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111

1212
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.
1313

14-
### Deploy the latest release
14+
## Deploy the latest release
1515

16-
_Requires [cert manager](https://cert-manager.io/docs/installation/kubernetes/) installed_
16+
_Requires [cert manager](https://cert-manager.io/docs/installation/kubernetes/) installed (see why [here](#cert-manager))_
1717

1818
<!---x-release-please-start-version-->
1919

@@ -25,7 +25,40 @@ kubectl apply -f https://github.com/open-feature/open-feature-operator/releases/
2525

2626
<!---x-release-please-end-->
2727

28-
### Architecture
28+
### Release contents
29+
30+
- `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
2962

3063
As per the issue [here](https://github.com/open-feature/ofep/issues/1)
3164

@@ -35,7 +68,22 @@ High level architecture is as follows:
3568

3669
<img src="images/arch-0.png" width="700">
3770

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
3987

4088
When wishing to leverage feature flagging within the local pod, the following steps are required:
4189

0 commit comments

Comments
 (0)