mirror of https://github.com/dapr/docs.git
Change reference spec for the kubernetes events input binding. (#752)
* Change reference spec for the kubernetes events input binding. Add Role ,RoleBinding doc. * Refactor docs * Update kubernetes.md
This commit is contained in:
parent
fccb7d60f2
commit
94d2fe90eb
|
@ -10,7 +10,85 @@ spec:
|
||||||
type: bindings.kubernetes
|
type: bindings.kubernetes
|
||||||
metadata:
|
metadata:
|
||||||
- name: namespace
|
- name: namespace
|
||||||
value: default
|
value: <NAMESPACE>
|
||||||
|
- name: resyncPeriodInSec
|
||||||
|
vale: "<seconds>"
|
||||||
```
|
```
|
||||||
|
|
||||||
- `namespace` is the Kubernetes namespace to read events from. Default is `default`.
|
- `namespace` (required) is the Kubernetes namespace to read events from.
|
||||||
|
- `resyncPeriodInSec` (optional, default `10`) the period of time to refresh event list from Kubernetes API server.
|
||||||
|
|
||||||
|
Output received from the binding is of format `bindings.ReadResponse` with the `Data` field populated with the following structure:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"event": "",
|
||||||
|
"oldVal": {
|
||||||
|
"metadata": {
|
||||||
|
"name": "hello-node.162c2661c524d095",
|
||||||
|
"namespace": "kube-events",
|
||||||
|
"selfLink": "/api/v1/namespaces/kube-events/events/hello-node.162c2661c524d095",
|
||||||
|
...
|
||||||
|
},
|
||||||
|
"involvedObject": {
|
||||||
|
"kind": "Deployment",
|
||||||
|
"namespace": "kube-events",
|
||||||
|
...
|
||||||
|
},
|
||||||
|
"reason": "ScalingReplicaSet",
|
||||||
|
"message": "Scaled up replica set hello-node-7bf657c596 to 1",
|
||||||
|
...
|
||||||
|
},
|
||||||
|
"newVal": {
|
||||||
|
"metadata": { "creationTimestamp": "null" },
|
||||||
|
"involvedObject": {},
|
||||||
|
"source": {},
|
||||||
|
"firstTimestamp": "null",
|
||||||
|
"lastTimestamp": "null",
|
||||||
|
"eventTime": "null",
|
||||||
|
...
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
Three different event types are available:
|
||||||
|
- Add : Only the `newVal` field is populated, `oldVal` field is an empty `v1.Event`, `event` is `add`
|
||||||
|
- Delete : Only the `oldVal` field is populated, `newVal` field is an empty `v1.Event`, `event` is `delete`
|
||||||
|
- Update : Both the `oldVal` and `newVal` fields are populated, `event` is `update`
|
||||||
|
|
||||||
|
## Required permisiions
|
||||||
|
|
||||||
|
For consuming `events` from Kubernetes, permissions need to be assigned to a User/Group/ServiceAccount using [RBAC Auth] mechanism of Kubernetes.
|
||||||
|
|
||||||
|
### Role
|
||||||
|
|
||||||
|
One of the rules need to be of the form as below to give permissions to `get, watch` and `list` `events`. API Groups can be as restrictive as needed.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: Role
|
||||||
|
metadata:
|
||||||
|
namespace: <NAMESPACE>
|
||||||
|
name: <ROLENAME>
|
||||||
|
rules:
|
||||||
|
- apiGroups: [""]
|
||||||
|
resources: ["events"]
|
||||||
|
verbs: ["get", "watch", "list"]
|
||||||
|
```
|
||||||
|
|
||||||
|
### RoleBinding
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: RoleBinding
|
||||||
|
metadata:
|
||||||
|
name: <NAME>
|
||||||
|
namespace: <NAMESPACE> # same as above
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: default # or as need be, can be changed
|
||||||
|
namespace: <NAMESPACE> # same as above
|
||||||
|
roleRef:
|
||||||
|
kind: Role
|
||||||
|
name: <ROLENAME> # same as the one above
|
||||||
|
apiGroup: ""
|
||||||
|
```
|
||||||
|
|
Loading…
Reference in New Issue