Skip to content

Commit 2d0fef6

Browse files
author
Oleg Sucharevich
committed
update readme with description on venona's require RBAC from k8s cluster
1 parent 79de992 commit 2d0fef6

File tree

1 file changed

+21
-12
lines changed

1 file changed

+21
-12
lines changed

README.md

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,17 @@
1515

1616
### Install venona
1717

18-
#### Fresh installation
1918
* Download [venona's](https://github.com/codefresh-io/venona/releases) binary
2019
* With homebrew:
2120
* `brew tap codefresh-io/venona`
2221
* `brew install venona`
2322
* Create namespace where venona should run<br />
24-
Example: `kubectl create namespace codefresh-runtime`
23+
> `kubectl create namespace codefresh-runtime`
2524
* Create *new* runtime-environment with Venona's agents installed <br />
26-
Example: `venona install --kube-namespace codefresh-runtime`
25+
> `venona install --kube-namespace codefresh-runtime`
2726
* Get the status <br />
28-
Example: `venona status`
29-
Example: `kubectl get pods -n codefresh-runtime`
30-
27+
> `venona status`
28+
> `kubectl get pods -n codefresh-runtime`
3129
3230
#### Install on cluster version < 1.10
3331
Venona's agent is trying to load avaliables apis using api `/openapi/v2` endpoint
@@ -46,14 +44,25 @@ rules:
4644
- get
4745
```
4846
49-
50-
51-
52-
53-
5447
#### Install on GCP
5548
* Make sure your user has `Kubernetes Engine Cluster Admin` role in google console
56-
* Bind your user with cluster-admin kubernetes clusterrole `kubectl create clusterrolebinding NAME --clusterrole cluster-admin --user YOUR_USER`
49+
* Bind your user with cluster-admin kubernetes clusterrole
50+
> `kubectl create clusterrolebinding NAME --clusterrole cluster-admin --user YOUR_USER`
51+
52+
#### Kubernetes RBAC
53+
Installation of Venona on Kubernetes cluster installing 2 groups of objects,
54+
Each one has own RBAC needs and therefore, created roles(and cluster-roles)
55+
The resource descriptors are avaliable [here](https://github.com/codefresh-io/venona/tree/master/venonactl/templates/kubernetes)
56+
List of the resources that will be created
57+
* Agent (grouped by `/.*.venona.yaml/`)
58+
* `service-account.venona.yaml` - The service account that the agent's pod will use at the end
59+
* `cluster-role-binding.venona.yaml` - The agent discovering K8S apis by calling to `openapi/v2`, this ClusterRoleBinding binds bootstraped ClusterRole by Kubernetes `system:discovery` to `service-account.venona.yaml`. This role has only permissions to make a GET calls to non resources urls
60+
* `role.venona.yaml` - Allow to GET, CREATE and DELETE pods and persistentvolumeclaims
61+
* `role-binding.venona.yaml` - The agent is spinning up pods and pvc, this biniding binds `role.venona.yaml` to `service-account.venona.yaml`
62+
* Runtime-environment (grouped by `/.*.re.yaml/`) Kubernetes controller that spins up all required resources to provide a good caching expirience during pipeline execution
63+
* `service-account.dind-volume-provisioner.re.yaml` - The service account that the controller will use
64+
* `cluster-role.dind-volume-provisioner.re.yaml` Defines all the permission needed for the controller to operate correctly
65+
* `cluster-role-binding.dind-volume-provisioner.yaml` - Binds the ClusterRole to `service-account.dind-volume-provisioner.re.yaml`
5766

5867
#### Upgrade
5968
To upgrade existing runtime-environment, a one that was created without Venona's agent, run:

0 commit comments

Comments
 (0)