mirror of https://github.com/knative/docs.git
Update Sugar Controller docs (#4925)
* Fixes #4896 Update Sugar Controller docs - Update existing Sugar Controller page to reference LabelSelector Changes - Add Configuration page for "config-sugar" ConfigMap * Apply suggestions from code review - fix code block identation - remove incorrect comments in example config-sugar - clarify default wording to be more clear Co-authored-by: Carlos Santana <csantana23@gmail.com> * Update config/nav.yml with Sugar Config entry * update sugar/README with more practical example * Update sugar - fix code block rendering Co-authored-by: Carlos Santana <csantana23@gmail.com>
This commit is contained in:
parent
c6dc1c2856
commit
e58f571f9b
|
@ -206,6 +206,7 @@ nav:
|
||||||
- Configure Broker defaults: eventing/configuration/broker-configuration.md
|
- Configure Broker defaults: eventing/configuration/broker-configuration.md
|
||||||
- Configure Kafka Channel defaults: eventing/configuration/kafka-channel-configuration.md
|
- Configure Kafka Channel defaults: eventing/configuration/kafka-channel-configuration.md
|
||||||
- Configure event source defaults: eventing/configuration/sources-configuration.md
|
- Configure event source defaults: eventing/configuration/sources-configuration.md
|
||||||
|
- Configure Sugar Controller: eventing/configuration/sugar-configuration.md
|
||||||
# Eventing - observability
|
# Eventing - observability
|
||||||
- Observability:
|
- Observability:
|
||||||
- Collecting logs: eventing/observability/logging/collecting-logs.md
|
- Collecting logs: eventing/observability/logging/collecting-logs.md
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
# Configure Sugar Controller
|
||||||
|
|
||||||
|
This topic describes how to configure the Sugar Controller. You can configure the Sugar controller to create a Broker when a Namespace or Trigger is created with configured labels. See [Knative Eventing Sugar Controller](../sugar/README.md) for an example.
|
||||||
|
|
||||||
|
|
||||||
|
The default `config-sugar` ConfigMap disables Sugar Controller, by setting `namespace-selector` and `trigger-selector` to an empty string.
|
||||||
|
|
||||||
|
To enable the Sugar Controller
|
||||||
|
|
||||||
|
* for Namespaces, the LabelSelector `namespace-selector` can be configured.
|
||||||
|
* for Triggers, the LabelSelector `trigger-selector` can be configured.
|
||||||
|
|
||||||
|
|
||||||
|
Sample configuration to enable Sugar Controller on selected Namespaces and Triggers
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: config-sugar
|
||||||
|
namespace: knative-eventing
|
||||||
|
labels:
|
||||||
|
eventing.knative.dev/release: devel
|
||||||
|
data:
|
||||||
|
namespace-selector: |
|
||||||
|
matchExpressions:
|
||||||
|
- key: "eventing.knative.dev/injection"
|
||||||
|
operator: "In"
|
||||||
|
values: ["enabled"]
|
||||||
|
|
||||||
|
trigger-selector: |
|
||||||
|
matchExpressions:
|
||||||
|
- key: "eventing.knative.dev/injection"
|
||||||
|
operator: "In"
|
||||||
|
values: ["enabled"]
|
||||||
|
```
|
||||||
|
|
||||||
|
The Sugar Controller will only operate on Namespaces or Triggers with the label `eventing.knative.dev/injection: enabled`. This also emulates the legacy Sugar Controller behavior for Namespaces.
|
||||||
|
|
||||||
|
|
||||||
|
You can edit this ConfigMap by running the command:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
kubectl edit cm config-sugar -n knative-eventing
|
||||||
|
```
|
|
@ -1,6 +1,6 @@
|
||||||
# Knative Eventing Sugar Controller
|
# Knative Eventing Sugar Controller
|
||||||
|
|
||||||
Knative Eventing Sugar Controller will react to special labels and annotations
|
Knative Eventing Sugar Controller will react to configured labels
|
||||||
to produce or control eventing resources in a cluster or namespace. This allows
|
to produce or control eventing resources in a cluster or namespace. This allows
|
||||||
cluster operators and developers to focus on creating fewer resources, and the
|
cluster operators and developers to focus on creating fewer resources, and the
|
||||||
underlying eventing infrastructure is created on-demand, and cleaned up when no
|
underlying eventing infrastructure is created on-demand, and cleaned up when no
|
||||||
|
@ -8,11 +8,8 @@ longer needed.
|
||||||
|
|
||||||
## Installing
|
## Installing
|
||||||
|
|
||||||
The following command installs the Eventing Sugar Controller:
|
The Sugar Controller is `disabled` by default and can be enabled by configuring `config-sugar` ConfigMap.
|
||||||
|
See below for a simple example and [Configure Sugar Controller](../configuration/sugar-configuration.md) for more details.
|
||||||
```bash
|
|
||||||
kubectl apply --filename {{ artifact( repo="eventing", file="eventing-sugar-controller.yaml") }}
|
|
||||||
```
|
|
||||||
|
|
||||||
## Automatic Broker Creation
|
## Automatic Broker Creation
|
||||||
|
|
||||||
|
@ -38,16 +35,35 @@ the default settings:
|
||||||
|
|
||||||
There might be cases where automated Broker creation is desirable, such as on
|
There might be cases where automated Broker creation is desirable, such as on
|
||||||
namespace creation, or on Trigger creation. The Sugar controller enables those
|
namespace creation, or on Trigger creation. The Sugar controller enables those
|
||||||
use-cases:
|
use-cases. The following sample configuration of the `sugar-config` ConfigMap
|
||||||
|
enables Sugar Controller for select Namespaces & all Triggers.
|
||||||
|
|
||||||
- When a Namespace is labeled with `eventing.knative.dev/injection=enabled`, the
|
```yaml
|
||||||
sugar controller will create a default Broker named "default" in that
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: config-sugar
|
||||||
|
namespace: knative-eventing
|
||||||
|
labels:
|
||||||
|
eventing.knative.dev/release: devel
|
||||||
|
data:
|
||||||
|
# Specify a label selector to selectively apply sugaring to certain namespaces
|
||||||
|
namespace-selector: |
|
||||||
|
matchExpressions:
|
||||||
|
- key: "my.custom.injection.key"
|
||||||
|
operator: "In"
|
||||||
|
values: ["enabled"]
|
||||||
|
# Use an empty object to enable for all triggers
|
||||||
|
trigger-selector: |
|
||||||
|
{}
|
||||||
|
```
|
||||||
|
|
||||||
|
- When a Namespace is created with label `my.custom.injection.key: enabled` , the Sugar controller will create a Broker named "default" in that
|
||||||
namespace.
|
namespace.
|
||||||
- When a Trigger is annotated with `eventing.knative.dev/injection=enabled`, the
|
- When a Trigger is created, the Sugar controller will create a Broker named "default" in the
|
||||||
controller will create a Broker named by that Trigger in the Trigger's
|
Trigger's namespace.
|
||||||
Namespace.
|
|
||||||
|
|
||||||
When a Broker is deleted and the mentioned labels or annotations are in use, the
|
When a Broker is deleted and but the referenced label selectors are in use, the
|
||||||
Sugar Controller will automatically recreate a default Broker.
|
Sugar Controller will automatically recreate a default Broker.
|
||||||
|
|
||||||
### Namespace Examples
|
### Namespace Examples
|
||||||
|
@ -62,7 +78,7 @@ Creating a "default" Broker when creating a Namespace:
|
||||||
metadata:
|
metadata:
|
||||||
name: example
|
name: example
|
||||||
labels:
|
labels:
|
||||||
eventing.knative.dev/injection: enabled
|
my.custom.injection.key: enabled
|
||||||
```
|
```
|
||||||
|
|
||||||
1. Apply the YAML file by running the command:
|
1. Apply the YAML file by running the command:
|
||||||
|
@ -75,7 +91,7 @@ Creating a "default" Broker when creating a Namespace:
|
||||||
To automatically create a Broker after a namespace exists, label the Namespace:
|
To automatically create a Broker after a namespace exists, label the Namespace:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
kubectl label namespace default eventing.knative.dev/injection=enabled
|
kubectl label namespace default my.custom.injection.key=enabled
|
||||||
```
|
```
|
||||||
|
|
||||||
If the Broker named "default" already exists in the Namespace, the Sugar
|
If the Broker named "default" already exists in the Namespace, the Sugar
|
||||||
|
@ -92,8 +108,6 @@ kind: Trigger
|
||||||
metadata:
|
metadata:
|
||||||
name: hello-sugar
|
name: hello-sugar
|
||||||
namespace: hello
|
namespace: hello
|
||||||
annotations:
|
|
||||||
eventing.knative.dev/injection: enabled
|
|
||||||
spec:
|
spec:
|
||||||
broker: default
|
broker: default
|
||||||
subscriber:
|
subscriber:
|
||||||
|
|
Loading…
Reference in New Issue