-
Notifications
You must be signed in to change notification settings - Fork 340
/
traits.yaml
executable file
·1571 lines (1571 loc) · 65.3 KB
/
traits.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
traits:
- name: 3scale
platform: false
profiles:
- Kubernetes
- Knative
- OpenShift
description: The 3scale trait can be used to automatically create annotations that
allow 3scale to discover the generated service and make it available for API management.
The 3scale trait is disabled by default.
properties:
- name: enabled
type: bool
description: Can be used to enable or disable a trait. All traits share this common
property.
- name: auto
type: bool
description: Enables automatic configuration of the trait.
- name: scheme
type: string
description: The scheme to use to contact the service (default `http`)
- name: path
type: string
description: The path where the API is published (default `/`)
- name: port
type: int
description: The port where the service is exposed (default `80`)
- name: description-path
type: string
description: The path where the Open-API specification is published (default `/openapi.json`)
- name: affinity
platform: false
profiles:
- Kubernetes
- Knative
- OpenShift
description: Allows constraining which nodes the integration pod(s) are eligible
to be scheduled on, based on labels on the node, or with inter-pod affinity and
anti-affinity, based on labels on pods that are already running on the nodes.
It's disabled by default.
properties:
- name: enabled
type: bool
description: Can be used to enable or disable a trait. All traits share this common
property.
- name: pod-affinity
type: bool
description: Always co-locates multiple replicas of the integration in the same
node (default *false*).
- name: pod-anti-affinity
type: bool
description: Never co-locates multiple replicas of the integration in the same
node (default *false*).
- name: node-affinity-labels
type: '[]string'
description: Defines a set of nodes the integration pod(s) are eligible to be
scheduled on, based on labels on the node.
- name: pod-affinity-labels
type: '[]string'
description: Defines a set of pods (namely those matching the label selector,
relative to the given namespace) that the integration pod(s) should be co-located
with.
- name: pod-anti-affinity-labels
type: '[]string'
description: Defines a set of pods (namely those matching the label selector,
relative to the given namespace) that the integration pod(s) should not be co-located
with.
- name: aws-secrets-manager
platform: false
profiles:
- Kubernetes
- Knative
- OpenShift
description: 'The Secrets Manager trait can be used to use secrets from AWS Secrets
Manager The AWS Secrets Manager trait is disabled by default. For more information
about how to use secrets from AWS Secrets Manager take a look at the components
docs: xref:components::aws-secrets-manager-component.adoc[AWS Secrets Manager
component] A sample execution of this trait, would require the following trait
options: -t aws-secrets-manager.enabled=true -t aws-secrets-manager.access-key="aws-access-key"
-t aws-secrets-manager.secret-key="aws-secret-key" -t aws-secrets-manager.region="aws-region"
To enable the automatic context reload on secrets updates you should define the
following trait options: -t aws-secrets-manager.enabled=true -t aws-secrets-manager.access-key="aws-access-key"
-t aws-secrets-manager.secret-key="aws-secret-key" -t aws-secrets-manager.region="aws-region"
-t aws-secrets-manager.context-reload-enabled="true" -t aws-secrets-manager.refresh-enabled="true"
-t aws-secrets-manager.refresh-period="30000" -t aws-secrets-manager.secrets="test*"'
properties:
- name: enabled
type: bool
description: Can be used to enable or disable a trait. All traits share this common
property.
- name: auto
type: bool
description: Enables automatic configuration of the trait.
- name: access-key
type: string
description: The AWS Access Key to use
- name: secret-key
type: string
description: The AWS Secret Key to use
- name: region
type: string
description: The AWS Region to use
- name: use-default-credentials-provider
type: bool
description: Define if we want to use the Default Credentials Provider chain as
authentication method
- name: context-reload-enabled
type: bool
description: Define if we want to use the Camel Context Reload feature or not
- name: refresh-enabled
type: bool
description: Define if we want to use the Refresh Feature for secrets
- name: refresh-period
type: string
description: If Refresh is enabled, this defines the interval to check the refresh
event
- name: secrets
type: string
description: If Refresh is enabled, the regular expression representing the secrets
we want to track
- name: azure-key-vault
platform: false
profiles:
- Kubernetes
- Knative
- OpenShift
description: 'The Azure Key Vault trait can be used to use secrets from Azure Key
Vault service The Azure Key Vault trait is disabled by default. For more information
about how to use secrets from Azure Key Vault component take a look at the components
docs: xref:components::azure-key-vault-component.adoc[Azure Key Vault component]
A sample execution of this trait, would require the following trait options: -t
azure-key-vault.enabled=true -t azure-key-vault.tenant-id="tenant-id" -t azure-key-vault.client-id="client-id"
-t azure-key-vault.client-secret="client-secret" -t azure-key-vault.vault-name="vault-name"
To enable the automatic context reload on secrets updates you should define the
following trait options: -t azure-key-vault.enabled=true -t azure-key-vault.tenant-id="tenant-id"
-t azure-key-vault.client-id="client-id" -t azure-key-vault.client-secret="client-secret"
-t azure-key-vault.vault-name="vault-name" -t azure-key-vault.context-reload-enabled="true"
-t azure-key-vault.refresh-enabled="true" -t azure-key-vault.refresh-period="30000"
-t azure-key-vault.secrets="test*" -t azure-key-vault.eventhub-connection-string="connection-string"
-t azure-key-vault.blob-account-name="account-name" -t azure-key-vault.blob-container-name="container-name" -t
azure-key-vault.blob-access-key="account-name"'
properties:
- name: enabled
type: bool
description: Can be used to enable or disable a trait. All traits share this common
property.
- name: auto
type: bool
description: Enables automatic configuration of the trait.
- name: tenant-id
type: string
description: The Azure Tenant Id for accessing Key Vault
- name: client-id
type: string
description: The Azure Client Id for accessing Key Vault
- name: client-secret
type: string
description: The Azure Client Secret for accessing Key Vault
- name: vault-name
type: string
description: The Azure Vault Name for accessing Key Vault
- name: context-reload-enabled
type: bool
description: Define if we want to use the Camel Context Reload feature or not
- name: refresh-enabled
type: bool
description: Define if we want to use the Refresh Feature for secrets
- name: refresh-period
type: string
description: If Refresh is enabled, this defines the interval to check the refresh
event
- name: secrets
type: string
description: If Refresh is enabled, the regular expression representing the secrets
we want to track
- name: eventhub-connection-string
type: string
description: If Refresh is enabled, the connection String to point to the Eventhub
service used to track updates
- name: blob-account-name
type: string
description: If Refresh is enabled, the account name for Azure Storage Blob service
used to save checkpoint while consuming from Eventhub
- name: blob-access-key
type: string
description: If Refresh is enabled, the access key for Azure Storage Blob service
used to save checkpoint while consuming from Eventhub
- name: blob-container-name
type: string
description: If Refresh is enabled, the container name for Azure Storage Blob
service used to save checkpoint while consuming from Eventhub
- name: builder
platform: true
profiles:
- Kubernetes
- Knative
- OpenShift
description: BuilderTrait is internally used to determine the best strategy to build
and configure IntegrationKits.
properties:
- name: enabled
type: bool
description: Can be used to enable or disable a trait. All traits share this common
property.
- name: verbose
type: bool
description: Enable verbose logging on build components that support it (e.g.
Kaniko build pod).
- name: properties
type: '[]string'
description: A list of properties to be provided to the build task
- name: strategy
type: string
description: The strategy to use, either `pod` or `routine` (default routine)
- name: order-strategy
type: string
description: The build order strategy to use, either `dependencies`, `fifo` or
`sequential` (default sequential)
- name: request-cpu
type: string
description: When using `pod` strategy, the minimum amount of CPU required by
the pod builder.
- name: request-memory
type: string
description: When using `pod` strategy, the minimum amount of memory required
by the pod builder.
- name: limit-cpu
type: string
description: When using `pod` strategy, the maximum amount of CPU required by
the pod builder.
- name: limit-memory
type: string
description: When using `pod` strategy, the maximum amount of memory required
by the pod builder.
- name: tasks
type: '[]string'
description: A list of tasks to be executed (available only when using `pod` strategy)
with format <name>;<container-image>;<container-command>
- name: camel
platform: true
profiles:
- Kubernetes
- Knative
- OpenShift
description: The Camel trait can be used to configure versions of Apache Camel K
runtime and related libraries, it cannot be disabled.
properties:
- name: enabled
type: bool
description: Can be used to enable or disable a trait. All traits share this common
property.
- name: runtime-version
type: string
description: The camel-k-runtime version to use for the integration. It overrides
the default version set in the Integration Platform.
- name: properties
type: '[]string'
description: A list of properties to be provided to the Integration runtime
- name: container
platform: true
profiles:
- Kubernetes
- Knative
- OpenShift
description: The Container trait can be used to configure properties of the container
where the integration will run. It also provides configuration for Services associated
to the container.
properties:
- name: enabled
type: bool
description: Can be used to enable or disable a trait. All traits share this common
property.
- name: auto
type: bool
description: To automatically enable the trait
- name: request-cpu
type: string
description: The minimum amount of CPU required.
- name: request-memory
type: string
description: The minimum amount of memory required.
- name: limit-cpu
type: string
description: The maximum amount of CPU required.
- name: limit-memory
type: string
description: The maximum amount of memory required.
- name: expose
type: bool
description: Can be used to enable/disable exposure via kubernetes Service.
- name: port
type: int
description: To configure a different port exposed by the container (default `8080`).
- name: port-name
type: string
description: To configure a different port name for the port exposed by the container.
It defaults to `http` only when the `expose` parameter is true.
- name: service-port
type: int
description: To configure under which service port the container port is to be
exposed (default `80`).
- name: service-port-name
type: string
description: To configure under which service port name the container port is
to be exposed (default `http`).
- name: name
type: string
description: The main container name. It's named `integration` by default.
- name: image
type: string
description: The main container image
- name: image-pull-policy
type: PullPolicy
description: 'The pull policy: Always|Never|IfNotPresent'
- name: cron
platform: false
profiles:
- Kubernetes
- Knative
- OpenShift
description: 'The Cron trait can be used to customize the behaviour of periodic
timer/cron based integrations. While normally an integration requires a pod to
be always up and running, some periodic tasks, such as batch jobs, require to
be activated at specific hours of the day or with a periodic delay of minutes.
For such tasks, the cron trait can materialize the integration as a Kubernetes
CronJob instead of a standard deployment, in order to save resources when the
integration does not need to be executed. Integrations that start from the following
components are evaluated by the cron trait: `timer`, `cron`, `quartz`. The rules
for using a Kubernetes CronJob are the following: - `timer`: when periods can
be written as cron expressions. E.g. `timer:tick?period=60000`. - `cron`, `quartz`:
when the cron expression does not contain seconds (or the "seconds" part is set
to 0). E.g. `cron:tab?schedule=0/2${plus}*{plus}*{plus}*{plus}?` or `quartz:trigger?cron=0{plus}0/2{plus}*{plus}*{plus}*{plus}?`.'
properties:
- name: enabled
type: bool
description: Can be used to enable or disable a trait. All traits share this common
property.
- name: schedule
type: string
description: The CronJob schedule for the whole integration. If multiple routes
are declared, they must have the same schedule for this mechanism to work correctly.
- name: components
type: string
description: 'A comma separated list of the Camel components that need to be customized
in order for them to work when the schedule is triggered externally by Kubernetes.
A specific customizer is activated for each specified component. E.g. for the
`timer` component, the `cron-timer` customizer is activated (it''s present in
the `org.apache.camel.k:camel-k-cron` library). Supported components are currently:
`cron`, `timer` and `quartz`.'
- name: fallback
type: bool
description: Use the default Camel implementation of the `cron` endpoint (`quartz`)
instead of trying to materialize the integration as Kubernetes CronJob.
- name: concurrency-policy
type: string
description: 'Specifies how to treat concurrent executions of a Job. Valid values
are: - "Allow": allows CronJobs to run concurrently; - "Forbid" (default): forbids
concurrent runs, skipping next run if previous run hasn''t finished yet; - "Replace":
cancels currently running job and replaces it with a new one'
- name: auto
type: bool
description: Automatically deploy the integration as CronJob when all routes are
either starting from a periodic consumer (only `cron`, `timer` and `quartz`
are supported) or a passive consumer (e.g. `direct` is a passive consumer). It's
required that all periodic consumers have the same period, and it can be expressed
as cron schedule (e.g. `1m` can be expressed as `0/1 * * * *`, while `35m` or
`50s` cannot).
- name: starting-deadline-seconds
type: int64
description: Optional deadline in seconds for starting the job if it misses scheduled
time for any reason. Missed jobs executions will be counted as failed ones.
- name: active-deadline-seconds
type: int64
description: Specifies the duration in seconds, relative to the start time, that
the job may be continuously active before it is considered to be failed. It
defaults to 60s.
- name: backoff-limit
type: int32
description: Specifies the number of retries before marking the job failed. It
defaults to 2.
- name: dependencies
platform: true
profiles:
- Kubernetes
- Knative
- OpenShift
description: The Dependencies trait is internally used to automatically add runtime
dependencies based on the integration that the user wants to run.
properties: []
- name: deployer
platform: true
profiles:
- Kubernetes
- Knative
- OpenShift
description: The deployer trait is responsible for deploying the resources owned
by the integration, and can be used to explicitly select the underlying controller
that will manage the integration pods.
properties:
- name: enabled
type: bool
description: Can be used to enable or disable a trait. All traits share this common
property.
- name: kind
type: string
description: Allows to explicitly select the desired deployment kind between `deployment`,
`cron-job` or `knative-service` when creating the resources for running the
integration.
- name: use-ssa
type: bool
description: Use server-side apply to update the owned resources (default `true`).
Note that it automatically falls back to client-side patching, if SSA is not
available, e.g., on old Kubernetes clusters.
- name: deployment
platform: true
profiles:
- Kubernetes
- Knative
- OpenShift
description: The Deployment trait is responsible for generating the Kubernetes deployment
that will make sure the integration will run in the cluster.
properties:
- name: enabled
type: bool
description: Can be used to enable or disable a trait. All traits share this common
property.
- name: progress-deadline-seconds
type: int32
description: The maximum time in seconds for the deployment to make progress before
it is considered to be failed. It defaults to 60s.
- name: strategy
type: DeploymentStrategyType
description: The deployment strategy to use to replace existing pods with new
ones.
- name: rolling-update-max-unavailable
type: int
description: 'The maximum number of pods that can be unavailable during the update.
Value can be an absolute number (ex: 5) or a percentage of desired pods (ex:
10%). Absolute number is calculated from percentage by rounding down. This can
not be 0 if MaxSurge is 0. Defaults to 25%.'
- name: rolling-update-max-surge
type: int
description: 'The maximum number of pods that can be scheduled above the desired
number of pods. Value can be an absolute number (ex: 5) or a percentage of desired
pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is
calculated from percentage by rounding up. Defaults to 25%.'
- name: environment
platform: true
profiles:
- Kubernetes
- Knative
- OpenShift
description: The environment trait is used internally to inject standard environment
variables in the integration container, such as `NAMESPACE`, `POD_NAME` and others.
properties:
- name: enabled
type: bool
description: Can be used to enable or disable a trait. All traits share this common
property.
- name: container-meta
type: bool
description: Enables injection of `NAMESPACE` and `POD_NAME` environment variables
(default `true`)
- name: http-proxy
type: bool
description: Propagates the `HTTP_PROXY`, `HTTPS_PROXY` and `NO_PROXY` environment
variables (default `true`)
- name: vars
type: '[]string'
description: A list of environment variables to be added to the integration container.
The syntax is KEY=VALUE, e.g., `MY_VAR="my value"`. These take precedence over
the previously defined environment variables.
- name: error-handler
platform: true
profiles:
- Kubernetes
- Knative
- OpenShift
description: The error-handler is a platform trait used to inject Error Handler
source into the integration runtime.
properties:
- name: enabled
type: bool
description: Can be used to enable or disable a trait. All traits share this common
property.
- name: ref
type: string
description: The error handler ref name provided or found in application properties
- name: gc
platform: false
profiles:
- Kubernetes
- Knative
- OpenShift
description: The GC Trait garbage-collects all resources that are no longer necessary
upon integration updates.
properties:
- name: enabled
type: bool
description: Can be used to enable or disable a trait. All traits share this common
property.
- name: discovery-cache
type: github.com/apache/camel-k/v2/pkg/apis/camel/v1/trait.DiscoveryCacheType
description: 'Discovery client cache to be used, either `disabled`, `disk` or
`memory` (default `memory`). Deprecated: to be removed from trait configuration.'
- name: gcp-secret-manager
platform: false
profiles:
- Kubernetes
- Knative
- OpenShift
description: 'The Google Secret Manager trait can be used to use secrets from Google
Secret Manager The Google Secret Manager trait is disabled by default. For more
information about how to use secrets from Google Secret Manager take a look at
the components docs: xref:components::google-secret-manager-component.adoc[AWS
Secrets Manager component] A sample execution of this trait, would require the
following trait options: -t gpc-secret-manager.enabled=true -t gpc-secret-manager.project-id="project-id"
-t gpc-secret-manager.service-account-key="file:serviceaccount.json" To enable
the automatic context reload on secrets updates you should define the following
trait options: -t gpc-secret-manager.enabled=true -t gpc-secret-manager.project-id="project-id"
-t gpc-secret-manager.service-account-key="file:serviceaccount.json" -t gcp-secret-manager.subscription-name="pubsub-sub"
-t gcp-secret-manager.context-reload-enabled="true" -t gcp-secret-manager.refresh-enabled="true"
-t gcp-secret-manager.refresh-period="30000" -t gcp-secret-manager.secrets="test*"'
properties:
- name: enabled
type: bool
description: Can be used to enable or disable a trait. All traits share this common
property.
- name: auto
type: bool
description: Enables automatic configuration of the trait.
- name: project-id
type: string
description: The Project Id from Google Cloud
- name: service-account-key
type: string
description: The Path to a service account Key File to use secrets from Google
Secret Manager
- name: use-default-instance
type: bool
description: Define if we want to use the Default Instance approach for accessing
the Google Secret Manager service
- name: context-reload-enabled
type: bool
description: Define if we want to use the Camel Context Reload feature or not
- name: refresh-enabled
type: bool
description: Define if we want to use the Refresh Feature for secrets
- name: refresh-period
type: string
description: If Refresh is enabled, this defines the interval to check the refresh
event
- name: secrets
type: string
description: If Refresh is enabled, the regular expression representing the secrets
we want to track
- name: subscription-name
type: string
description: If Refresh is enabled, this defines the subscription name to the
Google PubSub topic used to keep track of updates
- name: hashicorp-vault
platform: false
profiles:
- Kubernetes
- Knative
- OpenShift
description: 'The Hashicorp Vault trait can be used to use secrets from Hashicorp
Vault The Hashicorp Vault trait is disabled by default. For more information about
how to use secrets from Hashicorp vault take a look at the components docs: xref:components::hashicorp-vault-component.adoc[Hashicorp
Vault component] A sample execution of this trait, would require the following
trait options: -t hashicorp-vault.enabled=true -t hashicorp-vault.token="token"
-t hashicorp-vault.port="port" -t hashicorp-vault.engine="engine" -t hashicorp-vault.port="port"
-t hashicorp-vault.scheme="scheme"'
properties:
- name: enabled
type: bool
description: Can be used to enable or disable a trait. All traits share this common
property.
- name: auto
type: bool
description: Enables automatic configuration of the trait.
- name: host
type: string
description: The Host to use
- name: port
type: string
description: The Port to use
- name: engine
type: string
description: The Hashicorp engine to use
- name: token
type: string
description: The token to access Hashicorp Vault
- name: scheme
type: string
description: The scheme to access Hashicorp Vault
- name: health
platform: false
profiles:
- Kubernetes
- Knative
- OpenShift
description: The health trait is responsible for configuring the health probes on
the integration container. It's disabled by default.
properties:
- name: enabled
type: bool
description: Can be used to enable or disable a trait. All traits share this common
property.
- name: liveness-probe-enabled
type: bool
description: Configures the liveness probe for the integration container (default
`false`).
- name: liveness-scheme
type: string
description: Scheme to use when connecting to the liveness probe (default `HTTP`).
- name: liveness-initial-delay
type: int32
description: Number of seconds after the container has started before the liveness
probe is initiated.
- name: liveness-timeout
type: int32
description: Number of seconds after which the liveness probe times out.
- name: liveness-period
type: int32
description: How often to perform the liveness probe.
- name: liveness-success-threshold
type: int32
description: Minimum consecutive successes for the liveness probe to be considered
successful after having failed.
- name: liveness-failure-threshold
type: int32
description: Minimum consecutive failures for the liveness probe to be considered
failed after having succeeded.
- name: readiness-probe-enabled
type: bool
description: Configures the readiness probe for the integration container (default
`true`).
- name: readiness-scheme
type: string
description: Scheme to use when connecting to the readiness probe (default `HTTP`).
- name: readiness-initial-delay
type: int32
description: Number of seconds after the container has started before the readiness
probe is initiated.
- name: readiness-timeout
type: int32
description: Number of seconds after which the readiness probe times out.
- name: readiness-period
type: int32
description: How often to perform the readiness probe.
- name: readiness-success-threshold
type: int32
description: Minimum consecutive successes for the readiness probe to be considered
successful after having failed.
- name: readiness-failure-threshold
type: int32
description: Minimum consecutive failures for the readiness probe to be considered
failed after having succeeded.
- name: startup-probe-enabled
type: bool
description: Configures the startup probe for the integration container (default
`false`).
- name: startup-scheme
type: string
description: Scheme to use when connecting to the startup probe (default `HTTP`).
- name: startup-initial-delay
type: int32
description: Number of seconds after the container has started before the startup
probe is initiated.
- name: startup-timeout
type: int32
description: Number of seconds after which the startup probe times out.
- name: startup-period
type: int32
description: How often to perform the startup probe.
- name: startup-success-threshold
type: int32
description: Minimum consecutive successes for the startup probe to be considered
successful after having failed.
- name: startup-failure-threshold
type: int32
description: Minimum consecutive failures for the startup probe to be considered
failed after having succeeded.
- name: ingress
platform: false
profiles:
- Kubernetes
description: The Ingress trait can be used to expose the service associated with
the integration to the outside world with a Kubernetes Ingress. It's enabled by
default whenever a Service is added to the integration (through the `service`
trait).
properties:
- name: enabled
type: bool
description: Can be used to enable or disable a trait. All traits share this common
property.
- name: annotations
type: map[string]string
description: 'The annotations added to the ingress. This can be used to set controller
specific annotations, e.g., when using the NGINX Ingress controller: See https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md'
- name: host
type: string
description: To configure the host exposed by the ingress.
- name: path
type: string
description: To configure the path exposed by the ingress (default `/`).
- name: path-type
type: k8s.io/api/networking/v1.PathType
description: To configure the path type exposed by the ingress. One of `Exact`,
`Prefix`, `ImplementationSpecific` (default to `Prefix`).
- name: auto
type: bool
description: To automatically add an ingress whenever the integration uses an
HTTP endpoint consumer.
- name: istio
platform: false
profiles:
- Kubernetes
- Knative
- OpenShift
description: The Istio trait allows configuring properties related to the Istio
service mesh, such as sidecar injection and outbound IP ranges.
properties:
- name: enabled
type: bool
description: Can be used to enable or disable a trait. All traits share this common
property.
- name: allow
type: string
description: Configures a (comma-separated) list of CIDR subnets that should not
be intercepted by the Istio proxy (`10.0.0.0/8,172.16.0.0/12,192.168.0.0/16`
by default).
- name: inject
type: bool
description: Forces the value for labels `sidecar.istio.io/inject`. By default
the label is set to `true` on deployment and not set on Knative Service.
- name: jolokia
platform: false
profiles:
- Kubernetes
- Knative
- OpenShift
description: The Jolokia trait activates and configures the Jolokia Java agent.
See https://jolokia.org/reference/html/agents.html
properties:
- name: enabled
type: bool
description: Can be used to enable or disable a trait. All traits share this common
property.
- name: ca-cert
type: string
description: The PEM encoded CA certification file path, used to verify client
certificates, applicable when `protocol` is `https` and `use-ssl-client-authentication`
is `true` (default `/var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt`
for OpenShift).
- name: client-principal
type: '[]string'
description: The principal(s) which must be given in a client certificate to allow
access to the Jolokia endpoint, applicable when `protocol` is `https` and `use-ssl-client-authentication`
is `true` (default `clientPrincipal=cn=system:master-proxy`, `cn=hawtio-online.hawtio.svc`
and `cn=fuse-console.fuse.svc` for OpenShift).
- name: discovery-enabled
type: bool
description: Listen for multicast requests (default `false`)
- name: extended-client-check
type: bool
description: Mandate the client certificate contains a client flag in the extended
key usage section, applicable when `protocol` is `https` and `use-ssl-client-authentication`
is `true` (default `true` for OpenShift).
- name: host
type: string
description: The Host address to which the Jolokia agent should bind to. If `"\*"`
or `"0.0.0.0"` is given, the servers binds to every network interface (default
`"*"`).
- name: password
type: string
description: The password used for authentication, applicable when the `user`
option is set.
- name: port
type: int
description: The Jolokia endpoint port (default `8778`).
- name: protocol
type: string
description: The protocol to use, either `http` or `https` (default `https` for
OpenShift)
- name: user
type: string
description: The user to be used for authentication
- name: use-ssl-client-authentication
type: bool
description: Whether client certificates should be used for authentication (default
`true` for OpenShift).
- name: options
type: '[]string'
description: A list of additional Jolokia options as defined in https://jolokia.org/reference/html/agents.html#agent-jvm-config[JVM
agent configuration options]
- name: jvm
platform: true
profiles:
- Kubernetes
- Knative
- OpenShift
description: The JVM trait is used to configure the JVM that runs the integration.
properties:
- name: enabled
type: bool
description: Can be used to enable or disable a trait. All traits share this common
property.
- name: debug
type: bool
description: Activates remote debugging, so that a debugger can be attached to
the JVM, e.g., using port-forwarding
- name: debug-suspend
type: bool
description: Suspends the target JVM immediately before the main class is loaded
- name: print-command
type: bool
description: Prints the command used the start the JVM in the container logs (default
`true`)
- name: debug-address
type: string
description: Transport address at which to listen for the newly launched JVM (default
`*:5005`)
- name: options
type: '[]string'
description: A list of JVM options
- name: classpath
type: string
description: Additional JVM classpath (use `Linux` classpath separator)
- name: kamelets
platform: true
profiles:
- Kubernetes
- Knative
- OpenShift
description: The kamelets trait is a platform trait used to inject Kamelets into
the integration runtime.
properties:
- name: enabled
type: bool
description: Can be used to enable or disable a trait. All traits share this common
property.
- name: auto
type: bool
description: Automatically inject all referenced Kamelets and their default configuration
(enabled by default)
- name: list
type: string
description: Comma separated list of Kamelet names to load into the current integration
- name: keda
platform: false
profiles:
- Kubernetes
- Knative
- OpenShift
description: The KEDA trait can be used for automatic integration with KEDA autoscalers.
The trait can be either manually configured using the `triggers` option or automatically
configured via markers in the Kamelets. For information on how to use KEDA enabled
Kamelets with the KEDA trait, refer to xref:ROOT:kamelets/kamelets-user.adoc#kamelet-keda-user[the
KEDA section in the Kamelets user guide]. If you want to create Kamelets that
contain KEDA metadata, refer to xref:ROOT:kamelets/kamelets-dev.adoc#kamelet-keda-dev[the
KEDA section in the Kamelets development guide]. The KEDA trait is disabled by
default.
properties:
- name: enabled
type: bool
description: Can be used to enable or disable a trait. All traits share this common
property.
- name: auto
type: bool
description: Enables automatic configuration of the trait. Allows the trait to
infer KEDA triggers from the Kamelets.
- name: hack-controller-replicas
type: bool
description: Set the spec->replicas field on the top level controller to an explicit
value if missing, to allow KEDA to recognize it as a scalable resource.
- name: polling-interval
type: int32
description: Interval (seconds) to check each trigger on.
- name: cooldown-period
type: int32
description: The wait period between the last active trigger reported and scaling
the resource back to 0.
- name: idle-replica-count
type: int32
description: Enabling this property allows KEDA to scale the resource down to
the specified number of replicas.
- name: min-replica-count
type: int32
description: Minimum number of replicas.
- name: max-replica-count
type: int32
description: Maximum number of replicas.
- name: triggers
type: '[]github.com/apache/camel-k/v2/addons/keda.kedaTrigger'
description: Definition of triggers according to the KEDA format. Each trigger
must contain `type` field corresponding to the name of a KEDA autoscaler and
a key/value map named `metadata` containing specific trigger options. An optional
`authentication-secret` can be declared per trigger and the operator will link
each entry of the secret to a KEDA authentication parameter.
- name: knative
platform: false
profiles:
- Knative
description: The Knative trait automatically discovers addresses of Knative resources
and inject them into the running integration. The full Knative configuration is
injected in the CAMEL_KNATIVE_CONFIGURATION in JSON format. The Camel Knative
component will then use the full configuration to configure the routes. The trait
is enabled by default when the Knative profile is active.
properties:
- name: enabled
type: bool
description: Can be used to enable or disable a trait. All traits share this common
property.
- name: configuration
type: string
description: Can be used to inject a Knative complete configuration in JSON format.
- name: channel-sources
type: '[]string'
description: List of channels used as source of integration routes. Can contain
simple channel names or full Camel URIs.
- name: channel-sinks
type: '[]string'
description: List of channels used as destination of integration routes. Can contain
simple channel names or full Camel URIs.
- name: endpoint-sources
type: '[]string'
description: List of channels used as source of integration routes.
- name: endpoint-sinks
type: '[]string'
description: List of endpoints used as destination of integration routes. Can
contain simple endpoint names or full Camel URIs.
- name: event-sources
type: '[]string'
description: List of event types that the integration will be subscribed to. Can
contain simple event types or full Camel URIs (to use a specific broker different
from "default").
- name: event-sinks
type: '[]string'
description: List of event types that the integration will produce. Can contain
simple event types or full Camel URIs (to use a specific broker).
- name: filter-source-channels
type: bool
description: Enables filtering on events based on the header "ce-knativehistory".
Since this header has been removed in newer versions of Knative, filtering is
disabled by default.
- name: sink-binding
type: bool
description: Allows binding the integration to a sink via a Knative SinkBinding
resource. This can be used when the integration targets a single sink. It's
enabled by default when the integration targets a single sink (except when the
integration is owned by a Knative source).
- name: auto
type: bool
description: Enable automatic discovery of all trait properties.
- name: namespace-label
type: bool
description: 'Enables the camel-k-operator to set the "bindings.knative.dev/include=true"
label to the namespace As Knative requires this label to perform injection of
K_SINK URL into the service. If this is false, the integration pod may start
and fail, read the SinkBinding Knative documentation. (default: true)'
- name: knative-service
platform: false
profiles:
- Knative
description: The Knative Service trait allows configuring options when running the
Integration as a Knative service, instead of a standard Kubernetes Deployment.
Running an Integration as a Knative Service enables auto-scaling (and scaling-to-zero),
but those features are only relevant when the Camel route(s) use(s) an HTTP endpoint
consumer.
properties:
- name: enabled
type: bool
description: Can be used to enable or disable a trait. All traits share this common
property.
- name: autoscaling-class
type: string
description: Configures the Knative autoscaling class property (e.g. to set `hpa.autoscaling.knative.dev`
or `kpa.autoscaling.knative.dev` autoscaling). Refer to the Knative documentation
for more information.
- name: autoscaling-metric
type: string
description: Configures the Knative autoscaling metric property (e.g. to set `concurrency`
based or `cpu` based autoscaling). Refer to the Knative documentation for more
information.
- name: autoscaling-target
type: int
description: Sets the allowed concurrency level or CPU percentage (depending on
the autoscaling metric) for each Pod. Refer to the Knative documentation for
more information.
- name: min-scale
type: int
description: The minimum number of Pods that should be running at any time for
the integration. It's **zero** by default, meaning that the integration is scaled
down to zero when not used for a configured amount of time. Refer to the Knative
documentation for more information.
- name: max-scale
type: int
description: An upper bound for the number of Pods that can be running in parallel