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
This will add the instructions in TektonConfig doc how to install and manage
Results component through Tekton Config TektonConfig doc and updates TektonResult doc
Signed-off-by: Shiv Verma
Copy file name to clipboardExpand all lines: docs/TektonConfig.md
+53-2Lines changed: 53 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,6 +18,7 @@ Operator provides support for installing and managing following operator compone
18
18
Other than the above components depending on the platform operator also provides support for
19
19
- On both Kubernetes and OpenShift
20
20
-[TektonChain](./TektonChain.md)
21
+
-[TektonResult](./TektonResult.md)
21
22
- On Kubernetes
22
23
-[TektonDashboard](./TektonDashboard.md)
23
24
- On OpenShift
@@ -113,6 +114,10 @@ The TektonConfig CR provides the following features
113
114
configMaps: {}
114
115
deployments: {}
115
116
webhookConfigurationOptions: {}
117
+
result:
118
+
disabled: false
119
+
is_external_db: false
120
+
options: {}
116
121
platforms:
117
122
openshift:
118
123
pipelinesAsCode:
@@ -165,8 +170,8 @@ By default, namespace would be `tekton-pipelines` for Kubernetes and `openshift-
165
170
166
171
This allows user to choose which all components to install on the cluster.
167
172
There are 3 profiles available:
168
-
- `all`: This profile will install all components (TektonPipeline, TektonTrigger and TektonChain)
169
-
- `basic`: This profile will install only TektonPipeline, TektonTrigger and TektonChain component
173
+
- `all`: This profile will install all components (TektonPipeline, TektonTrigger,TektonResult and TektonChain)
174
+
- `basic`: This profile will install only TektonPipeline, TektonTrigger, TektonResult and TektonChain component
170
175
- `lite`: This profile will install only TektonPipeline component
171
176
172
177
On Kubernetes, `all` profile will install `TektonDashboard` and on OpenShift `TektonAddon` will be installed.
@@ -284,6 +289,52 @@ chain:
284
289
transparency.url: #value
285
290
```
286
291
292
+
### Result
293
+
294
+
Result section allows user to customize the Tekton Result component, Refer to [Result Spec](https://github.com/tektoncd/operator/blob/main/docs/TektonResult.md#spec) section in TektonResult for available options.
295
+
296
+
Default Result configuration in TektonConfig looks like following if user doesn't specified any configuration options
297
+
298
+
Example:
299
+
300
+
```yaml
301
+
result:
302
+
disabled: false
303
+
is_external_db: false
304
+
options: {}
305
+
```
306
+
307
+
User can customize Result configuration with following options
308
+
309
+
Example:
310
+
311
+
```yaml
312
+
result:
313
+
disabled: false # - `disabled` : if the value set as `true`, result component will be disabled (default: `false`)
314
+
targetNamespace: tekton-pipelines
315
+
is_external_db: false # By default, this is set to false, TektonOperator will create Tekton Results database. If set to true, an external database will be used, and Tekton Results will retrieve its database credentials from the Kubernetes secret named tekton-results-postgres
316
+
db_host: localhost
317
+
db_port: 5342
318
+
db_sslmode: verify-full
319
+
db_sslrootcert: /etc/tls/db/ca.crt
320
+
db_enable_auto_migration: true
321
+
log_level: debug
322
+
logs_api: true
323
+
logs_type: File
324
+
logs_buffer_size: 90kb
325
+
logs_path: /logs
326
+
auth_disable: true
327
+
logging_pvc_name: tekton-logs
328
+
secret_name: # optional
329
+
gcs_creds_secret_name: <value>
330
+
gcc_creds_secret_key: <value>
331
+
gcs_bucket_name: <value>
332
+
loki_stack_name: #optional
333
+
loki_stack_namespace: #optional
334
+
prometheus_port: 9090
335
+
prometheus_histogram: false
336
+
```
337
+
287
338
### Pruner
288
339
Pruner provides auto clean up feature for the Tekton `pipelinerun` and `taskrun` resources. In the background pruner container runs `tkn` command.
Note: Feel free to use any cert management software to do this!
36
-
37
-
Tekton Results expects the cert/key pair to be stored in a [TLS Kubernetes Secret](https://kubernetes.io/docs/concepts/configuration/secret/#tls-secrets).
38
-
Update the namespace value in below export command if Tekton Pipelines is installed in a different namespace.
TektonResult is installed through [TektonConfig](./TektonConfig.md) by default.
15
+
16
+
**Note** : TektonOperator creates a secret for default database root password and a tls secret for TektonResult, the TektonResult doesn't rotate the tls certificate.
17
+
18
+
- Create PVC if using PVC for logging (Optional)
19
+
56
20
```!bash
57
21
cat <<EOF > pvc.yaml
58
22
apiVersion: v1
@@ -71,17 +35,15 @@ EOF
71
35
kubectl apply -f pvc.yaml
72
36
```
73
37
74
-
- Once the secrets are created create a TektonResult CR (Check ##Properties) as below.
- Check the status of installation using following command
79
39
```sh
80
40
kubectl get tektonresults.operator.tekton.dev
81
41
```
82
42
83
43
## Spec
44
+
84
45
The TektonResult CR is like below:
46
+
85
47
```yaml
86
48
apiVersion: operator.tekton.dev/v1alpha1
87
49
kind: TektonResult
@@ -114,22 +76,23 @@ spec:
114
76
115
77
These properties are analogous to the one in configmap of tekton results api `tekton-results-api-config` documented at [api.md]:https://github.com/tektoncd/results/blob/4472848a0fb7c1473cfca8b647553170efac78a1/cmd/api/README.md
116
78
117
-
118
-
[result]:https://github.com/tektoncd/results
119
-
79
+
[result]: https://github.com/tektoncd/results
120
80
121
81
### Property "secret_name":
82
+
122
83
`secret_name` - name of your custom secret or leave it as empty. It an optional property. The secret should be created by the user on the `targetNamespace`. The secret can contain `S3_` prefixed keys from the [result API properties](https://github.com/tektoncd/results/blob/fded140081468e418aeb860d16aca3306c675d8b/cmd/api/README.md). Please note: the key of the secret should be in UPPER_CASE and values should be in `string` format.
123
84
The following keys are supported by this secret.
124
-
* `S3_BUCKET_NAME`
125
-
* `S3_ENDPOINT`
126
-
* `S3_HOSTNAME_IMMUTABLE`
127
-
* `S3_REGION`
128
-
* `S3_ACCESS_KEY_ID`
129
-
* `S3_SECRET_ACCESS_KEY`
130
-
* `S3_MULTI_PART_SIZE`
85
+
86
+
- `S3_BUCKET_NAME`
87
+
- `S3_ENDPOINT`
88
+
- `S3_HOSTNAME_IMMUTABLE`
89
+
- `S3_REGION`
90
+
- `S3_ACCESS_KEY_ID`
91
+
- `S3_SECRET_ACCESS_KEY`
92
+
- `S3_MULTI_PART_SIZE`
131
93
132
94
#### Sample Secret File
95
+
133
96
```yaml
134
97
apiVersion: v1
135
98
kind: Secret
@@ -147,9 +110,10 @@ stringData:
147
110
S3_MULTI_PART_SIZE: "5242880"
148
111
```
149
112
150
-
151
113
### GCS specific Property
114
+
152
115
The follow keys are needed for enabling GCS storage of logs:
116
+
153
117
```yaml
154
118
apiVersion: operator.tekton.dev/v1alpha1
155
119
kind: TektonResult
@@ -185,15 +149,18 @@ If you want to move from internal DB to external DB, please take backup of the D
185
149
delete previous TektonResult CR. and recreate the fresh one with following instructions:
186
150
187
151
- Generate a secret with user name and password for Postgres (subsitute ${password} with your password):
152
+
188
153
```sh
189
154
export NAMESPACE="tekton-pipelines" # Put the targetNamespace of TektonResult where it is going to be installed.
To secure the DB connection using self-segned certificate or using certificate signed by 3rd party CA (e.g AWS RDS), one can provide path to the DB SSL root certificate, mounted and available on the Results API pod. The configuration will look like:
214
180
215
-
216
181
```yaml
217
182
apiVersion: operator.tekton.dev/v1alpha1
218
183
kind: TektonResult
@@ -238,10 +203,11 @@ and bad for performance. It's better to use forwarders like Vector, Promtail, Fl
238
203
239
204
#### Loki
240
205
241
-
You can either use Grafana's [Helm Repo](https://grafana.com/docs/loki/latest/setup/install/helm/) or operator from [OperatorHub](https://operatorhub.io/operator/loki-operator) to install Loki.
206
+
You can either use Grafana's [Helm Repo](https://grafana.com/docs/loki/latest/setup/install/helm/) or operator from [OperatorHub](https://operatorhub.io/operator/loki-operator) to install Loki.
242
207
Installing via operator simplies certain operations for Tekton Operator. You just need to configure `lokistack_name` and `lokistack_namespace`.
243
208
244
209
In case of helm installation, you will need to configure options field to configure Results API configMap `tekton-results-api-config`:
210
+
245
211
```yaml
246
212
LOGS_API
247
213
LOGGING_PLUGIN_PROXY_PATH
@@ -260,6 +226,7 @@ Please consult the docs [here](https://github.com/tektoncd/results/blob/main/doc
260
226
These fields allow you to configure how Tekton Results interacts with your Loki backend.
261
227
262
228
You might need to configure following environment variable to Tekton Results API deployment if you are using some custom CA to generate TLS certificate:
229
+
263
230
```yaml
264
231
LOGGING_PLUGIN_CA_CERT
265
232
```
@@ -270,14 +237,12 @@ LOGGING_PLUGIN_CA_CERT
270
237
271
238
You need to configure forwarder systems to add labels for namespace, pass TaskRun UID/PipelineRun UID in pods and a common label <key:value> alongwith logs from nodes.
272
239
273
-
A sample configuration for vector: [values.yaml](https://github.com/tektoncd/results/blob/main/test/e2e/loki_vector/vector.yaml).
240
+
A sample configuration for vector: [values.yaml](https://github.com/tektoncd/results/blob/main/test/e2e/loki_vector/vector.yaml).
274
241
275
242
### OpenShift (LokiStack + OpenShift Logging)
276
243
277
-
278
244
To configure LokiStack with TektonResult, you can use the `lokistack_name` and `lokistack_namespace` properties in the TektonResult custom resource. Here's how to do it:
279
245
280
-
281
246
1. First, ensure that you have LokiStack installed in your cluster.
282
247
283
248
2. Then, create or update your TektonResult CR with the following properties:
@@ -293,16 +258,17 @@ spec:
293
258
lokistack_name: your-lokistack-name
294
259
lokistack_namespace: your-lokistack-namespace
295
260
```
261
+
296
262
Replace your-lokistack-name with the name of your LokiStack instance and your-lokistack-namespace with the namespace where LokiStack is installed.
297
263
298
264
By setting these properties, Operator will configure Tekton Result to use the specified LokiStack instance for log retrieval.
299
265
300
-
301
266
#### OpenShift Logging
302
267
303
268
Install the openshift logging operator by following this: [Deploying Cluster Logging](https://docs.openshift.com/container-platform/4.16/observability/logging/cluster-logging-deploying.html#logging-loki-gui-install_cluster-logging-deploying)
304
269
305
270
If you are installing OpenShift Logging Operator only for TaskRun Logs, then you also need to configure a ClusterLogForwarder:
0 commit comments