This is an automated email from the ASF dual-hosted git repository.

tsato pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-k.git


The following commit(s) were added to refs/heads/main by this push:
     new ee66f3d2a fix(build): `make generate-doc` outputs non-deterministic 
resources/traits.yaml
ee66f3d2a is described below

commit ee66f3d2a4d189713050b794ebba99b8f95d6fe2
Author: Tadayoshi Sato <[email protected]>
AuthorDate: Tue Jul 12 12:34:13 2022 +0900

    fix(build): `make generate-doc` outputs non-deterministic 
resources/traits.yaml
    
    Fix #3431
---
 cmd/util/doc-gen/generators/generators.go       |   8 +-
 cmd/util/doc-gen/generators/traitdocgen.go      |  11 +-
 cmd/util/doc-gen/generators/traitmetadatagen.go |  20 +-
 pkg/resources/resources.go                      |   2 +-
 resources/traits.yaml                           | 430 ++++++++++++------------
 5 files changed, 245 insertions(+), 226 deletions(-)

diff --git a/cmd/util/doc-gen/generators/generators.go 
b/cmd/util/doc-gen/generators/generators.go
index fffe829dd..09d66c501 100644
--- a/cmd/util/doc-gen/generators/generators.go
+++ b/cmd/util/doc-gen/generators/generators.go
@@ -49,7 +49,8 @@ func DefaultNameSystem() string {
 }
 
 // Packages --.
-func Packages(context *generator.Context, arguments *args.GeneratorArgs) 
(packages generator.Packages) {
+func Packages(context *generator.Context, arguments *args.GeneratorArgs) 
generator.Packages {
+       var packages generator.Packages
        for _, i := range context.Inputs {
                pkg := context.Universe[i]
                if pkg == nil {
@@ -59,9 +60,8 @@ func Packages(context *generator.Context, arguments 
*args.GeneratorArgs) (packag
                packages = append(packages, &generator.DefaultPackage{
                        PackageName: strings.Split(filepath.Base(pkg.Path), 
".")[0],
                        PackagePath: pkg.Path,
-                       GeneratorFunc: func(c *generator.Context) (generators 
[]generator.Generator) {
-                               generators = append(generators, 
NewTraitDocGen(arguments), NewtraitMetaDataGen(arguments))
-                               return generators
+                       GeneratorFunc: func(c *generator.Context) 
[]generator.Generator {
+                               return 
[]generator.Generator{NewTraitDocGen(arguments), NewtraitMetaDataGen(arguments)}
                        },
                })
        }
diff --git a/cmd/util/doc-gen/generators/traitdocgen.go 
b/cmd/util/doc-gen/generators/traitdocgen.go
index 7e701e108..337617a30 100644
--- a/cmd/util/doc-gen/generators/traitdocgen.go
+++ b/cmd/util/doc-gen/generators/traitdocgen.go
@@ -63,6 +63,9 @@ type traitDocGen struct {
        generatedTraitFiles []string
 }
 
+// traitDocGen implements Generator interface.
+var _ generator.Generator = &traitDocGen{}
+
 func NewTraitDocGen(arguments *args.GeneratorArgs) generator.Generator {
        return &traitDocGen{
                DefaultGen: generator.DefaultGen{},
@@ -256,7 +259,7 @@ func escapeASCIIDoc(text string) string {
        return strings.ReplaceAll(text, "|", "\\|")
 }
 
-func split(doc []string, startMarker, endMarker string) (pre []string, post 
[]string) {
+func split(doc []string, startMarker, endMarker string) ([]string, []string) {
        if len(doc) == 0 {
                return nil, nil
        }
@@ -274,7 +277,8 @@ func split(doc []string, startMarker, endMarker string) 
(pre []string, post []st
                        break
                }
        }
-       pre = doc[0:idx]
+       pre := doc[0:idx]
+       post := []string{}
        if idy < len(doc) {
                post = doc[idy+1:]
        }
@@ -307,7 +311,8 @@ func isPlatformTrait(traitID string) bool {
        return t.IsPlatformTrait()
 }
 
-func determineProfiles(traitID string) (profiles []string) {
+func determineProfiles(traitID string) []string {
+       var profiles []string
        catalog := trait.NewCatalog(nil)
        for _, p := range v1.AllTraitProfiles {
                traits := catalog.TraitsForProfile(p)
diff --git a/cmd/util/doc-gen/generators/traitmetadatagen.go 
b/cmd/util/doc-gen/generators/traitmetadatagen.go
index 739090d95..b0f018513 100644
--- a/cmd/util/doc-gen/generators/traitmetadatagen.go
+++ b/cmd/util/doc-gen/generators/traitmetadatagen.go
@@ -23,6 +23,7 @@ import (
        "os"
        "path"
        "reflect"
+       "sort"
        "strings"
 
        "github.com/apache/camel-k/pkg/util"
@@ -33,6 +34,8 @@ import (
        "k8s.io/gengo/types"
 )
 
+const traitFile = "traits.yaml"
+
 // traitMetaDataGen produces YAML documentation about trait descriptions.
 type traitMetaDataGen struct {
        generator.DefaultGen
@@ -58,6 +61,9 @@ type traitPropertyMetaData struct {
        Description string `yaml:"description"`
 }
 
+// traitMetaDataGen implements Generator interface.
+var _ generator.Generator = &traitMetaDataGen{}
+
 // NewtraitMetaDataGen --.
 func NewtraitMetaDataGen(arguments *args.GeneratorArgs) generator.Generator {
        return &traitMetaDataGen{
@@ -89,11 +95,19 @@ func (g *traitMetaDataGen) GenerateType(context 
*generator.Context, t *types.Typ
        return nil
 }
 
-func (g *traitMetaDataGen) Finalize(c *generator.Context, w io.Writer) (err 
error) {
-       deployDir := g.arguments.CustomArgs.(*CustomArgs).ResourceDir
-       traitFile := "traits.yaml"
+func (g *traitMetaDataGen) Finalize(c *generator.Context, w io.Writer) error {
+       customArgs, ok := g.arguments.CustomArgs.(*CustomArgs)
+       if !ok {
+               return fmt.Errorf("type assertion failed: %v", 
g.arguments.CustomArgs)
+       }
+       deployDir := customArgs.ResourceDir
        filename := path.Join(deployDir, traitFile)
 
+       // reorder the traits metadata so that it always gets the identical 
result
+       sort.Slice(g.Root.Traits, func(i, j int) bool {
+               return g.Root.Traits[i].Name < g.Root.Traits[j].Name
+       })
+
        return util.WithFile(filename, os.O_RDWR|os.O_CREATE, 0o777, func(file 
*os.File) error {
                if err := file.Truncate(0); err != nil {
                        return err
diff --git a/pkg/resources/resources.go b/pkg/resources/resources.go
index ef9cad184..6492bd45d 100644
--- a/pkg/resources/resources.go
+++ b/pkg/resources/resources.go
@@ -606,7 +606,7 @@ var assets = func() http.FileSystem {
                        modTime:          time.Time{},
                        uncompressedSize: 51733,
 
-                       compressedContent: 
[]byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\xbd\x7b\x73\x1c\xb9\x91\x20\xfe\xff\x7c\x0a\x04\xfd\x8b\x10\xa9\xe8\x6e\x6a\xc6\x6b\x7b\x7e\xbc\x9b\xf5\x71\x24\x8d\xcd\x19\x3d\x78\x12\x67\xbc\x0e\x9d\xc2\x8d\xae\xca\xee\x86\xba\x1a\x28\x03\x28\x52\xed\xf3\x7d\xf7\x0b\x64\x26\x1e\x55\xdd\x24\x9b\x92\x38\x6b\xc6\xed\x3a\x62\x47\x24\x0b\x40\x22\x91\x99\xc8\x37\xbc\x95\xca\xbb\x93\xaf\xc6\x42\xcb\x35\x9c\x08\x39\x9f\x2b\xad\xfc\xe6\x2b\x21\xda\x46\xfa\xb9\xb1\xeb\x
 [...]
+                       compressedContent: 
[]byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x7d\xfd\x73\x1b\xb9\xb1\xe0\xef\xfb\x57\xa0\x94\xab\xb2\xe4\x22\x29\xef\xe6\x25\xd9\xd3\xdd\xbe\x9c\xd6\xf6\x26\xda\xf5\x87\xce\xd6\x6e\x5e\xca\xe7\x0a\xc1\x99\x26\x09\x73\x08\x4c\x00\x8c\x64\xe6\x72\xff\xfb\x15\xba\x1b\x1f\x33\xa4\x24\xca\xb6\xf6\x45\x57\x97\xad\x8a\x45\x72\x06\x68\x34\xba\x1b\xfd\x0d\x6f\xa5\xf2\xee\xe4\xab\xb1\xd0\x72\x0d\x27\xe2\xb7\xae\x92\x0d\x7c\x25\x44\xdb\x48\x3f\x37\x76\x7d\x22\xe6\xb2\x
 [...]
                },
        }
        fs["/"].(*vfsgen۰DirInfo).entries = []os.FileInfo{
diff --git a/resources/traits.yaml b/resources/traits.yaml
index eacdace56..3df08e162 100755
--- a/resources/traits.yaml
+++ b/resources/traits.yaml
@@ -1,4 +1,33 @@
 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:
@@ -467,39 +496,6 @@ traits:
     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: 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: jolokia
   platform: false
   profiles:
@@ -560,6 +556,39 @@ traits:
     type: '[]string'
     description: A list of additional Jolokia options as definedin 
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:
@@ -580,57 +609,57 @@ traits:
   - name: list
     type: string
     description: Comma separated list of Kamelet names to load into the 
current integration
-- name: knative-service
+- name: keda
   platform: false
   profiles:
+  - Kubernetes
   - 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.
+  - 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: 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 thatthe 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
-      for the integration.Knative has its own cap value that depends on the 
installation.Refer
-      to the Knative documentation for more information.
-  - name: rollout-duration
-    type: string
-    description: Enables to gradually shift traffic to the latest Revision and 
sets
-      the rollout duration.It's disabled by default and must be expressed as a 
Golang
-      `time.Duration` string representation,rounded to a second precision.
   - name: auto
     type: bool
-    description: Automatically deploy the integration as Knative service when 
all
-      conditions hold:* Integration is using the Knative profile* All routes 
are either
-      starting from a HTTP based consumer or a passive consumer (e.g. `direct` 
is
-      a passive consumer)
+    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/addons/keda.kedaTrigger'
+    description: Definition of triggers according to the KEDA format. Each 
trigger
+      must contain `type` field correspondingto 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 ofthe secret to a KEDA authentication parameter.
 - name: knative
   platform: false
   profiles:
@@ -686,6 +715,57 @@ traits:
   - name: auto
     type: bool
     description: Enable automatic discovery of all trait properties.
+- 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 thatthe 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
+      for the integration.Knative has its own cap value that depends on the 
installation.Refer
+      to the Knative documentation for more information.
+  - name: rollout-duration
+    type: string
+    description: Enables to gradually shift traffic to the latest Revision and 
sets
+      the rollout duration.It's disabled by default and must be expressed as a 
Golang
+      `time.Duration` string representation,rounded to a second precision.
+  - name: auto
+    type: bool
+    description: Automatically deploy the integration as Knative service when 
all
+      conditions hold:* Integration is using the Knative profile* All routes 
are either
+      starting from a HTTP based consumer or a passive consumer (e.g. `direct` 
is
+      a passive consumer)
 - name: logging
   platform: false
   profiles:
@@ -715,6 +795,50 @@ traits:
   - name: json-pretty-print
     type: bool
     description: Enable "pretty printing" of the JSON logs
+- name: master
+  platform: false
+  profiles:
+  - Kubernetes
+  - Knative
+  - OpenShift
+  description: 'The Master trait allows to configure the integration to 
automatically
+    leverage Kubernetes resources for doing leader election and starting 
*master*
+    routes only on certain instances. It''s activated automatically when using 
the
+    master endpoint in a route, e.g. 
`from("master:lockname:telegram:bots")...`. NOTE:
+    this trait adds special permissions to the integration service account in 
order
+    to read/write configmaps and read pods. It''s recommended to use a 
different service
+    account than "default" when running the integration.'
+  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: include-delegate-dependencies
+    type: bool
+    description: When this flag is active, the operator analyzes the source 
code to
+      add dependencies required by delegate endpoints.E.g. when using 
`master:lockname:timer`,
+      then `camel:timer` is automatically added to the set of 
dependencies.It's enabled
+      by default.
+  - name: resource-name
+    type: string
+    description: Name of the configmap that will be used to store the lock. 
Defaults
+      to "<integration-name>-lock".Name of the configmap/lease resource that 
will
+      be used to store the lock. Defaults to "<integration-name>-lock".
+  - name: resource-type
+    type: string
+    description: Type of Kubernetes resource to use for locking ("ConfigMap" 
or "Lease").
+      Defaults to "Lease".
+  - name: label-key
+    type: string
+    description: Label that will be used to identify all pods contending the 
lock.
+      Defaults to "camel.apache.org/integration".
+  - name: label-value
+    type: string
+    description: Label value that will be used to identify all pods contending 
the
+      lock. Defaults to the integration name.
 - name: mount
   platform: true
   profiles:
@@ -1018,23 +1142,6 @@ traits:
     description: To configure how to deal with insecure traffic, e.g. `Allow`, 
`Disable`
       or `Redirect` traffic.Refer to the OpenShift route documentation for 
additional
       information.
-- name: service-binding
-  platform: false
-  profiles:
-  - Kubernetes
-  - Knative
-  - OpenShift
-  description: 'The Service Binding trait allows users to connect to Services 
in Kubernetes:
-    https://github.com/k8s-service-bindings/spec#service-binding As the 
specification
-    is still evolving this is subject to change.'
-  properties:
-  - name: enabled
-    type: bool
-    description: Can be used to enable or disable a trait. All traits share 
this common
-      property.
-  - name: services
-    type: '[]string'
-    description: List of Services in the form 
[[apigroup/]version:]kind:[namespace/]name
 - name: service
   platform: false
   profiles:
@@ -1055,6 +1162,23 @@ traits:
   - name: node-port
     type: bool
     description: Enable Service to be exposed as NodePort (default `false`).
+- name: service-binding
+  platform: false
+  profiles:
+  - Kubernetes
+  - Knative
+  - OpenShift
+  description: 'The Service Binding trait allows users to connect to Services 
in Kubernetes:
+    https://github.com/k8s-service-bindings/spec#service-binding As the 
specification
+    is still evolving this is subject to change.'
+  properties:
+  - name: enabled
+    type: bool
+    description: Can be used to enable or disable a trait. All traits share 
this common
+      property.
+  - name: services
+    type: '[]string'
+    description: List of Services in the form 
[[apigroup/]version:]kind:[namespace/]name
 - name: toleration
   platform: false
   profiles:
@@ -1109,127 +1233,3 @@ traits:
   - name: sampler-param
     type: string
     description: The sampler specific param (default "1")
-- 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/addons/keda.kedaTrigger'
-    description: Definition of triggers according to the KEDA format. Each 
trigger
-      must contain `type` field correspondingto 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 ofthe secret to a KEDA authentication parameter.
-- 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: master
-  platform: false
-  profiles:
-  - Kubernetes
-  - Knative
-  - OpenShift
-  description: 'The Master trait allows to configure the integration to 
automatically
-    leverage Kubernetes resources for doing leader election and starting 
*master*
-    routes only on certain instances. It''s activated automatically when using 
the
-    master endpoint in a route, e.g. 
`from("master:lockname:telegram:bots")...`. NOTE:
-    this trait adds special permissions to the integration service account in 
order
-    to read/write configmaps and read pods. It''s recommended to use a 
different service
-    account than "default" when running the integration.'
-  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: include-delegate-dependencies
-    type: bool
-    description: When this flag is active, the operator analyzes the source 
code to
-      add dependencies required by delegate endpoints.E.g. when using 
`master:lockname:timer`,
-      then `camel:timer` is automatically added to the set of 
dependencies.It's enabled
-      by default.
-  - name: resource-name
-    type: string
-    description: Name of the configmap that will be used to store the lock. 
Defaults
-      to "<integration-name>-lock".Name of the configmap/lease resource that 
will
-      be used to store the lock. Defaults to "<integration-name>-lock".
-  - name: resource-type
-    type: string
-    description: Type of Kubernetes resource to use for locking ("ConfigMap" 
or "Lease").
-      Defaults to "Lease".
-  - name: label-key
-    type: string
-    description: Label that will be used to identify all pods contending the 
lock.
-      Defaults to "camel.apache.org/integration".
-  - name: label-value
-    type: string
-    description: Label value that will be used to identify all pods contending 
the
-      lock. Defaults to the integration name.

Reply via email to