diff --git a/PROJECT b/PROJECT index 08a8ee0e2d..ad36d61964 100644 --- a/PROJECT +++ b/PROJECT @@ -24,9 +24,6 @@ resources: - group: camel kind: Kamelet version: v1 -- group: camel - kind: KameletBinding - version: v1alpha1 version: "3" plugins: go.sdk.operatorframework.io/v2-alpha: {} diff --git a/e2e/support/test_support.go b/e2e/support/test_support.go index 7b055195a4..5922f19072 100644 --- a/e2e/support/test_support.go +++ b/e2e/support/test_support.go @@ -75,7 +75,6 @@ import ( "github.com/apache/camel-k/v2/e2e/support/util" v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1" traitv1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1/trait" - v1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" "github.com/apache/camel-k/v2/pkg/client" "github.com/apache/camel-k/v2/pkg/cmd" "github.com/apache/camel-k/v2/pkg/install" @@ -101,8 +100,7 @@ const ciPID = "/tmp/ci-k8s-pid" // v1.Build, v1.Integration // v1.IntegrationKit, v1.IntegrationPlatform, v1.IntegrationProfile // v1.Kamelet, v1.Pipe, -// v1alpha1.Kamelet, v1alpha1.KameletBinding -const ExpectedCRDs = 9 +const ExpectedCRDs = 7 // camel-k-operator, // camel-k-operator-events, @@ -2235,7 +2233,6 @@ func CRDs(t *testing.T) func() []metav1.APIResource { reflect.TypeOf(v1.IntegrationProfile{}).Name(), reflect.TypeOf(v1.Kamelet{}).Name(), reflect.TypeOf(v1.Pipe{}).Name(), - reflect.TypeOf(v1alpha1.KameletBinding{}).Name(), } versions := []string{"v1", "v1alpha1"} diff --git a/helm/camel-k/crds/camel-k-crds.yaml b/helm/camel-k/crds/camel-k-crds.yaml index 7fd648e8f9..3c8af76830 100644 --- a/helm/camel-k/crds/camel-k-crds.yaml +++ b/helm/camel-k/crds/camel-k-crds.yaml @@ -21684,37 +21684,42 @@ metadata: controller-gen.kubebuilder.io/version: v0.15.0 labels: app: camel-k - name: kameletbindings.camel.apache.org + name: kamelets.camel.apache.org spec: group: camel.apache.org names: categories: - kamel - camel - kind: KameletBinding - listKind: KameletBindingList - plural: kameletbindings + kind: Kamelet + listKind: KameletList + plural: kamelets shortNames: - - klb - singular: kameletbinding + - kl + singular: kamelet scope: Namespaced versions: - additionalPrinterColumns: - - description: The Kamelet Binding phase - jsonPath: .status.phase - name: Phase + - description: The Kamelet type + jsonPath: .metadata.labels.camel\.apache\.org\/kamelet\.type + name: Type type: string - - description: The number of pods - jsonPath: .status.replicas - name: Replicas - type: integer - deprecated: true - deprecationWarning: v1apha1.KameletBinding is deprecated, please, use v1.Pipe - instead - name: v1alpha1 + - description: The Kamelet provider + jsonPath: .metadata.annotations.camel\.apache\.org\/provider + name: Provider + type: string + - description: The Kamelet bundled + jsonPath: .metadata.labels.camel\.apache\.org\/kamelet\.bundled + name: Bundled + type: string + - description: The Camel compatible version + jsonPath: .metadata.annotations.camel\.apache\.org\/catalog\.version + name: Camel Version + type: string + name: v1 schema: openAPIV3Schema: - description: KameletBinding is the Schema for the kamelets binding API. + description: Kamelet is the Schema for the kamelets API. properties: apiVersion: description: |- @@ -21734,10295 +21739,55 @@ spec: metadata: type: object spec: - description: the specification of a KameletBinding + description: the desired specification properties: - errorHandler: - description: ErrorHandler is an optional handler called upon an error - occurring in the integration - type: object - x-kubernetes-preserve-unknown-fields: true - integration: - description: Integration is an optional integration used to specify - custom parameters - properties: - configuration: - description: |- - Deprecated: - Use camel trait (camel.properties) to manage properties - Use mount trait (mount.configs) to manage configs - Use mount trait (mount.resources) to manage resources - Use mount trait (mount.volumes) to manage volumes - items: - description: ConfigurationSpec represents a generic configuration - specification. - properties: - type: - description: 'represents the type of configuration, ie: - property, configmap, secret, ...' - type: string - value: - description: the value to assign to the configuration (syntax - may vary depending on the `Type`) - type: string - required: - - type - - value - type: object - type: array - dependencies: - description: the list of Camel or Maven dependencies required - by the Integration - items: - type: string - type: array - flows: - description: a source in YAML DSL language which contain the routes - to run - items: - description: Flow is an unstructured object representing a Camel - Flow in YAML/JSON DSL. - type: object - x-kubernetes-preserve-unknown-fields: true - type: array - integrationKit: - description: the reference of the `IntegrationKit` which is used - for this Integration - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: |- - If referring to a piece of an object instead of an entire object, this string - should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within a pod, this would take on a value like: - "spec.containers{name}" (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" (container with - index 2 in this pod). This syntax is chosen only to have some well-defined way of - referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. - type: string - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - namespace: - description: |- - Namespace of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - type: string - resourceVersion: - description: |- - Specific resourceVersion to which this reference is made, if any. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - type: string - uid: - description: |- - UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - type: string - type: object - x-kubernetes-map-type: atomic - profile: - description: the profile needed to run this Integration - type: string - replicas: - description: the number of `Pods` needed for the running Integration - format: int32 - type: integer - repositories: - description: additional Maven repositories to be used - items: + dataTypes: + additionalProperties: + description: DataTypesSpec represents the specification for a set + of data types. + properties: + default: + description: the default data type for this Kamelet type: string - type: array - serviceAccountName: - description: custom SA to use for the Integration - type: string - sources: - description: the sources which contain the Camel routes to run - items: - description: SourceSpec defines the configuration for one or - more routes to be executed in a certain Camel DSL language. - properties: - compression: - description: if the content is compressed (base64 encrypted) - type: boolean - content: - description: the source code (plain text) - type: string - contentKey: - description: the confimap key holding the source content - type: string - contentRef: - description: the confimap reference holding the source content - type: string - contentType: - description: the content type (tipically text or binary) - type: string - from-kamelet: - description: True if the spec is generated from a Kamelet - type: boolean - interceptors: - description: |- - Interceptors are optional identifiers the org.apache.camel.k.RoutesLoader - uses to pre/post process sources - Deprecated: no longer in use. - items: + headers: + additionalProperties: + description: HeaderSpec represents the specification for a + header used in the Kamelet. + properties: + default: type: string - type: array - language: - description: specify which is the language (Camel DSL) used - to interpret this source code - type: string - loader: - description: |- - Loader is an optional id of the org.apache.camel.k.RoutesLoader that will - interpret this source at runtime - type: string - name: - description: the name of the specification - type: string - path: - description: the path where the file is stored - type: string - property-names: - description: List of property names defined in the source - (e.g. if type is "template") - items: + description: type: string - type: array - rawContent: - description: the source code (binary) - format: byte - type: string - type: - description: Type defines the kind of source described by - this object - type: string + required: + type: boolean + title: + type: string + type: + type: string + type: object + description: one to many header specifications type: object - type: array - template: - description: Pod template customization - properties: - spec: - description: the specification + types: + additionalProperties: + description: DataTypeSpec represents the specification for + a data type. properties: - activeDeadlineSeconds: - description: ActiveDeadlineSeconds - format: int64 - type: integer - automountServiceAccountToken: - description: AutomountServiceAccountToken - type: boolean - containers: - description: Containers + dependencies: + description: the list of Camel or Maven dependencies required + by the data type items: - description: A single application container that you - want to run within a pod. - properties: - args: - description: |- - Arguments to the entrypoint. - The container image's CMD is used if this is not provided. - Variable references $(VAR_NAME) are expanded using the container's environment. If a variable - cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced - to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will - produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless - of whether the variable exists or not. Cannot be updated. - More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell - items: - type: string - type: array - command: - description: |- - Entrypoint array. Not executed within a shell. - The container image's ENTRYPOINT is used if this is not provided. - Variable references $(VAR_NAME) are expanded using the container's environment. If a variable - cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced - to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will - produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless - of whether the variable exists or not. Cannot be updated. - More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell - items: - type: string - type: array - env: - description: |- - List of environment variables to set in the container. - Cannot be updated. - items: - description: EnvVar represents an environment - variable present in a Container. - properties: - name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. - type: string - value: - description: |- - Variable references $(VAR_NAME) are expanded - using the previously defined environment variables in the container and - any service environment variables. If a variable cannot be resolved, - the reference in the input string will be unchanged. Double $$ are reduced - to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. - "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, regardless of whether the variable - exists or not. - Defaults to "". - type: string - valueFrom: - description: Source for the environment variable's - value. Cannot be used if value is not empty. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema - the FieldPath is written in terms - of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to - select in the specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required - for volumes, optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to - select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret - in the pod's namespace - properties: - key: - description: The key of the secret - to select from. Must be a valid - secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - name - type: object - type: array - envFrom: - description: |- - List of sources to populate environment variables in the container. - The keys defined within a source must be a C_IDENTIFIER. All invalid keys - will be reported as an event when the container is starting. When a key exists in multiple - sources, the value associated with the last source will take precedence. - Values defined by an Env with a duplicate key will take precedence. - Cannot be updated. - items: - description: EnvFromSource represents the source - of a set of ConfigMaps - properties: - configMapRef: - description: The ConfigMap to select from - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap - must be defined - type: boolean - type: object - x-kubernetes-map-type: atomic - prefix: - description: An optional identifier to prepend - to each key in the ConfigMap. Must be a - C_IDENTIFIER. - type: string - secretRef: - description: The Secret to select from - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret - must be defined - type: boolean - type: object - x-kubernetes-map-type: atomic - type: object - type: array - image: - description: |- - Container image name. - More info: https://kubernetes.io/docs/concepts/containers/images - This field is optional to allow higher level config management to default or override - container images in workload controllers like Deployments and StatefulSets. - type: string - imagePullPolicy: - description: |- - Image pull policy. - One of Always, Never, IfNotPresent. - Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. - Cannot be updated. - More info: https://kubernetes.io/docs/concepts/containers/images#updating-images - type: string - lifecycle: - description: |- - Actions that the management system should take in response to container lifecycle events. - Cannot be updated. - properties: - postStart: - description: |- - PostStart is called immediately after a container is created. If the handler fails, - the container is terminated and restarted according to its restart policy. - Other management of the container blocks until the hook completes. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks - properties: - exec: - description: Exec specifies the action to - take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - httpGet: - description: HTTPGet specifies the http - request to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated - headers. - items: - description: HTTPHeader describes - a custom header to be used in HTTP - probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field - value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. - properties: - seconds: - description: Seconds is the number of - seconds to sleep. - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - description: |- - Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept - for the backward compatibility. There are no validation of this field and - lifecycle hooks will fail in runtime when tcp handler is specified. - properties: - host: - description: 'Optional: Host name to - connect to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - preStop: - description: |- - PreStop is called immediately before a container is terminated due to an - API request or management event such as liveness/startup probe failure, - preemption, resource contention, etc. The handler is not called if the - container crashes or exits. The Pod's termination grace period countdown begins before the - PreStop hook is executed. Regardless of the outcome of the handler, the - container will eventually terminate within the Pod's termination grace - period (unless delayed by finalizers). Other management of the container blocks until the hook completes - or until the termination grace period is reached. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks - properties: - exec: - description: Exec specifies the action to - take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - httpGet: - description: HTTPGet specifies the http - request to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated - headers. - items: - description: HTTPHeader describes - a custom header to be used in HTTP - probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field - value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. - properties: - seconds: - description: Seconds is the number of - seconds to sleep. - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - description: |- - Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept - for the backward compatibility. There are no validation of this field and - lifecycle hooks will fail in runtime when tcp handler is specified. - properties: - host: - description: 'Optional: Host name to - connect to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - type: object - livenessProbe: - description: |- - Periodic probe of container liveness. - Container will be restarted if the probe fails. - Cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - properties: - exec: - description: Exec specifies the action to take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - failureThreshold: - description: |- - Minimum consecutive failures for the probe to be considered failed after having succeeded. - Defaults to 3. Minimum value is 1. - format: int32 - type: integer - grpc: - description: GRPC specifies an action involving - a GRPC port. - properties: - port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. - format: int32 - type: integer - service: - description: |- - Service is the name of the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - - - If this is not specified, the default behavior is defined by gRPC. - type: string - required: - - port - type: object - httpGet: - description: HTTPGet specifies the http request - to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. - items: - description: HTTPHeader describes a custom - header to be used in HTTP probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - initialDelaySeconds: - description: |- - Number of seconds after the container has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - periodSeconds: - description: |- - How often (in seconds) to perform the probe. - Default to 10 seconds. Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - Minimum consecutive successes for the probe to be considered successful after having failed. - Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. - format: int32 - type: integer - tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. - properties: - host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - description: |- - Optional duration in seconds the pod needs to terminate gracefully upon probe failure. - The grace period is the duration in seconds after the processes running in the pod are sent - a termination signal and the time when the processes are forcibly halted with a kill signal. - Set this value longer than the expected cleanup time for your process. - If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this - value overrides the value provided by the pod spec. - Value must be non-negative integer. The value zero indicates stop immediately via - the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. - format: int64 - type: integer - timeoutSeconds: - description: |- - Number of seconds after which the probe times out. - Defaults to 1 second. Minimum value is 1. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - type: object - name: - description: |- - Name of the container specified as a DNS_LABEL. - Each container in a pod must have a unique name (DNS_LABEL). - Cannot be updated. - type: string - ports: - description: |- - List of ports to expose from the container. Not specifying a port here - DOES NOT prevent that port from being exposed. Any port which is - listening on the default "0.0.0.0" address inside a container will be - accessible from the network. - Modifying this array with strategic merge patch may corrupt the data. - For more information See https://github.com/kubernetes/kubernetes/issues/108255. - Cannot be updated. - items: - description: ContainerPort represents a network - port in a single container. - properties: - containerPort: - description: |- - Number of port to expose on the pod's IP address. - This must be a valid port number, 0 < x < 65536. - format: int32 - type: integer - hostIP: - description: What host IP to bind the external - port to. - type: string - hostPort: - description: |- - Number of port to expose on the host. - If specified, this must be a valid port number, 0 < x < 65536. - If HostNetwork is specified, this must match ContainerPort. - Most containers do not need this. - format: int32 - type: integer - name: - description: |- - If specified, this must be an IANA_SVC_NAME and unique within the pod. Each - named port in a pod must have a unique name. Name for the port that can be - referred to by services. - type: string - protocol: - default: TCP - description: |- - Protocol for port. Must be UDP, TCP, or SCTP. - Defaults to "TCP". - type: string - required: - - containerPort - type: object - type: array - x-kubernetes-list-map-keys: - - containerPort - - protocol - x-kubernetes-list-type: map - readinessProbe: - description: |- - Periodic probe of container service readiness. - Container will be removed from service endpoints if the probe fails. - Cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - properties: - exec: - description: Exec specifies the action to take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - failureThreshold: - description: |- - Minimum consecutive failures for the probe to be considered failed after having succeeded. - Defaults to 3. Minimum value is 1. - format: int32 - type: integer - grpc: - description: GRPC specifies an action involving - a GRPC port. - properties: - port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. - format: int32 - type: integer - service: - description: |- - Service is the name of the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - - - If this is not specified, the default behavior is defined by gRPC. - type: string - required: - - port - type: object - httpGet: - description: HTTPGet specifies the http request - to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. - items: - description: HTTPHeader describes a custom - header to be used in HTTP probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - initialDelaySeconds: - description: |- - Number of seconds after the container has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - periodSeconds: - description: |- - How often (in seconds) to perform the probe. - Default to 10 seconds. Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - Minimum consecutive successes for the probe to be considered successful after having failed. - Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. - format: int32 - type: integer - tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. - properties: - host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - description: |- - Optional duration in seconds the pod needs to terminate gracefully upon probe failure. - The grace period is the duration in seconds after the processes running in the pod are sent - a termination signal and the time when the processes are forcibly halted with a kill signal. - Set this value longer than the expected cleanup time for your process. - If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this - value overrides the value provided by the pod spec. - Value must be non-negative integer. The value zero indicates stop immediately via - the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. - format: int64 - type: integer - timeoutSeconds: - description: |- - Number of seconds after which the probe times out. - Defaults to 1 second. Minimum value is 1. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - type: object - resizePolicy: - description: Resources resize policy for the container. - items: - description: ContainerResizePolicy represents - resource resize policy for the container. - properties: - resourceName: - description: |- - Name of the resource to which this resource resize policy applies. - Supported values: cpu, memory. - type: string - restartPolicy: - description: |- - Restart policy to apply when specified resource is resized. - If not specified, it defaults to NotRequired. - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic - resources: - description: |- - Compute Resources required by this container. - Cannot be updated. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - properties: - claims: - description: |- - Claims lists the names of resources, defined in spec.resourceClaims, - that are used by this container. - - - This is an alpha field and requires enabling the - DynamicResourceAllocation feature gate. - - - This field is immutable. It can only be set for containers. - items: - description: ResourceClaim references one - entry in PodSpec.ResourceClaims. - properties: - name: - description: |- - Name must match the name of one entry in pod.spec.resourceClaims of - the Pod where this field is used. It makes that resource available - inside a container. - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: |- - Limits describes the maximum amount of compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: |- - Requests describes the minimum amount of compute resources required. - If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, - otherwise to an implementation-defined value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - type: object - restartPolicy: - description: |- - RestartPolicy defines the restart behavior of individual containers in a pod. - This field may only be set for init containers, and the only allowed value is "Always". - For non-init containers or when this field is not specified, - the restart behavior is defined by the Pod's restart policy and the container type. - Setting the RestartPolicy as "Always" for the init container will have the following effect: - this init container will be continually restarted on - exit until all regular containers have terminated. Once all regular - containers have completed, all init containers with restartPolicy "Always" - will be shut down. This lifecycle differs from normal init containers and - is often referred to as a "sidecar" container. Although this init - container still starts in the init container sequence, it does not wait - for the container to complete before proceeding to the next init - container. Instead, the next init container starts immediately after this - init container is started, or after any startupProbe has successfully - completed. - type: string - securityContext: - description: |- - SecurityContext defines the security options the container should be run with. - If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ - properties: - allowPrivilegeEscalation: - description: |- - AllowPrivilegeEscalation controls whether a process can gain more - privileges than its parent process. This bool directly controls if - the no_new_privs flag will be set on the container process. - AllowPrivilegeEscalation is true always when the container is: - 1) run as Privileged - 2) has CAP_SYS_ADMIN - Note that this field cannot be set when spec.os.name is windows. - type: boolean - capabilities: - description: |- - The capabilities to add/drop when running containers. - Defaults to the default set of capabilities granted by the container runtime. - Note that this field cannot be set when spec.os.name is windows. - properties: - add: - description: Added capabilities - items: - description: Capability represent POSIX - capabilities type - type: string - type: array - drop: - description: Removed capabilities - items: - description: Capability represent POSIX - capabilities type - type: string - type: array - type: object - privileged: - description: |- - Run container in privileged mode. - Processes in privileged containers are essentially equivalent to root on the host. - Defaults to false. - Note that this field cannot be set when spec.os.name is windows. - type: boolean - procMount: - description: |- - procMount denotes the type of proc mount to use for the containers. - The default is DefaultProcMount which uses the container runtime defaults for - readonly paths and masked paths. - This requires the ProcMountType feature flag to be enabled. - Note that this field cannot be set when spec.os.name is windows. - type: string - readOnlyRootFilesystem: - description: |- - Whether this container has a read-only root filesystem. - Default is false. - Note that this field cannot be set when spec.os.name is windows. - type: boolean - runAsGroup: - description: |- - The GID to run the entrypoint of the container process. - Uses runtime default if unset. - May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is windows. - format: int64 - type: integer - runAsNonRoot: - description: |- - Indicates that the container must run as a non-root user. - If true, the Kubelet will validate the image at runtime to ensure that it - does not run as UID 0 (root) and fail to start the container if it does. - If unset or false, no such validation will be performed. - May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - type: boolean - runAsUser: - description: |- - The UID to run the entrypoint of the container process. - Defaults to user specified in image metadata if unspecified. - May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is windows. - format: int64 - type: integer - seLinuxOptions: - description: |- - The SELinux context to be applied to the container. - If unspecified, the container runtime will allocate a random SELinux context for each - container. May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is windows. - properties: - level: - description: Level is SELinux level label - that applies to the container. - type: string - role: - description: Role is a SELinux role label - that applies to the container. - type: string - type: - description: Type is a SELinux type label - that applies to the container. - type: string - user: - description: User is a SELinux user label - that applies to the container. - type: string - type: object - seccompProfile: - description: |- - The seccomp options to use by this container. If seccomp options are - provided at both the pod & container level, the container options - override the pod options. - Note that this field cannot be set when spec.os.name is windows. - properties: - localhostProfile: - description: |- - localhostProfile indicates a profile defined in a file on the node should be used. - The profile must be preconfigured on the node to work. - Must be a descending path, relative to the kubelet's configured seccomp profile location. - Must be set if type is "Localhost". Must NOT be set for any other type. - type: string - type: - description: |- - type indicates which kind of seccomp profile will be applied. - Valid options are: - - - Localhost - a profile defined in a file on the node should be used. - RuntimeDefault - the container runtime default profile should be used. - Unconfined - no profile should be applied. - type: string - required: - - type - type: object - windowsOptions: - description: |- - The Windows specific settings applied to all containers. - If unspecified, the options from the PodSecurityContext will be used. - If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is linux. - properties: - gmsaCredentialSpec: - description: |- - GMSACredentialSpec is where the GMSA admission webhook - (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the - GMSA credential spec named by the GMSACredentialSpecName field. - type: string - gmsaCredentialSpecName: - description: GMSACredentialSpecName is the - name of the GMSA credential spec to use. - type: string - hostProcess: - description: |- - HostProcess determines if a container should be run as a 'Host Process' container. - All of a Pod's containers must have the same effective HostProcess value - (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). - In addition, if HostProcess is true then HostNetwork must also be set to true. - type: boolean - runAsUserName: - description: |- - The UserName in Windows to run the entrypoint of the container process. - Defaults to the user specified in image metadata if unspecified. - May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - type: string - type: object - type: object - startupProbe: - description: |- - StartupProbe indicates that the Pod has successfully initialized. - If specified, no other probes are executed until this completes successfully. - If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. - This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, - when it might take a long time to load data or warm a cache, than during steady-state operation. - This cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - properties: - exec: - description: Exec specifies the action to take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - failureThreshold: - description: |- - Minimum consecutive failures for the probe to be considered failed after having succeeded. - Defaults to 3. Minimum value is 1. - format: int32 - type: integer - grpc: - description: GRPC specifies an action involving - a GRPC port. - properties: - port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. - format: int32 - type: integer - service: - description: |- - Service is the name of the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - - - If this is not specified, the default behavior is defined by gRPC. - type: string - required: - - port - type: object - httpGet: - description: HTTPGet specifies the http request - to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. - items: - description: HTTPHeader describes a custom - header to be used in HTTP probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - initialDelaySeconds: - description: |- - Number of seconds after the container has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - periodSeconds: - description: |- - How often (in seconds) to perform the probe. - Default to 10 seconds. Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - Minimum consecutive successes for the probe to be considered successful after having failed. - Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. - format: int32 - type: integer - tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. - properties: - host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - description: |- - Optional duration in seconds the pod needs to terminate gracefully upon probe failure. - The grace period is the duration in seconds after the processes running in the pod are sent - a termination signal and the time when the processes are forcibly halted with a kill signal. - Set this value longer than the expected cleanup time for your process. - If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this - value overrides the value provided by the pod spec. - Value must be non-negative integer. The value zero indicates stop immediately via - the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. - format: int64 - type: integer - timeoutSeconds: - description: |- - Number of seconds after which the probe times out. - Defaults to 1 second. Minimum value is 1. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - type: object - stdin: - description: |- - Whether this container should allocate a buffer for stdin in the container runtime. If this - is not set, reads from stdin in the container will always result in EOF. - Default is false. - type: boolean - stdinOnce: - description: |- - Whether the container runtime should close the stdin channel after it has been opened by - a single attach. When stdin is true the stdin stream will remain open across multiple attach - sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the - first client attaches to stdin, and then remains open and accepts data until the client disconnects, - at which time stdin is closed and remains closed until the container is restarted. If this - flag is false, a container processes that reads from stdin will never receive an EOF. - Default is false - type: boolean - terminationMessagePath: - description: |- - Optional: Path at which the file to which the container's termination message - will be written is mounted into the container's filesystem. - Message written is intended to be brief final status, such as an assertion failure message. - Will be truncated by the node if greater than 4096 bytes. The total message length across - all containers will be limited to 12kb. - Defaults to /dev/termination-log. - Cannot be updated. - type: string - terminationMessagePolicy: - description: |- - Indicate how the termination message should be populated. File will use the contents of - terminationMessagePath to populate the container status message on both success and failure. - FallbackToLogsOnError will use the last chunk of container log output if the termination - message file is empty and the container exited with an error. - The log output is limited to 2048 bytes or 80 lines, whichever is smaller. - Defaults to File. - Cannot be updated. - type: string - tty: - description: |- - Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. - Default is false. - type: boolean - volumeDevices: - description: volumeDevices is the list of block - devices to be used by the container. - items: - description: volumeDevice describes a mapping - of a raw block device within a container. - properties: - devicePath: - description: devicePath is the path inside - of the container that the device will be - mapped to. - type: string - name: - description: name must match the name of a - persistentVolumeClaim in the pod - type: string - required: - - devicePath - - name - type: object - type: array - volumeMounts: - description: |- - Pod volumes to mount into the container's filesystem. - Cannot be updated. - items: - description: VolumeMount describes a mounting - of a Volume within a container. - properties: - mountPath: - description: |- - Path within the container at which the volume should be mounted. Must - not contain ':'. - type: string - mountPropagation: - description: |- - mountPropagation determines how mounts are propagated from the host - to container and the other way around. - When not set, MountPropagationNone is used. - This field is beta in 1.10. - type: string - name: - description: This must match the Name of a - Volume. - type: string - readOnly: - description: |- - Mounted read-only if true, read-write otherwise (false or unspecified). - Defaults to false. - type: boolean - subPath: - description: |- - Path within the volume from which the container's volume should be mounted. - Defaults to "" (volume's root). - type: string - subPathExpr: - description: |- - Expanded path within the volume from which the container's volume should be mounted. - Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. - Defaults to "" (volume's root). - SubPathExpr and SubPath are mutually exclusive. - type: string - required: - - mountPath - - name - type: object - type: array - workingDir: - description: |- - Container's working directory. - If not specified, the container runtime's default will be used, which - might be configured in the container image. - Cannot be updated. - type: string - required: - - name - type: object - type: array - dnsPolicy: - description: DNSPolicy - type: string - ephemeralContainers: - description: EphemeralContainers - items: - description: |- - An EphemeralContainer is a temporary container that you may add to an existing Pod for - user-initiated activities such as debugging. Ephemeral containers have no resource or - scheduling guarantees, and they will not be restarted when they exit or when a Pod is - removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the - Pod to exceed its resource allocation. - - - To add an ephemeral container, use the ephemeralcontainers subresource of an existing - Pod. Ephemeral containers may not be removed or restarted. - properties: - args: - description: |- - Arguments to the entrypoint. - The image's CMD is used if this is not provided. - Variable references $(VAR_NAME) are expanded using the container's environment. If a variable - cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced - to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will - produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless - of whether the variable exists or not. Cannot be updated. - More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell - items: - type: string - type: array - command: - description: |- - Entrypoint array. Not executed within a shell. - The image's ENTRYPOINT is used if this is not provided. - Variable references $(VAR_NAME) are expanded using the container's environment. If a variable - cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced - to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will - produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless - of whether the variable exists or not. Cannot be updated. - More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell - items: - type: string - type: array - env: - description: |- - List of environment variables to set in the container. - Cannot be updated. - items: - description: EnvVar represents an environment - variable present in a Container. - properties: - name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. - type: string - value: - description: |- - Variable references $(VAR_NAME) are expanded - using the previously defined environment variables in the container and - any service environment variables. If a variable cannot be resolved, - the reference in the input string will be unchanged. Double $$ are reduced - to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. - "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, regardless of whether the variable - exists or not. - Defaults to "". - type: string - valueFrom: - description: Source for the environment variable's - value. Cannot be used if value is not empty. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema - the FieldPath is written in terms - of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to - select in the specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required - for volumes, optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to - select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret - in the pod's namespace - properties: - key: - description: The key of the secret - to select from. Must be a valid - secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - name - type: object - type: array - envFrom: - description: |- - List of sources to populate environment variables in the container. - The keys defined within a source must be a C_IDENTIFIER. All invalid keys - will be reported as an event when the container is starting. When a key exists in multiple - sources, the value associated with the last source will take precedence. - Values defined by an Env with a duplicate key will take precedence. - Cannot be updated. - items: - description: EnvFromSource represents the source - of a set of ConfigMaps - properties: - configMapRef: - description: The ConfigMap to select from - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap - must be defined - type: boolean - type: object - x-kubernetes-map-type: atomic - prefix: - description: An optional identifier to prepend - to each key in the ConfigMap. Must be a - C_IDENTIFIER. - type: string - secretRef: - description: The Secret to select from - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret - must be defined - type: boolean - type: object - x-kubernetes-map-type: atomic - type: object - type: array - image: - description: |- - Container image name. - More info: https://kubernetes.io/docs/concepts/containers/images - type: string - imagePullPolicy: - description: |- - Image pull policy. - One of Always, Never, IfNotPresent. - Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. - Cannot be updated. - More info: https://kubernetes.io/docs/concepts/containers/images#updating-images - type: string - lifecycle: - description: Lifecycle is not allowed for ephemeral - containers. - properties: - postStart: - description: |- - PostStart is called immediately after a container is created. If the handler fails, - the container is terminated and restarted according to its restart policy. - Other management of the container blocks until the hook completes. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks - properties: - exec: - description: Exec specifies the action to - take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - httpGet: - description: HTTPGet specifies the http - request to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated - headers. - items: - description: HTTPHeader describes - a custom header to be used in HTTP - probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field - value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. - properties: - seconds: - description: Seconds is the number of - seconds to sleep. - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - description: |- - Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept - for the backward compatibility. There are no validation of this field and - lifecycle hooks will fail in runtime when tcp handler is specified. - properties: - host: - description: 'Optional: Host name to - connect to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - preStop: - description: |- - PreStop is called immediately before a container is terminated due to an - API request or management event such as liveness/startup probe failure, - preemption, resource contention, etc. The handler is not called if the - container crashes or exits. The Pod's termination grace period countdown begins before the - PreStop hook is executed. Regardless of the outcome of the handler, the - container will eventually terminate within the Pod's termination grace - period (unless delayed by finalizers). Other management of the container blocks until the hook completes - or until the termination grace period is reached. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks - properties: - exec: - description: Exec specifies the action to - take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - httpGet: - description: HTTPGet specifies the http - request to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated - headers. - items: - description: HTTPHeader describes - a custom header to be used in HTTP - probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field - value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. - properties: - seconds: - description: Seconds is the number of - seconds to sleep. - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - description: |- - Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept - for the backward compatibility. There are no validation of this field and - lifecycle hooks will fail in runtime when tcp handler is specified. - properties: - host: - description: 'Optional: Host name to - connect to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - type: object - livenessProbe: - description: Probes are not allowed for ephemeral - containers. - properties: - exec: - description: Exec specifies the action to take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - failureThreshold: - description: |- - Minimum consecutive failures for the probe to be considered failed after having succeeded. - Defaults to 3. Minimum value is 1. - format: int32 - type: integer - grpc: - description: GRPC specifies an action involving - a GRPC port. - properties: - port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. - format: int32 - type: integer - service: - description: |- - Service is the name of the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - - - If this is not specified, the default behavior is defined by gRPC. - type: string - required: - - port - type: object - httpGet: - description: HTTPGet specifies the http request - to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. - items: - description: HTTPHeader describes a custom - header to be used in HTTP probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - initialDelaySeconds: - description: |- - Number of seconds after the container has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - periodSeconds: - description: |- - How often (in seconds) to perform the probe. - Default to 10 seconds. Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - Minimum consecutive successes for the probe to be considered successful after having failed. - Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. - format: int32 - type: integer - tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. - properties: - host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - description: |- - Optional duration in seconds the pod needs to terminate gracefully upon probe failure. - The grace period is the duration in seconds after the processes running in the pod are sent - a termination signal and the time when the processes are forcibly halted with a kill signal. - Set this value longer than the expected cleanup time for your process. - If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this - value overrides the value provided by the pod spec. - Value must be non-negative integer. The value zero indicates stop immediately via - the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. - format: int64 - type: integer - timeoutSeconds: - description: |- - Number of seconds after which the probe times out. - Defaults to 1 second. Minimum value is 1. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - type: object - name: - description: |- - Name of the ephemeral container specified as a DNS_LABEL. - This name must be unique among all containers, init containers and ephemeral containers. - type: string - ports: - description: Ports are not allowed for ephemeral - containers. - items: - description: ContainerPort represents a network - port in a single container. - properties: - containerPort: - description: |- - Number of port to expose on the pod's IP address. - This must be a valid port number, 0 < x < 65536. - format: int32 - type: integer - hostIP: - description: What host IP to bind the external - port to. - type: string - hostPort: - description: |- - Number of port to expose on the host. - If specified, this must be a valid port number, 0 < x < 65536. - If HostNetwork is specified, this must match ContainerPort. - Most containers do not need this. - format: int32 - type: integer - name: - description: |- - If specified, this must be an IANA_SVC_NAME and unique within the pod. Each - named port in a pod must have a unique name. Name for the port that can be - referred to by services. - type: string - protocol: - default: TCP - description: |- - Protocol for port. Must be UDP, TCP, or SCTP. - Defaults to "TCP". - type: string - required: - - containerPort - type: object - type: array - x-kubernetes-list-map-keys: - - containerPort - - protocol - x-kubernetes-list-type: map - readinessProbe: - description: Probes are not allowed for ephemeral - containers. - properties: - exec: - description: Exec specifies the action to take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - failureThreshold: - description: |- - Minimum consecutive failures for the probe to be considered failed after having succeeded. - Defaults to 3. Minimum value is 1. - format: int32 - type: integer - grpc: - description: GRPC specifies an action involving - a GRPC port. - properties: - port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. - format: int32 - type: integer - service: - description: |- - Service is the name of the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - - - If this is not specified, the default behavior is defined by gRPC. - type: string - required: - - port - type: object - httpGet: - description: HTTPGet specifies the http request - to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. - items: - description: HTTPHeader describes a custom - header to be used in HTTP probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - initialDelaySeconds: - description: |- - Number of seconds after the container has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - periodSeconds: - description: |- - How often (in seconds) to perform the probe. - Default to 10 seconds. Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - Minimum consecutive successes for the probe to be considered successful after having failed. - Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. - format: int32 - type: integer - tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. - properties: - host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - description: |- - Optional duration in seconds the pod needs to terminate gracefully upon probe failure. - The grace period is the duration in seconds after the processes running in the pod are sent - a termination signal and the time when the processes are forcibly halted with a kill signal. - Set this value longer than the expected cleanup time for your process. - If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this - value overrides the value provided by the pod spec. - Value must be non-negative integer. The value zero indicates stop immediately via - the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. - format: int64 - type: integer - timeoutSeconds: - description: |- - Number of seconds after which the probe times out. - Defaults to 1 second. Minimum value is 1. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - type: object - resizePolicy: - description: Resources resize policy for the container. - items: - description: ContainerResizePolicy represents - resource resize policy for the container. - properties: - resourceName: - description: |- - Name of the resource to which this resource resize policy applies. - Supported values: cpu, memory. - type: string - restartPolicy: - description: |- - Restart policy to apply when specified resource is resized. - If not specified, it defaults to NotRequired. - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic - resources: - description: |- - Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources - already allocated to the pod. - properties: - claims: - description: |- - Claims lists the names of resources, defined in spec.resourceClaims, - that are used by this container. - - - This is an alpha field and requires enabling the - DynamicResourceAllocation feature gate. - - - This field is immutable. It can only be set for containers. - items: - description: ResourceClaim references one - entry in PodSpec.ResourceClaims. - properties: - name: - description: |- - Name must match the name of one entry in pod.spec.resourceClaims of - the Pod where this field is used. It makes that resource available - inside a container. - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: |- - Limits describes the maximum amount of compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: |- - Requests describes the minimum amount of compute resources required. - If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, - otherwise to an implementation-defined value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - type: object - restartPolicy: - description: |- - Restart policy for the container to manage the restart behavior of each - container within a pod. - This may only be set for init containers. You cannot set this field on - ephemeral containers. - type: string - securityContext: - description: |- - Optional: SecurityContext defines the security options the ephemeral container should be run with. - If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. - properties: - allowPrivilegeEscalation: - description: |- - AllowPrivilegeEscalation controls whether a process can gain more - privileges than its parent process. This bool directly controls if - the no_new_privs flag will be set on the container process. - AllowPrivilegeEscalation is true always when the container is: - 1) run as Privileged - 2) has CAP_SYS_ADMIN - Note that this field cannot be set when spec.os.name is windows. - type: boolean - capabilities: - description: |- - The capabilities to add/drop when running containers. - Defaults to the default set of capabilities granted by the container runtime. - Note that this field cannot be set when spec.os.name is windows. - properties: - add: - description: Added capabilities - items: - description: Capability represent POSIX - capabilities type - type: string - type: array - drop: - description: Removed capabilities - items: - description: Capability represent POSIX - capabilities type - type: string - type: array - type: object - privileged: - description: |- - Run container in privileged mode. - Processes in privileged containers are essentially equivalent to root on the host. - Defaults to false. - Note that this field cannot be set when spec.os.name is windows. - type: boolean - procMount: - description: |- - procMount denotes the type of proc mount to use for the containers. - The default is DefaultProcMount which uses the container runtime defaults for - readonly paths and masked paths. - This requires the ProcMountType feature flag to be enabled. - Note that this field cannot be set when spec.os.name is windows. - type: string - readOnlyRootFilesystem: - description: |- - Whether this container has a read-only root filesystem. - Default is false. - Note that this field cannot be set when spec.os.name is windows. - type: boolean - runAsGroup: - description: |- - The GID to run the entrypoint of the container process. - Uses runtime default if unset. - May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is windows. - format: int64 - type: integer - runAsNonRoot: - description: |- - Indicates that the container must run as a non-root user. - If true, the Kubelet will validate the image at runtime to ensure that it - does not run as UID 0 (root) and fail to start the container if it does. - If unset or false, no such validation will be performed. - May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - type: boolean - runAsUser: - description: |- - The UID to run the entrypoint of the container process. - Defaults to user specified in image metadata if unspecified. - May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is windows. - format: int64 - type: integer - seLinuxOptions: - description: |- - The SELinux context to be applied to the container. - If unspecified, the container runtime will allocate a random SELinux context for each - container. May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is windows. - properties: - level: - description: Level is SELinux level label - that applies to the container. - type: string - role: - description: Role is a SELinux role label - that applies to the container. - type: string - type: - description: Type is a SELinux type label - that applies to the container. - type: string - user: - description: User is a SELinux user label - that applies to the container. - type: string - type: object - seccompProfile: - description: |- - The seccomp options to use by this container. If seccomp options are - provided at both the pod & container level, the container options - override the pod options. - Note that this field cannot be set when spec.os.name is windows. - properties: - localhostProfile: - description: |- - localhostProfile indicates a profile defined in a file on the node should be used. - The profile must be preconfigured on the node to work. - Must be a descending path, relative to the kubelet's configured seccomp profile location. - Must be set if type is "Localhost". Must NOT be set for any other type. - type: string - type: - description: |- - type indicates which kind of seccomp profile will be applied. - Valid options are: - - - Localhost - a profile defined in a file on the node should be used. - RuntimeDefault - the container runtime default profile should be used. - Unconfined - no profile should be applied. - type: string - required: - - type - type: object - windowsOptions: - description: |- - The Windows specific settings applied to all containers. - If unspecified, the options from the PodSecurityContext will be used. - If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is linux. - properties: - gmsaCredentialSpec: - description: |- - GMSACredentialSpec is where the GMSA admission webhook - (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the - GMSA credential spec named by the GMSACredentialSpecName field. - type: string - gmsaCredentialSpecName: - description: GMSACredentialSpecName is the - name of the GMSA credential spec to use. - type: string - hostProcess: - description: |- - HostProcess determines if a container should be run as a 'Host Process' container. - All of a Pod's containers must have the same effective HostProcess value - (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). - In addition, if HostProcess is true then HostNetwork must also be set to true. - type: boolean - runAsUserName: - description: |- - The UserName in Windows to run the entrypoint of the container process. - Defaults to the user specified in image metadata if unspecified. - May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - type: string - type: object - type: object - startupProbe: - description: Probes are not allowed for ephemeral - containers. - properties: - exec: - description: Exec specifies the action to take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - failureThreshold: - description: |- - Minimum consecutive failures for the probe to be considered failed after having succeeded. - Defaults to 3. Minimum value is 1. - format: int32 - type: integer - grpc: - description: GRPC specifies an action involving - a GRPC port. - properties: - port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. - format: int32 - type: integer - service: - description: |- - Service is the name of the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - - - If this is not specified, the default behavior is defined by gRPC. - type: string - required: - - port - type: object - httpGet: - description: HTTPGet specifies the http request - to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. - items: - description: HTTPHeader describes a custom - header to be used in HTTP probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - initialDelaySeconds: - description: |- - Number of seconds after the container has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - periodSeconds: - description: |- - How often (in seconds) to perform the probe. - Default to 10 seconds. Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - Minimum consecutive successes for the probe to be considered successful after having failed. - Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. - format: int32 - type: integer - tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. - properties: - host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - description: |- - Optional duration in seconds the pod needs to terminate gracefully upon probe failure. - The grace period is the duration in seconds after the processes running in the pod are sent - a termination signal and the time when the processes are forcibly halted with a kill signal. - Set this value longer than the expected cleanup time for your process. - If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this - value overrides the value provided by the pod spec. - Value must be non-negative integer. The value zero indicates stop immediately via - the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. - format: int64 - type: integer - timeoutSeconds: - description: |- - Number of seconds after which the probe times out. - Defaults to 1 second. Minimum value is 1. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - type: object - stdin: - description: |- - Whether this container should allocate a buffer for stdin in the container runtime. If this - is not set, reads from stdin in the container will always result in EOF. - Default is false. - type: boolean - stdinOnce: - description: |- - Whether the container runtime should close the stdin channel after it has been opened by - a single attach. When stdin is true the stdin stream will remain open across multiple attach - sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the - first client attaches to stdin, and then remains open and accepts data until the client disconnects, - at which time stdin is closed and remains closed until the container is restarted. If this - flag is false, a container processes that reads from stdin will never receive an EOF. - Default is false - type: boolean - targetContainerName: - description: |- - If set, the name of the container from PodSpec that this ephemeral container targets. - The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. - If not set then the ephemeral container uses the namespaces configured in the Pod spec. - - - The container runtime must implement support for this feature. If the runtime does not - support namespace targeting then the result of setting this field is undefined. - type: string - terminationMessagePath: - description: |- - Optional: Path at which the file to which the container's termination message - will be written is mounted into the container's filesystem. - Message written is intended to be brief final status, such as an assertion failure message. - Will be truncated by the node if greater than 4096 bytes. The total message length across - all containers will be limited to 12kb. - Defaults to /dev/termination-log. - Cannot be updated. - type: string - terminationMessagePolicy: - description: |- - Indicate how the termination message should be populated. File will use the contents of - terminationMessagePath to populate the container status message on both success and failure. - FallbackToLogsOnError will use the last chunk of container log output if the termination - message file is empty and the container exited with an error. - The log output is limited to 2048 bytes or 80 lines, whichever is smaller. - Defaults to File. - Cannot be updated. - type: string - tty: - description: |- - Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. - Default is false. - type: boolean - volumeDevices: - description: volumeDevices is the list of block - devices to be used by the container. - items: - description: volumeDevice describes a mapping - of a raw block device within a container. - properties: - devicePath: - description: devicePath is the path inside - of the container that the device will be - mapped to. - type: string - name: - description: name must match the name of a - persistentVolumeClaim in the pod - type: string - required: - - devicePath - - name - type: object - type: array - volumeMounts: - description: |- - Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers. - Cannot be updated. - items: - description: VolumeMount describes a mounting - of a Volume within a container. - properties: - mountPath: - description: |- - Path within the container at which the volume should be mounted. Must - not contain ':'. - type: string - mountPropagation: - description: |- - mountPropagation determines how mounts are propagated from the host - to container and the other way around. - When not set, MountPropagationNone is used. - This field is beta in 1.10. - type: string - name: - description: This must match the Name of a - Volume. - type: string - readOnly: - description: |- - Mounted read-only if true, read-write otherwise (false or unspecified). - Defaults to false. - type: boolean - subPath: - description: |- - Path within the volume from which the container's volume should be mounted. - Defaults to "" (volume's root). - type: string - subPathExpr: - description: |- - Expanded path within the volume from which the container's volume should be mounted. - Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. - Defaults to "" (volume's root). - SubPathExpr and SubPath are mutually exclusive. - type: string - required: - - mountPath - - name - type: object - type: array - workingDir: - description: |- - Container's working directory. - If not specified, the container runtime's default will be used, which - might be configured in the container image. - Cannot be updated. - type: string - required: - - name - type: object - type: array - initContainers: - description: InitContainers - items: - description: A single application container that you - want to run within a pod. - properties: - args: - description: |- - Arguments to the entrypoint. - The container image's CMD is used if this is not provided. - Variable references $(VAR_NAME) are expanded using the container's environment. If a variable - cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced - to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will - produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless - of whether the variable exists or not. Cannot be updated. - More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell - items: - type: string - type: array - command: - description: |- - Entrypoint array. Not executed within a shell. - The container image's ENTRYPOINT is used if this is not provided. - Variable references $(VAR_NAME) are expanded using the container's environment. If a variable - cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced - to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will - produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless - of whether the variable exists or not. Cannot be updated. - More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell - items: - type: string - type: array - env: - description: |- - List of environment variables to set in the container. - Cannot be updated. - items: - description: EnvVar represents an environment - variable present in a Container. - properties: - name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. - type: string - value: - description: |- - Variable references $(VAR_NAME) are expanded - using the previously defined environment variables in the container and - any service environment variables. If a variable cannot be resolved, - the reference in the input string will be unchanged. Double $$ are reduced - to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. - "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, regardless of whether the variable - exists or not. - Defaults to "". - type: string - valueFrom: - description: Source for the environment variable's - value. Cannot be used if value is not empty. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema - the FieldPath is written in terms - of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to - select in the specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required - for volumes, optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to - select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret - in the pod's namespace - properties: - key: - description: The key of the secret - to select from. Must be a valid - secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - name - type: object - type: array - envFrom: - description: |- - List of sources to populate environment variables in the container. - The keys defined within a source must be a C_IDENTIFIER. All invalid keys - will be reported as an event when the container is starting. When a key exists in multiple - sources, the value associated with the last source will take precedence. - Values defined by an Env with a duplicate key will take precedence. - Cannot be updated. - items: - description: EnvFromSource represents the source - of a set of ConfigMaps - properties: - configMapRef: - description: The ConfigMap to select from - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap - must be defined - type: boolean - type: object - x-kubernetes-map-type: atomic - prefix: - description: An optional identifier to prepend - to each key in the ConfigMap. Must be a - C_IDENTIFIER. - type: string - secretRef: - description: The Secret to select from - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret - must be defined - type: boolean - type: object - x-kubernetes-map-type: atomic - type: object - type: array - image: - description: |- - Container image name. - More info: https://kubernetes.io/docs/concepts/containers/images - This field is optional to allow higher level config management to default or override - container images in workload controllers like Deployments and StatefulSets. - type: string - imagePullPolicy: - description: |- - Image pull policy. - One of Always, Never, IfNotPresent. - Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. - Cannot be updated. - More info: https://kubernetes.io/docs/concepts/containers/images#updating-images - type: string - lifecycle: - description: |- - Actions that the management system should take in response to container lifecycle events. - Cannot be updated. - properties: - postStart: - description: |- - PostStart is called immediately after a container is created. If the handler fails, - the container is terminated and restarted according to its restart policy. - Other management of the container blocks until the hook completes. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks - properties: - exec: - description: Exec specifies the action to - take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - httpGet: - description: HTTPGet specifies the http - request to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated - headers. - items: - description: HTTPHeader describes - a custom header to be used in HTTP - probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field - value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. - properties: - seconds: - description: Seconds is the number of - seconds to sleep. - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - description: |- - Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept - for the backward compatibility. There are no validation of this field and - lifecycle hooks will fail in runtime when tcp handler is specified. - properties: - host: - description: 'Optional: Host name to - connect to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - preStop: - description: |- - PreStop is called immediately before a container is terminated due to an - API request or management event such as liveness/startup probe failure, - preemption, resource contention, etc. The handler is not called if the - container crashes or exits. The Pod's termination grace period countdown begins before the - PreStop hook is executed. Regardless of the outcome of the handler, the - container will eventually terminate within the Pod's termination grace - period (unless delayed by finalizers). Other management of the container blocks until the hook completes - or until the termination grace period is reached. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks - properties: - exec: - description: Exec specifies the action to - take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - httpGet: - description: HTTPGet specifies the http - request to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated - headers. - items: - description: HTTPHeader describes - a custom header to be used in HTTP - probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field - value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. - properties: - seconds: - description: Seconds is the number of - seconds to sleep. - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - description: |- - Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept - for the backward compatibility. There are no validation of this field and - lifecycle hooks will fail in runtime when tcp handler is specified. - properties: - host: - description: 'Optional: Host name to - connect to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - type: object - livenessProbe: - description: |- - Periodic probe of container liveness. - Container will be restarted if the probe fails. - Cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - properties: - exec: - description: Exec specifies the action to take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - failureThreshold: - description: |- - Minimum consecutive failures for the probe to be considered failed after having succeeded. - Defaults to 3. Minimum value is 1. - format: int32 - type: integer - grpc: - description: GRPC specifies an action involving - a GRPC port. - properties: - port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. - format: int32 - type: integer - service: - description: |- - Service is the name of the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - - - If this is not specified, the default behavior is defined by gRPC. - type: string - required: - - port - type: object - httpGet: - description: HTTPGet specifies the http request - to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. - items: - description: HTTPHeader describes a custom - header to be used in HTTP probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - initialDelaySeconds: - description: |- - Number of seconds after the container has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - periodSeconds: - description: |- - How often (in seconds) to perform the probe. - Default to 10 seconds. Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - Minimum consecutive successes for the probe to be considered successful after having failed. - Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. - format: int32 - type: integer - tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. - properties: - host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - description: |- - Optional duration in seconds the pod needs to terminate gracefully upon probe failure. - The grace period is the duration in seconds after the processes running in the pod are sent - a termination signal and the time when the processes are forcibly halted with a kill signal. - Set this value longer than the expected cleanup time for your process. - If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this - value overrides the value provided by the pod spec. - Value must be non-negative integer. The value zero indicates stop immediately via - the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. - format: int64 - type: integer - timeoutSeconds: - description: |- - Number of seconds after which the probe times out. - Defaults to 1 second. Minimum value is 1. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - type: object - name: - description: |- - Name of the container specified as a DNS_LABEL. - Each container in a pod must have a unique name (DNS_LABEL). - Cannot be updated. - type: string - ports: - description: |- - List of ports to expose from the container. Not specifying a port here - DOES NOT prevent that port from being exposed. Any port which is - listening on the default "0.0.0.0" address inside a container will be - accessible from the network. - Modifying this array with strategic merge patch may corrupt the data. - For more information See https://github.com/kubernetes/kubernetes/issues/108255. - Cannot be updated. - items: - description: ContainerPort represents a network - port in a single container. - properties: - containerPort: - description: |- - Number of port to expose on the pod's IP address. - This must be a valid port number, 0 < x < 65536. - format: int32 - type: integer - hostIP: - description: What host IP to bind the external - port to. - type: string - hostPort: - description: |- - Number of port to expose on the host. - If specified, this must be a valid port number, 0 < x < 65536. - If HostNetwork is specified, this must match ContainerPort. - Most containers do not need this. - format: int32 - type: integer - name: - description: |- - If specified, this must be an IANA_SVC_NAME and unique within the pod. Each - named port in a pod must have a unique name. Name for the port that can be - referred to by services. - type: string - protocol: - default: TCP - description: |- - Protocol for port. Must be UDP, TCP, or SCTP. - Defaults to "TCP". - type: string - required: - - containerPort - type: object - type: array - x-kubernetes-list-map-keys: - - containerPort - - protocol - x-kubernetes-list-type: map - readinessProbe: - description: |- - Periodic probe of container service readiness. - Container will be removed from service endpoints if the probe fails. - Cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - properties: - exec: - description: Exec specifies the action to take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - failureThreshold: - description: |- - Minimum consecutive failures for the probe to be considered failed after having succeeded. - Defaults to 3. Minimum value is 1. - format: int32 - type: integer - grpc: - description: GRPC specifies an action involving - a GRPC port. - properties: - port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. - format: int32 - type: integer - service: - description: |- - Service is the name of the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - - - If this is not specified, the default behavior is defined by gRPC. - type: string - required: - - port - type: object - httpGet: - description: HTTPGet specifies the http request - to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. - items: - description: HTTPHeader describes a custom - header to be used in HTTP probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - initialDelaySeconds: - description: |- - Number of seconds after the container has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - periodSeconds: - description: |- - How often (in seconds) to perform the probe. - Default to 10 seconds. Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - Minimum consecutive successes for the probe to be considered successful after having failed. - Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. - format: int32 - type: integer - tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. - properties: - host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - description: |- - Optional duration in seconds the pod needs to terminate gracefully upon probe failure. - The grace period is the duration in seconds after the processes running in the pod are sent - a termination signal and the time when the processes are forcibly halted with a kill signal. - Set this value longer than the expected cleanup time for your process. - If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this - value overrides the value provided by the pod spec. - Value must be non-negative integer. The value zero indicates stop immediately via - the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. - format: int64 - type: integer - timeoutSeconds: - description: |- - Number of seconds after which the probe times out. - Defaults to 1 second. Minimum value is 1. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - type: object - resizePolicy: - description: Resources resize policy for the container. - items: - description: ContainerResizePolicy represents - resource resize policy for the container. - properties: - resourceName: - description: |- - Name of the resource to which this resource resize policy applies. - Supported values: cpu, memory. - type: string - restartPolicy: - description: |- - Restart policy to apply when specified resource is resized. - If not specified, it defaults to NotRequired. - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic - resources: - description: |- - Compute Resources required by this container. - Cannot be updated. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - properties: - claims: - description: |- - Claims lists the names of resources, defined in spec.resourceClaims, - that are used by this container. - - - This is an alpha field and requires enabling the - DynamicResourceAllocation feature gate. - - - This field is immutable. It can only be set for containers. - items: - description: ResourceClaim references one - entry in PodSpec.ResourceClaims. - properties: - name: - description: |- - Name must match the name of one entry in pod.spec.resourceClaims of - the Pod where this field is used. It makes that resource available - inside a container. - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: |- - Limits describes the maximum amount of compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: |- - Requests describes the minimum amount of compute resources required. - If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, - otherwise to an implementation-defined value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - type: object - restartPolicy: - description: |- - RestartPolicy defines the restart behavior of individual containers in a pod. - This field may only be set for init containers, and the only allowed value is "Always". - For non-init containers or when this field is not specified, - the restart behavior is defined by the Pod's restart policy and the container type. - Setting the RestartPolicy as "Always" for the init container will have the following effect: - this init container will be continually restarted on - exit until all regular containers have terminated. Once all regular - containers have completed, all init containers with restartPolicy "Always" - will be shut down. This lifecycle differs from normal init containers and - is often referred to as a "sidecar" container. Although this init - container still starts in the init container sequence, it does not wait - for the container to complete before proceeding to the next init - container. Instead, the next init container starts immediately after this - init container is started, or after any startupProbe has successfully - completed. - type: string - securityContext: - description: |- - SecurityContext defines the security options the container should be run with. - If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ - properties: - allowPrivilegeEscalation: - description: |- - AllowPrivilegeEscalation controls whether a process can gain more - privileges than its parent process. This bool directly controls if - the no_new_privs flag will be set on the container process. - AllowPrivilegeEscalation is true always when the container is: - 1) run as Privileged - 2) has CAP_SYS_ADMIN - Note that this field cannot be set when spec.os.name is windows. - type: boolean - capabilities: - description: |- - The capabilities to add/drop when running containers. - Defaults to the default set of capabilities granted by the container runtime. - Note that this field cannot be set when spec.os.name is windows. - properties: - add: - description: Added capabilities - items: - description: Capability represent POSIX - capabilities type - type: string - type: array - drop: - description: Removed capabilities - items: - description: Capability represent POSIX - capabilities type - type: string - type: array - type: object - privileged: - description: |- - Run container in privileged mode. - Processes in privileged containers are essentially equivalent to root on the host. - Defaults to false. - Note that this field cannot be set when spec.os.name is windows. - type: boolean - procMount: - description: |- - procMount denotes the type of proc mount to use for the containers. - The default is DefaultProcMount which uses the container runtime defaults for - readonly paths and masked paths. - This requires the ProcMountType feature flag to be enabled. - Note that this field cannot be set when spec.os.name is windows. - type: string - readOnlyRootFilesystem: - description: |- - Whether this container has a read-only root filesystem. - Default is false. - Note that this field cannot be set when spec.os.name is windows. - type: boolean - runAsGroup: - description: |- - The GID to run the entrypoint of the container process. - Uses runtime default if unset. - May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is windows. - format: int64 - type: integer - runAsNonRoot: - description: |- - Indicates that the container must run as a non-root user. - If true, the Kubelet will validate the image at runtime to ensure that it - does not run as UID 0 (root) and fail to start the container if it does. - If unset or false, no such validation will be performed. - May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - type: boolean - runAsUser: - description: |- - The UID to run the entrypoint of the container process. - Defaults to user specified in image metadata if unspecified. - May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is windows. - format: int64 - type: integer - seLinuxOptions: - description: |- - The SELinux context to be applied to the container. - If unspecified, the container runtime will allocate a random SELinux context for each - container. May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is windows. - properties: - level: - description: Level is SELinux level label - that applies to the container. - type: string - role: - description: Role is a SELinux role label - that applies to the container. - type: string - type: - description: Type is a SELinux type label - that applies to the container. - type: string - user: - description: User is a SELinux user label - that applies to the container. - type: string - type: object - seccompProfile: - description: |- - The seccomp options to use by this container. If seccomp options are - provided at both the pod & container level, the container options - override the pod options. - Note that this field cannot be set when spec.os.name is windows. - properties: - localhostProfile: - description: |- - localhostProfile indicates a profile defined in a file on the node should be used. - The profile must be preconfigured on the node to work. - Must be a descending path, relative to the kubelet's configured seccomp profile location. - Must be set if type is "Localhost". Must NOT be set for any other type. - type: string - type: - description: |- - type indicates which kind of seccomp profile will be applied. - Valid options are: - - - Localhost - a profile defined in a file on the node should be used. - RuntimeDefault - the container runtime default profile should be used. - Unconfined - no profile should be applied. - type: string - required: - - type - type: object - windowsOptions: - description: |- - The Windows specific settings applied to all containers. - If unspecified, the options from the PodSecurityContext will be used. - If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is linux. - properties: - gmsaCredentialSpec: - description: |- - GMSACredentialSpec is where the GMSA admission webhook - (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the - GMSA credential spec named by the GMSACredentialSpecName field. - type: string - gmsaCredentialSpecName: - description: GMSACredentialSpecName is the - name of the GMSA credential spec to use. - type: string - hostProcess: - description: |- - HostProcess determines if a container should be run as a 'Host Process' container. - All of a Pod's containers must have the same effective HostProcess value - (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). - In addition, if HostProcess is true then HostNetwork must also be set to true. - type: boolean - runAsUserName: - description: |- - The UserName in Windows to run the entrypoint of the container process. - Defaults to the user specified in image metadata if unspecified. - May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - type: string - type: object - type: object - startupProbe: - description: |- - StartupProbe indicates that the Pod has successfully initialized. - If specified, no other probes are executed until this completes successfully. - If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. - This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, - when it might take a long time to load data or warm a cache, than during steady-state operation. - This cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - properties: - exec: - description: Exec specifies the action to take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - failureThreshold: - description: |- - Minimum consecutive failures for the probe to be considered failed after having succeeded. - Defaults to 3. Minimum value is 1. - format: int32 - type: integer - grpc: - description: GRPC specifies an action involving - a GRPC port. - properties: - port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. - format: int32 - type: integer - service: - description: |- - Service is the name of the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - - - If this is not specified, the default behavior is defined by gRPC. - type: string - required: - - port - type: object - httpGet: - description: HTTPGet specifies the http request - to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. - items: - description: HTTPHeader describes a custom - header to be used in HTTP probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - initialDelaySeconds: - description: |- - Number of seconds after the container has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - periodSeconds: - description: |- - How often (in seconds) to perform the probe. - Default to 10 seconds. Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - Minimum consecutive successes for the probe to be considered successful after having failed. - Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. - format: int32 - type: integer - tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. - properties: - host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - description: |- - Optional duration in seconds the pod needs to terminate gracefully upon probe failure. - The grace period is the duration in seconds after the processes running in the pod are sent - a termination signal and the time when the processes are forcibly halted with a kill signal. - Set this value longer than the expected cleanup time for your process. - If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this - value overrides the value provided by the pod spec. - Value must be non-negative integer. The value zero indicates stop immediately via - the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. - format: int64 - type: integer - timeoutSeconds: - description: |- - Number of seconds after which the probe times out. - Defaults to 1 second. Minimum value is 1. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - type: object - stdin: - description: |- - Whether this container should allocate a buffer for stdin in the container runtime. If this - is not set, reads from stdin in the container will always result in EOF. - Default is false. - type: boolean - stdinOnce: - description: |- - Whether the container runtime should close the stdin channel after it has been opened by - a single attach. When stdin is true the stdin stream will remain open across multiple attach - sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the - first client attaches to stdin, and then remains open and accepts data until the client disconnects, - at which time stdin is closed and remains closed until the container is restarted. If this - flag is false, a container processes that reads from stdin will never receive an EOF. - Default is false - type: boolean - terminationMessagePath: - description: |- - Optional: Path at which the file to which the container's termination message - will be written is mounted into the container's filesystem. - Message written is intended to be brief final status, such as an assertion failure message. - Will be truncated by the node if greater than 4096 bytes. The total message length across - all containers will be limited to 12kb. - Defaults to /dev/termination-log. - Cannot be updated. - type: string - terminationMessagePolicy: - description: |- - Indicate how the termination message should be populated. File will use the contents of - terminationMessagePath to populate the container status message on both success and failure. - FallbackToLogsOnError will use the last chunk of container log output if the termination - message file is empty and the container exited with an error. - The log output is limited to 2048 bytes or 80 lines, whichever is smaller. - Defaults to File. - Cannot be updated. - type: string - tty: - description: |- - Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. - Default is false. - type: boolean - volumeDevices: - description: volumeDevices is the list of block - devices to be used by the container. - items: - description: volumeDevice describes a mapping - of a raw block device within a container. - properties: - devicePath: - description: devicePath is the path inside - of the container that the device will be - mapped to. - type: string - name: - description: name must match the name of a - persistentVolumeClaim in the pod - type: string - required: - - devicePath - - name - type: object - type: array - volumeMounts: - description: |- - Pod volumes to mount into the container's filesystem. - Cannot be updated. - items: - description: VolumeMount describes a mounting - of a Volume within a container. - properties: - mountPath: - description: |- - Path within the container at which the volume should be mounted. Must - not contain ':'. - type: string - mountPropagation: - description: |- - mountPropagation determines how mounts are propagated from the host - to container and the other way around. - When not set, MountPropagationNone is used. - This field is beta in 1.10. - type: string - name: - description: This must match the Name of a - Volume. - type: string - readOnly: - description: |- - Mounted read-only if true, read-write otherwise (false or unspecified). - Defaults to false. - type: boolean - subPath: - description: |- - Path within the volume from which the container's volume should be mounted. - Defaults to "" (volume's root). - type: string - subPathExpr: - description: |- - Expanded path within the volume from which the container's volume should be mounted. - Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. - Defaults to "" (volume's root). - SubPathExpr and SubPath are mutually exclusive. - type: string - required: - - mountPath - - name - type: object - type: array - workingDir: - description: |- - Container's working directory. - If not specified, the container runtime's default will be used, which - might be configured in the container image. - Cannot be updated. - type: string - required: - - name - type: object - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector - type: object - restartPolicy: - description: RestartPolicy - type: string - securityContext: - description: PodSecurityContext - properties: - fsGroup: - description: |- - A special supplemental group that applies to all containers in a pod. - Some volume types allow the Kubelet to change the ownership of that volume - to be owned by the pod: - - - 1. The owning GID will be the FSGroup - 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) - 3. The permission bits are OR'd with rw-rw---- - - - If unset, the Kubelet will not modify the ownership and permissions of any volume. - Note that this field cannot be set when spec.os.name is windows. - format: int64 - type: integer - fsGroupChangePolicy: - description: |- - fsGroupChangePolicy defines behavior of changing ownership and permission of the volume - before being exposed inside Pod. This field will only apply to - volume types which support fsGroup based ownership(and permissions). - It will have no effect on ephemeral volume types such as: secret, configmaps - and emptydir. - Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used. - Note that this field cannot be set when spec.os.name is windows. - type: string - runAsGroup: - description: |- - The GID to run the entrypoint of the container process. - Uses runtime default if unset. - May also be set in SecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence - for that container. - Note that this field cannot be set when spec.os.name is windows. - format: int64 - type: integer - runAsNonRoot: - description: |- - Indicates that the container must run as a non-root user. - If true, the Kubelet will validate the image at runtime to ensure that it - does not run as UID 0 (root) and fail to start the container if it does. - If unset or false, no such validation will be performed. - May also be set in SecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - type: boolean - runAsUser: - description: |- - The UID to run the entrypoint of the container process. - Defaults to user specified in image metadata if unspecified. - May also be set in SecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence - for that container. - Note that this field cannot be set when spec.os.name is windows. - format: int64 - type: integer - seLinuxOptions: - description: |- - The SELinux context to be applied to all containers. - If unspecified, the container runtime will allocate a random SELinux context for each - container. May also be set in SecurityContext. If set in - both SecurityContext and PodSecurityContext, the value specified in SecurityContext - takes precedence for that container. - Note that this field cannot be set when spec.os.name is windows. - properties: - level: - description: Level is SELinux level label that - applies to the container. - type: string - role: - description: Role is a SELinux role label that - applies to the container. - type: string - type: - description: Type is a SELinux type label that - applies to the container. - type: string - user: - description: User is a SELinux user label that - applies to the container. - type: string - type: object - seccompProfile: - description: |- - The seccomp options to use by the containers in this pod. - Note that this field cannot be set when spec.os.name is windows. - properties: - localhostProfile: - description: |- - localhostProfile indicates a profile defined in a file on the node should be used. - The profile must be preconfigured on the node to work. - Must be a descending path, relative to the kubelet's configured seccomp profile location. - Must be set if type is "Localhost". Must NOT be set for any other type. - type: string - type: - description: |- - type indicates which kind of seccomp profile will be applied. - Valid options are: - - - Localhost - a profile defined in a file on the node should be used. - RuntimeDefault - the container runtime default profile should be used. - Unconfined - no profile should be applied. - type: string - required: - - type - type: object - supplementalGroups: - description: |- - A list of groups applied to the first process run in each container, in addition - to the container's primary GID, the fsGroup (if specified), and group memberships - defined in the container image for the uid of the container process. If unspecified, - no additional groups are added to any container. Note that group memberships - defined in the container image for the uid of the container process are still effective, - even if they are not included in this list. - Note that this field cannot be set when spec.os.name is windows. - items: - format: int64 - type: integer - type: array - sysctls: - description: |- - Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported - sysctls (by the container runtime) might fail to launch. - Note that this field cannot be set when spec.os.name is windows. - items: - description: Sysctl defines a kernel parameter to - be set - properties: - name: - description: Name of a property to set - type: string - value: - description: Value of a property to set - type: string - required: - - name - - value - type: object - type: array - windowsOptions: - description: |- - The Windows specific settings applied to all containers. - If unspecified, the options within a container's SecurityContext will be used. - If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is linux. - properties: - gmsaCredentialSpec: - description: |- - GMSACredentialSpec is where the GMSA admission webhook - (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the - GMSA credential spec named by the GMSACredentialSpecName field. - type: string - gmsaCredentialSpecName: - description: GMSACredentialSpecName is the name - of the GMSA credential spec to use. - type: string - hostProcess: - description: |- - HostProcess determines if a container should be run as a 'Host Process' container. - All of a Pod's containers must have the same effective HostProcess value - (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). - In addition, if HostProcess is true then HostNetwork must also be set to true. - type: boolean - runAsUserName: - description: |- - The UserName in Windows to run the entrypoint of the container process. - Defaults to the user specified in image metadata if unspecified. - May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - type: string - type: object - type: object - terminationGracePeriodSeconds: - description: TerminationGracePeriodSeconds - format: int64 - type: integer - topologySpreadConstraints: - description: TopologySpreadConstraints - items: - description: TopologySpreadConstraint specifies how - to spread matching pods among the given topology. - properties: - labelSelector: - description: |- - LabelSelector is used to find matching pods. - Pods that match this label selector are counted to determine the number of pods - in their corresponding topology domain. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are - ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that - the selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - description: |- - MatchLabelKeys is a set of pod label keys to select the pods over which - spreading will be calculated. The keys are used to lookup values from the - incoming pod labels, those key-value labels are ANDed with labelSelector - to select the group of existing pods over which spreading will be calculated - for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. - MatchLabelKeys cannot be set when LabelSelector isn't set. - Keys that don't exist in the incoming pod labels will - be ignored. A null or empty list means only match against labelSelector. - - - This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default). - items: - type: string - type: array - x-kubernetes-list-type: atomic - maxSkew: - description: |- - MaxSkew describes the degree to which pods may be unevenly distributed. - When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference - between the number of matching pods in the target topology and the global minimum. - The global minimum is the minimum number of matching pods in an eligible domain - or zero if the number of eligible domains is less than MinDomains. - For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same - labelSelector spread as 2/2/1: - In this case, the global minimum is 1. - | zone1 | zone2 | zone3 | - | P P | P P | P | - - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; - scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) - violate MaxSkew(1). - - if MaxSkew is 2, incoming pod can be scheduled onto any zone. - When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence - to topologies that satisfy it. - It's a required field. Default value is 1 and 0 is not allowed. - format: int32 - type: integer - minDomains: - description: |- - MinDomains indicates a minimum number of eligible domains. - When the number of eligible domains with matching topology keys is less than minDomains, - Pod Topology Spread treats "global minimum" as 0, and then the calculation of Skew is performed. - And when the number of eligible domains with matching topology keys equals or greater than minDomains, - this value has no effect on scheduling. - As a result, when the number of eligible domains is less than minDomains, - scheduler won't schedule more than maxSkew Pods to those domains. - If value is nil, the constraint behaves as if MinDomains is equal to 1. - Valid values are integers greater than 0. - When value is not nil, WhenUnsatisfiable must be DoNotSchedule. - - - For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same - labelSelector spread as 2/2/2: - | zone1 | zone2 | zone3 | - | P P | P P | P P | - The number of domains is less than 5(MinDomains), so "global minimum" is treated as 0. - In this situation, new pod with the same labelSelector cannot be scheduled, - because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, - it will violate MaxSkew. - - - This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default). - format: int32 - type: integer - nodeAffinityPolicy: - description: |- - NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector - when calculating pod topology spread skew. Options are: - - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. - - - If this value is nil, the behavior is equivalent to the Honor policy. - This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. - type: string - nodeTaintsPolicy: - description: |- - NodeTaintsPolicy indicates how we will treat node taints when calculating - pod topology spread skew. Options are: - - Honor: nodes without taints, along with tainted nodes for which the incoming pod - has a toleration, are included. - - Ignore: node taints are ignored. All nodes are included. - - - If this value is nil, the behavior is equivalent to the Ignore policy. - This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. - type: string - topologyKey: - description: |- - TopologyKey is the key of node labels. Nodes that have a label with this key - and identical values are considered to be in the same topology. - We consider each as a "bucket", and try to put balanced number - of pods into each bucket. - We define a domain as a particular instance of a topology. - Also, we define an eligible domain as a domain whose nodes meet the requirements of - nodeAffinityPolicy and nodeTaintsPolicy. - e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. - And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. - It's a required field. - type: string - whenUnsatisfiable: - description: |- - WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy - the spread constraint. - - DoNotSchedule (default) tells the scheduler not to schedule it. - - ScheduleAnyway tells the scheduler to schedule the pod in any location, - but giving higher precedence to topologies that would help reduce the - skew. - A constraint is considered "Unsatisfiable" for an incoming pod - if and only if every possible node assignment for that pod would violate - "MaxSkew" on some topology. - For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same - labelSelector spread as 3/1/1: - | zone1 | zone2 | zone3 | - | P P P | P | P | - If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled - to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies - MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler - won't make it *more* imbalanced. - It's a required field. - type: string - required: - - maxSkew - - topologyKey - - whenUnsatisfiable - type: object - type: array - volumes: - description: Volumes - items: - description: Volume represents a named volume in a pod - that may be accessed by any container in the pod. - properties: - awsElasticBlockStore: - description: |- - awsElasticBlockStore represents an AWS Disk resource that is attached to a - kubelet's host machine and then exposed to the pod. - More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - properties: - fsType: - description: |- - fsType is the filesystem type of the volume that you want to mount. - Tip: Ensure that the filesystem type is supported by the host operating system. - Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem from compromising the machine - type: string - partition: - description: |- - partition is the partition in the volume that you want to mount. - If omitted, the default is to mount by volume name. - Examples: For volume /dev/sda1, you specify the partition as "1". - Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). - format: int32 - type: integer - readOnly: - description: |- - readOnly value true will force the readOnly setting in VolumeMounts. - More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - type: boolean - volumeID: - description: |- - volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). - More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - type: string - required: - - volumeID - type: object - azureDisk: - description: azureDisk represents an Azure Data - Disk mount on the host and bind mount to the pod. - properties: - cachingMode: - description: 'cachingMode is the Host Caching - mode: None, Read Only, Read Write.' - type: string - diskName: - description: diskName is the Name of the data - disk in the blob storage - type: string - diskURI: - description: diskURI is the URI of data disk - in the blob storage - type: string - fsType: - description: |- - fsType is Filesystem type to mount. - Must be a filesystem type supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - type: string - kind: - description: 'kind expected values are Shared: - multiple blob disks per storage account Dedicated: - single blob disk per storage account Managed: - azure managed data disk (only in managed availability - set). defaults to shared' - type: string - readOnly: - description: |- - readOnly Defaults to false (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. - type: boolean - required: - - diskName - - diskURI - type: object - azureFile: - description: azureFile represents an Azure File - Service mount on the host and bind mount to the - pod. - properties: - readOnly: - description: |- - readOnly defaults to false (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. - type: boolean - secretName: - description: secretName is the name of secret - that contains Azure Storage Account Name and - Key - type: string - shareName: - description: shareName is the azure share Name - type: string - required: - - secretName - - shareName - type: object - cephfs: - description: cephFS represents a Ceph FS mount on - the host that shares a pod's lifetime - properties: - monitors: - description: |- - monitors is Required: Monitors is a collection of Ceph monitors - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it - items: - type: string - type: array - path: - description: 'path is Optional: Used as the - mounted root, rather than the full Ceph tree, - default is /' - type: string - readOnly: - description: |- - readOnly is Optional: Defaults to false (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it - type: boolean - secretFile: - description: |- - secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it - type: string - secretRef: - description: |- - secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - user: - description: |- - user is optional: User is the rados user name, default is admin - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it - type: string - required: - - monitors - type: object - cinder: - description: |- - cinder represents a cinder volume attached and mounted on kubelets host machine. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md - properties: - fsType: - description: |- - fsType is the filesystem type to mount. - Must be a filesystem type supported by the host operating system. - Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md - type: string - readOnly: - description: |- - readOnly defaults to false (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md - type: boolean - secretRef: - description: |- - secretRef is optional: points to a secret object containing parameters used to connect - to OpenStack. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - volumeID: - description: |- - volumeID used to identify the volume in cinder. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md - type: string - required: - - volumeID - type: object - configMap: - description: configMap represents a configMap that - should populate this volume - properties: - defaultMode: - description: |- - defaultMode is optional: mode bits used to set permissions on created files by default. - Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. - YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. - Defaults to 0644. - Directories within the path are not affected by this setting. - This might be in conflict with other options that affect the file - mode, like fsGroup, and the result can be other mode bits set. - format: int32 - type: integer - items: - description: |- - items if unspecified, each key-value pair in the Data field of the referenced - ConfigMap will be projected into the volume as a file whose name is the - key and content is the value. If specified, the listed keys will be - projected into the specified paths, and unlisted keys will not be - present. If a key is specified which is not present in the ConfigMap, - the volume setup will error unless it is marked optional. Paths must be - relative and may not contain the '..' path or start with '..'. - items: - description: Maps a string key to a path within - a volume. - properties: - key: - description: key is the key to project. - type: string - mode: - description: |- - mode is Optional: mode bits used to set permissions on this file. - Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. - YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. - If not specified, the volume defaultMode will be used. - This might be in conflict with other options that affect the file - mode, like fsGroup, and the result can be other mode bits set. - format: int32 - type: integer - path: - description: |- - path is the relative path of the file to map the key to. - May not be an absolute path. - May not contain the path element '..'. - May not start with the string '..'. - type: string - required: - - key - - path - type: object - type: array - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: optional specify whether the ConfigMap - or its keys must be defined - type: boolean - type: object - x-kubernetes-map-type: atomic - csi: - description: csi (Container Storage Interface) represents - ephemeral storage that is handled by certain external - CSI drivers (Beta feature). - properties: - driver: - description: |- - driver is the name of the CSI driver that handles this volume. - Consult with your admin for the correct name as registered in the cluster. - type: string - fsType: - description: |- - fsType to mount. Ex. "ext4", "xfs", "ntfs". - If not provided, the empty value is passed to the associated CSI driver - which will determine the default filesystem to apply. - type: string - nodePublishSecretRef: - description: |- - nodePublishSecretRef is a reference to the secret object containing - sensitive information to pass to the CSI driver to complete the CSI - NodePublishVolume and NodeUnpublishVolume calls. - This field is optional, and may be empty if no secret is required. If the - secret object contains more than one secret, all secret references are passed. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - readOnly: - description: |- - readOnly specifies a read-only configuration for the volume. - Defaults to false (read/write). - type: boolean - volumeAttributes: - additionalProperties: - type: string - description: |- - volumeAttributes stores driver-specific properties that are passed to the CSI - driver. Consult your driver's documentation for supported values. - type: object - required: - - driver - type: object - downwardAPI: - description: downwardAPI represents downward API - about the pod that should populate this volume - properties: - defaultMode: - description: |- - Optional: mode bits to use on created files by default. Must be a - Optional: mode bits used to set permissions on created files by default. - Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. - YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. - Defaults to 0644. - Directories within the path are not affected by this setting. - This might be in conflict with other options that affect the file - mode, like fsGroup, and the result can be other mode bits set. - format: int32 - type: integer - items: - description: Items is a list of downward API - volume file - items: - description: DownwardAPIVolumeFile represents - information to create the file containing - the pod field - properties: - fieldRef: - description: 'Required: Selects a field - of the pod: only annotations, labels, - name and namespace are supported.' - properties: - apiVersion: - description: Version of the schema - the FieldPath is written in terms - of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to - select in the specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - mode: - description: |- - Optional: mode bits used to set permissions on this file, must be an octal value - between 0000 and 0777 or a decimal value between 0 and 511. - YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. - If not specified, the volume defaultMode will be used. - This might be in conflict with other options that affect the file - mode, like fsGroup, and the result can be other mode bits set. - format: int32 - type: integer - path: - description: 'Required: Path is the relative - path name of the file to be created. - Must not be absolute or contain the - ''..'' path. Must be utf-8 encoded. - The first item of the relative path - must not start with ''..''' - type: string - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported. - properties: - containerName: - description: 'Container name: required - for volumes, optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to - select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - required: - - path - type: object - type: array - type: object - emptyDir: - description: |- - emptyDir represents a temporary directory that shares a pod's lifetime. - More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir - properties: - medium: - description: |- - medium represents what type of storage medium should back this directory. - The default is "" which means to use the node's default medium. - Must be an empty string (default) or Memory. - More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir - type: string - sizeLimit: - anyOf: - - type: integer - - type: string - description: |- - sizeLimit is the total amount of local storage required for this EmptyDir volume. - The size limit is also applicable for memory medium. - The maximum usage on memory medium EmptyDir would be the minimum value between - the SizeLimit specified here and the sum of memory limits of all containers in a pod. - The default is nil which means that the limit is undefined. - More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - ephemeral: - description: |- - ephemeral represents a volume that is handled by a cluster storage driver. - The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, - and deleted when the pod is removed. - - - Use this if: - a) the volume is only needed while the pod runs, - b) features of normal volumes like restoring from snapshot or capacity - tracking are needed, - c) the storage driver is specified through a storage class, and - d) the storage driver supports dynamic volume provisioning through - a PersistentVolumeClaim (see EphemeralVolumeSource for more - information on the connection between this volume type - and PersistentVolumeClaim). - - - Use PersistentVolumeClaim or one of the vendor-specific - APIs for volumes that persist for longer than the lifecycle - of an individual pod. - - - Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to - be used that way - see the documentation of the driver for - more information. - - - A pod can use both types of ephemeral volumes and - persistent volumes at the same time. - properties: - volumeClaimTemplate: - description: |- - Will be used to create a stand-alone PVC to provision the volume. - The pod in which this EphemeralVolumeSource is embedded will be the - owner of the PVC, i.e. the PVC will be deleted together with the - pod. The name of the PVC will be `-` where - `` is the name from the `PodSpec.Volumes` array - entry. Pod validation will reject the pod if the concatenated name - is not valid for a PVC (for example, too long). - - - An existing PVC with that name that is not owned by the pod - will *not* be used for the pod to avoid using an unrelated - volume by mistake. Starting the pod is then blocked until - the unrelated PVC is removed. If such a pre-created PVC is - meant to be used by the pod, the PVC has to updated with an - owner reference to the pod once the pod exists. Normally - this should not be necessary, but it may be useful when - manually reconstructing a broken cluster. - - - This field is read-only and no changes will be made by Kubernetes - to the PVC after it has been created. - - - Required, must not be nil. - properties: - metadata: - description: |- - May contain labels and annotations that will be copied into the PVC - when creating it. No other fields are allowed and will be rejected during - validation. - type: object - spec: - description: |- - The specification for the PersistentVolumeClaim. The entire content is - copied unchanged into the PVC that gets created from this - template. The same fields as in a PersistentVolumeClaim - are also valid here. - properties: - accessModes: - description: |- - accessModes contains the desired access modes the volume should have. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 - items: - type: string - type: array - dataSource: - description: |- - dataSource field can be used to specify either: - * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external controller can support the specified data source, - it will create a new volume based on the contents of the specified data source. - When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, - and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. - If the namespace is specified, then dataSourceRef will not be copied to dataSource. - properties: - apiGroup: - description: |- - APIGroup is the group for the resource being referenced. - If APIGroup is not specified, the specified Kind must be in the core API group. - For any other third-party types, APIGroup is required. - type: string - kind: - description: Kind is the type of - resource being referenced - type: string - name: - description: Name is the name of - resource being referenced - type: string - required: - - kind - - name - type: object - x-kubernetes-map-type: atomic - dataSourceRef: - description: |- - dataSourceRef specifies the object from which to populate the volume with data, if a non-empty - volume is desired. This may be any object from a non-empty API group (non - core object) or a PersistentVolumeClaim object. - When this field is specified, volume binding will only succeed if the type of - the specified object matches some installed volume populator or dynamic - provisioner. - This field will replace the functionality of the dataSource field and as such - if both fields are non-empty, they must have the same value. For backwards - compatibility, when namespace isn't specified in dataSourceRef, - both fields (dataSource and dataSourceRef) will be set to the same - value automatically if one of them is empty and the other is non-empty. - When namespace is specified in dataSourceRef, - dataSource isn't set to the same value and must be empty. - There are three important differences between dataSource and dataSourceRef: - * While dataSource only allows two specific types of objects, dataSourceRef - allows any non-core object, as well as PersistentVolumeClaim objects. - * While dataSource ignores disallowed values (dropping them), dataSourceRef - preserves all values, and generates an error if a disallowed value is - specified. - * While dataSource only allows local objects, dataSourceRef allows objects - in any namespaces. - (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. - (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. - properties: - apiGroup: - description: |- - APIGroup is the group for the resource being referenced. - If APIGroup is not specified, the specified Kind must be in the core API group. - For any other third-party types, APIGroup is required. - type: string - kind: - description: Kind is the type of - resource being referenced - type: string - name: - description: Name is the name of - resource being referenced - type: string - namespace: - description: |- - Namespace is the namespace of resource being referenced - Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. - (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled. - type: string - required: - - kind - - name - type: object - resources: - description: |- - resources represents the minimum resources the volume should have. - If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements - that are lower than previous value but must still be higher than capacity recorded in the - status field of the claim. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: |- - Limits describes the maximum amount of compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: |- - Requests describes the minimum amount of compute resources required. - If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, - otherwise to an implementation-defined value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - type: object - selector: - description: selector is a label query - over volumes to consider for binding. - properties: - matchExpressions: - description: matchExpressions is - a list of label selector requirements. - The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label - key that the selector applies - to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: - description: |- - storageClassName is the name of the StorageClass required by the claim. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 - type: string - volumeAttributesClassName: - description: |- - volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. - If specified, the CSI driver will create or update the volume with the attributes defined - in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. - If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be - set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource - exists. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass - (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled. - type: string - volumeMode: - description: |- - volumeMode defines what type of volume is required by the claim. - Value of Filesystem is implied when not included in claim spec. - type: string - volumeName: - description: volumeName is the binding - reference to the PersistentVolume - backing this claim. - type: string - type: object - required: - - spec - type: object - type: object - fc: - description: fc represents a Fibre Channel resource - that is attached to a kubelet's host machine and - then exposed to the pod. - properties: - fsType: - description: |- - fsType is the filesystem type to mount. - Must be a filesystem type supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - TODO: how do we prevent errors in the filesystem from compromising the machine - type: string - lun: - description: 'lun is Optional: FC target lun - number' - format: int32 - type: integer - readOnly: - description: |- - readOnly is Optional: Defaults to false (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. - type: boolean - targetWWNs: - description: 'targetWWNs is Optional: FC target - worldwide names (WWNs)' - items: - type: string - type: array - wwids: - description: |- - wwids Optional: FC volume world wide identifiers (wwids) - Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. - items: - type: string - type: array - type: object - flexVolume: - description: |- - flexVolume represents a generic volume resource that is - provisioned/attached using an exec based plugin. - properties: - driver: - description: driver is the name of the driver - to use for this volume. - type: string - fsType: - description: |- - fsType is the filesystem type to mount. - Must be a filesystem type supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. - type: string - options: - additionalProperties: - type: string - description: 'options is Optional: this field - holds extra command options if any.' - type: object - readOnly: - description: |- - readOnly is Optional: defaults to false (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. - type: boolean - secretRef: - description: |- - secretRef is Optional: secretRef is reference to the secret object containing - sensitive information to pass to the plugin scripts. This may be - empty if no secret object is specified. If the secret object - contains more than one secret, all secrets are passed to the plugin - scripts. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - required: - - driver - type: object - flocker: - description: flocker represents a Flocker volume - attached to a kubelet's host machine. This depends - on the Flocker control service being running - properties: - datasetName: - description: |- - datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker - should be considered as deprecated - type: string - datasetUUID: - description: datasetUUID is the UUID of the - dataset. This is unique identifier of a Flocker - dataset - type: string - type: object - gcePersistentDisk: - description: |- - gcePersistentDisk represents a GCE Disk resource that is attached to a - kubelet's host machine and then exposed to the pod. - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - properties: - fsType: - description: |- - fsType is filesystem type of the volume that you want to mount. - Tip: Ensure that the filesystem type is supported by the host operating system. - Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem from compromising the machine - type: string - partition: - description: |- - partition is the partition in the volume that you want to mount. - If omitted, the default is to mount by volume name. - Examples: For volume /dev/sda1, you specify the partition as "1". - Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - format: int32 - type: integer - pdName: - description: |- - pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - type: string - readOnly: - description: |- - readOnly here will force the ReadOnly setting in VolumeMounts. - Defaults to false. - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - type: boolean - required: - - pdName - type: object - gitRepo: - description: |- - gitRepo represents a git repository at a particular revision. - DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an - EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir - into the Pod's container. - properties: - directory: - description: |- - directory is the target directory name. - Must not contain or start with '..'. If '.' is supplied, the volume directory will be the - git repository. Otherwise, if specified, the volume will contain the git repository in - the subdirectory with the given name. - type: string - repository: - description: repository is the URL - type: string - revision: - description: revision is the commit hash for - the specified revision. - type: string - required: - - repository - type: object - glusterfs: - description: |- - glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. - More info: https://examples.k8s.io/volumes/glusterfs/README.md - properties: - endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod - type: string - path: - description: |- - path is the Glusterfs volume path. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod - type: string - readOnly: - description: |- - readOnly here will force the Glusterfs volume to be mounted with read-only permissions. - Defaults to false. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod - type: boolean - required: - - endpoints - - path - type: object - hostPath: - description: |- - hostPath represents a pre-existing file or directory on the host - machine that is directly exposed to the container. This is generally - used for system agents or other privileged things that are allowed - to see the host machine. Most containers will NOT need this. - More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- - TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not - mount host directories as read/write. - properties: - path: - description: |- - path of the directory on the host. - If the path is a symlink, it will follow the link to the real path. - More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - type: string - type: - description: |- - type for HostPath Volume - Defaults to "" - More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - type: string - required: - - path - type: object - iscsi: - description: |- - iscsi represents an ISCSI Disk resource that is attached to a - kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md - properties: - chapAuthDiscovery: - description: chapAuthDiscovery defines whether - support iSCSI Discovery CHAP authentication - type: boolean - chapAuthSession: - description: chapAuthSession defines whether - support iSCSI Session CHAP authentication - type: boolean - fsType: - description: |- - fsType is the filesystem type of the volume that you want to mount. - Tip: Ensure that the filesystem type is supported by the host operating system. - Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem from compromising the machine - type: string - initiatorName: - description: |- - initiatorName is the custom iSCSI Initiator Name. - If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface - : will be created for the connection. - type: string - iqn: - description: iqn is the target iSCSI Qualified - Name. - type: string - iscsiInterface: - description: |- - iscsiInterface is the interface Name that uses an iSCSI transport. - Defaults to 'default' (tcp). - type: string - lun: - description: lun represents iSCSI Target Lun - number. - format: int32 - type: integer - portals: - description: |- - portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port - is other than default (typically TCP ports 860 and 3260). - items: - type: string - type: array - readOnly: - description: |- - readOnly here will force the ReadOnly setting in VolumeMounts. - Defaults to false. - type: boolean - secretRef: - description: secretRef is the CHAP Secret for - iSCSI target and initiator authentication - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - targetPortal: - description: |- - targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port - is other than default (typically TCP ports 860 and 3260). - type: string - required: - - iqn - - lun - - targetPortal - type: object - name: - description: |- - name of the volume. - Must be a DNS_LABEL and unique within the pod. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - nfs: - description: |- - nfs represents an NFS mount on the host that shares a pod's lifetime - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs - properties: - path: - description: |- - path that is exported by the NFS server. - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs - type: string - readOnly: - description: |- - readOnly here will force the NFS export to be mounted with read-only permissions. - Defaults to false. - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs - type: boolean - server: - description: |- - server is the hostname or IP address of the NFS server. - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs - type: string - required: - - path - - server - type: object - persistentVolumeClaim: - description: |- - persistentVolumeClaimVolumeSource represents a reference to a - PersistentVolumeClaim in the same namespace. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims - properties: - claimName: - description: |- - claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims - type: string - readOnly: - description: |- - readOnly Will force the ReadOnly setting in VolumeMounts. - Default false. - type: boolean - required: - - claimName - type: object - photonPersistentDisk: - description: photonPersistentDisk represents a PhotonController - persistent disk attached and mounted on kubelets - host machine - properties: - fsType: - description: |- - fsType is the filesystem type to mount. - Must be a filesystem type supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - type: string - pdID: - description: pdID is the ID that identifies - Photon Controller persistent disk - type: string - required: - - pdID - type: object - portworxVolume: - description: portworxVolume represents a portworx - volume attached and mounted on kubelets host machine - properties: - fsType: - description: |- - fSType represents the filesystem type to mount - Must be a filesystem type supported by the host operating system. - Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified. - type: string - readOnly: - description: |- - readOnly defaults to false (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. - type: boolean - volumeID: - description: volumeID uniquely identifies a - Portworx volume - type: string - required: - - volumeID - type: object - projected: - description: projected items for all in one resources - secrets, configmaps, and downward API - properties: - defaultMode: - description: |- - defaultMode are the mode bits used to set permissions on created files by default. - Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. - YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. - Directories within the path are not affected by this setting. - This might be in conflict with other options that affect the file - mode, like fsGroup, and the result can be other mode bits set. - format: int32 - type: integer - sources: - description: sources is the list of volume projections - items: - description: Projection that may be projected - along with other supported volume types - properties: - clusterTrustBundle: - description: |- - ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field - of ClusterTrustBundle objects in an auto-updating file. - - - Alpha, gated by the ClusterTrustBundleProjection feature gate. - - - ClusterTrustBundle objects can either be selected by name, or by the - combination of signer name and a label selector. - - - Kubelet performs aggressive normalization of the PEM contents written - into the pod filesystem. Esoteric PEM features such as inter-block - comments and block headers are stripped. Certificates are deduplicated. - The ordering of certificates within the file is arbitrary, and Kubelet - may change the order over time. - properties: - labelSelector: - description: |- - Select all ClusterTrustBundles that match this label selector. Only has - effect if signerName is set. Mutually-exclusive with name. If unset, - interpreted as "match nothing". If set but empty, interpreted as "match - everything". - properties: - matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the - label key that the selector - applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - name: - description: |- - Select a single ClusterTrustBundle by object name. Mutually-exclusive - with signerName and labelSelector. - type: string - optional: - description: |- - If true, don't block pod startup if the referenced ClusterTrustBundle(s) - aren't available. If using name, then the named ClusterTrustBundle is - allowed not to exist. If using signerName, then the combination of - signerName and labelSelector is allowed to match zero - ClusterTrustBundles. - type: boolean - path: - description: Relative path from the - volume root to write the bundle. - type: string - signerName: - description: |- - Select all ClusterTrustBundles that match this signer name. - Mutually-exclusive with name. The contents of all selected - ClusterTrustBundles will be unified and deduplicated. - type: string - required: - - path - type: object - configMap: - description: configMap information about - the configMap data to project - properties: - items: - description: |- - items if unspecified, each key-value pair in the Data field of the referenced - ConfigMap will be projected into the volume as a file whose name is the - key and content is the value. If specified, the listed keys will be - projected into the specified paths, and unlisted keys will not be - present. If a key is specified which is not present in the ConfigMap, - the volume setup will error unless it is marked optional. Paths must be - relative and may not contain the '..' path or start with '..'. - items: - description: Maps a string key to - a path within a volume. - properties: - key: - description: key is the key - to project. - type: string - mode: - description: |- - mode is Optional: mode bits used to set permissions on this file. - Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. - YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. - If not specified, the volume defaultMode will be used. - This might be in conflict with other options that affect the file - mode, like fsGroup, and the result can be other mode bits set. - format: int32 - type: integer - path: - description: |- - path is the relative path of the file to map the key to. - May not be an absolute path. - May not contain the path element '..'. - May not start with the string '..'. - type: string - required: - - key - - path - type: object - type: array - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: optional specify whether - the ConfigMap or its keys must be - defined - type: boolean - type: object - x-kubernetes-map-type: atomic - downwardAPI: - description: downwardAPI information about - the downwardAPI data to project - properties: - items: - description: Items is a list of DownwardAPIVolume - file - items: - description: DownwardAPIVolumeFile - represents information to create - the file containing the pod field - properties: - fieldRef: - description: 'Required: Selects - a field of the pod: only annotations, - labels, name and namespace - are supported.' - properties: - apiVersion: - description: Version of - the schema the FieldPath - is written in terms of, - defaults to "v1". - type: string - fieldPath: - description: Path of the - field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - mode: - description: |- - Optional: mode bits used to set permissions on this file, must be an octal value - between 0000 and 0777 or a decimal value between 0 and 511. - YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. - If not specified, the volume defaultMode will be used. - This might be in conflict with other options that affect the file - mode, like fsGroup, and the result can be other mode bits set. - format: int32 - type: integer - path: - description: 'Required: Path - is the relative path name - of the file to be created. - Must not be absolute or contain - the ''..'' path. Must be utf-8 - encoded. The first item of - the relative path must not - start with ''..''' - type: string - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported. - properties: - containerName: - description: 'Container - name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the - output format of the exposed - resources, defaults to - "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: - resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - required: - - path - type: object - type: array - type: object - secret: - description: secret information about - the secret data to project - properties: - items: - description: |- - items if unspecified, each key-value pair in the Data field of the referenced - Secret will be projected into the volume as a file whose name is the - key and content is the value. If specified, the listed keys will be - projected into the specified paths, and unlisted keys will not be - present. If a key is specified which is not present in the Secret, - the volume setup will error unless it is marked optional. Paths must be - relative and may not contain the '..' path or start with '..'. - items: - description: Maps a string key to - a path within a volume. - properties: - key: - description: key is the key - to project. - type: string - mode: - description: |- - mode is Optional: mode bits used to set permissions on this file. - Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. - YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. - If not specified, the volume defaultMode will be used. - This might be in conflict with other options that affect the file - mode, like fsGroup, and the result can be other mode bits set. - format: int32 - type: integer - path: - description: |- - path is the relative path of the file to map the key to. - May not be an absolute path. - May not contain the path element '..'. - May not start with the string '..'. - type: string - required: - - key - - path - type: object - type: array - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: optional field specify - whether the Secret or its key must - be defined - type: boolean - type: object - x-kubernetes-map-type: atomic - serviceAccountToken: - description: serviceAccountToken is information - about the serviceAccountToken data to - project - properties: - audience: - description: |- - audience is the intended audience of the token. A recipient of a token - must identify itself with an identifier specified in the audience of the - token, and otherwise should reject the token. The audience defaults to the - identifier of the apiserver. - type: string - expirationSeconds: - description: |- - expirationSeconds is the requested duration of validity of the service - account token. As the token approaches expiration, the kubelet volume - plugin will proactively rotate the service account token. The kubelet will - start trying to rotate the token if the token is older than 80 percent of - its time to live or if the token is older than 24 hours.Defaults to 1 hour - and must be at least 10 minutes. - format: int64 - type: integer - path: - description: |- - path is the path relative to the mount point of the file to project the - token into. - type: string - required: - - path - type: object - type: object - type: array - type: object - quobyte: - description: quobyte represents a Quobyte mount - on the host that shares a pod's lifetime - properties: - group: - description: |- - group to map volume access to - Default is no group - type: string - readOnly: - description: |- - readOnly here will force the Quobyte volume to be mounted with read-only permissions. - Defaults to false. - type: boolean - registry: - description: |- - registry represents a single or multiple Quobyte Registry services - specified as a string as host:port pair (multiple entries are separated with commas) - which acts as the central registry for volumes - type: string - tenant: - description: |- - tenant owning the given Quobyte volume in the Backend - Used with dynamically provisioned Quobyte volumes, value is set by the plugin - type: string - user: - description: |- - user to map volume access to - Defaults to serivceaccount user - type: string - volume: - description: volume is a string that references - an already created Quobyte volume by name. - type: string - required: - - registry - - volume - type: object - rbd: - description: |- - rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. - More info: https://examples.k8s.io/volumes/rbd/README.md - properties: - fsType: - description: |- - fsType is the filesystem type of the volume that you want to mount. - Tip: Ensure that the filesystem type is supported by the host operating system. - Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem from compromising the machine - type: string - image: - description: |- - image is the rados image name. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it - type: string - keyring: - description: |- - keyring is the path to key ring for RBDUser. - Default is /etc/ceph/keyring. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it - type: string - monitors: - description: |- - monitors is a collection of Ceph monitors. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it - items: - type: string - type: array - pool: - description: |- - pool is the rados pool name. - Default is rbd. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it - type: string - readOnly: - description: |- - readOnly here will force the ReadOnly setting in VolumeMounts. - Defaults to false. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it - type: boolean - secretRef: - description: |- - secretRef is name of the authentication secret for RBDUser. If provided - overrides keyring. - Default is nil. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - user: - description: |- - user is the rados user name. - Default is admin. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it - type: string - required: - - image - - monitors - type: object - scaleIO: - description: scaleIO represents a ScaleIO persistent - volume attached and mounted on Kubernetes nodes. - properties: - fsType: - description: |- - fsType is the filesystem type to mount. - Must be a filesystem type supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". - Default is "xfs". - type: string - gateway: - description: gateway is the host address of - the ScaleIO API Gateway. - type: string - protectionDomain: - description: protectionDomain is the name of - the ScaleIO Protection Domain for the configured - storage. - type: string - readOnly: - description: |- - readOnly Defaults to false (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. - type: boolean - secretRef: - description: |- - secretRef references to the secret for ScaleIO user and other - sensitive information. If this is not provided, Login operation will fail. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - sslEnabled: - description: sslEnabled Flag enable/disable - SSL communication with Gateway, default false - type: boolean - storageMode: - description: |- - storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. - Default is ThinProvisioned. - type: string - storagePool: - description: storagePool is the ScaleIO Storage - Pool associated with the protection domain. - type: string - system: - description: system is the name of the storage - system as configured in ScaleIO. - type: string - volumeName: - description: |- - volumeName is the name of a volume already created in the ScaleIO system - that is associated with this volume source. - type: string - required: - - gateway - - secretRef - - system - type: object - secret: - description: |- - secret represents a secret that should populate this volume. - More info: https://kubernetes.io/docs/concepts/storage/volumes#secret - properties: - defaultMode: - description: |- - defaultMode is Optional: mode bits used to set permissions on created files by default. - Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. - YAML accepts both octal and decimal values, JSON requires decimal values - for mode bits. Defaults to 0644. - Directories within the path are not affected by this setting. - This might be in conflict with other options that affect the file - mode, like fsGroup, and the result can be other mode bits set. - format: int32 - type: integer - items: - description: |- - items If unspecified, each key-value pair in the Data field of the referenced - Secret will be projected into the volume as a file whose name is the - key and content is the value. If specified, the listed keys will be - projected into the specified paths, and unlisted keys will not be - present. If a key is specified which is not present in the Secret, - the volume setup will error unless it is marked optional. Paths must be - relative and may not contain the '..' path or start with '..'. - items: - description: Maps a string key to a path within - a volume. - properties: - key: - description: key is the key to project. - type: string - mode: - description: |- - mode is Optional: mode bits used to set permissions on this file. - Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. - YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. - If not specified, the volume defaultMode will be used. - This might be in conflict with other options that affect the file - mode, like fsGroup, and the result can be other mode bits set. - format: int32 - type: integer - path: - description: |- - path is the relative path of the file to map the key to. - May not be an absolute path. - May not contain the path element '..'. - May not start with the string '..'. - type: string - required: - - key - - path - type: object - type: array - optional: - description: optional field specify whether - the Secret or its keys must be defined - type: boolean - secretName: - description: |- - secretName is the name of the secret in the pod's namespace to use. - More info: https://kubernetes.io/docs/concepts/storage/volumes#secret - type: string - type: object - storageos: - description: storageOS represents a StorageOS volume - attached and mounted on Kubernetes nodes. - properties: - fsType: - description: |- - fsType is the filesystem type to mount. - Must be a filesystem type supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - type: string - readOnly: - description: |- - readOnly defaults to false (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. - type: boolean - secretRef: - description: |- - secretRef specifies the secret to use for obtaining the StorageOS API - credentials. If not specified, default values will be attempted. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - volumeName: - description: |- - volumeName is the human-readable name of the StorageOS volume. Volume - names are only unique within a namespace. - type: string - volumeNamespace: - description: |- - volumeNamespace specifies the scope of the volume within StorageOS. If no - namespace is specified then the Pod's namespace will be used. This allows the - Kubernetes name scoping to be mirrored within StorageOS for tighter integration. - Set VolumeName to any name to override the default behaviour. - Set to "default" if you are not using namespaces within StorageOS. - Namespaces that do not pre-exist within StorageOS will be created. - type: string - type: object - vsphereVolume: - description: vsphereVolume represents a vSphere - volume attached and mounted on kubelets host machine - properties: - fsType: - description: |- - fsType is filesystem type to mount. - Must be a filesystem type supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - type: string - storagePolicyID: - description: storagePolicyID is the storage - Policy Based Management (SPBM) profile ID - associated with the StoragePolicyName. - type: string - storagePolicyName: - description: storagePolicyName is the storage - Policy Based Management (SPBM) profile name. - type: string - volumePath: - description: volumePath is the path that identifies - vSphere volume vmdk - type: string - required: - - volumePath - type: object - required: - - name - type: object - type: array - required: - - containers - type: object - type: object - traits: - description: the traits needed to run this Integration - properties: - 3scale: - description: 'Deprecated: for backward compatibility.' - properties: - configuration: - description: TraitConfiguration parameters configuration - type: object - x-kubernetes-preserve-unknown-fields: true - required: - - configuration - type: object - addons: - additionalProperties: - description: AddonTrait represents the configuration of - an addon trait. - type: object - x-kubernetes-preserve-unknown-fields: true - description: The extension point with addon traits - type: object - affinity: - description: The configuration of Affinity trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - nodeAffinityLabels: - description: Defines a set of nodes the integration pod(s) - are eligible to be scheduled on, based on labels on - the node. - items: - type: string - type: array - podAffinity: - description: Always co-locates multiple replicas of the - integration in the same node (default `false`). - type: boolean - podAffinityLabels: - 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. - items: - type: string - type: array - podAntiAffinity: - description: Never co-locates multiple replicas of the - integration in the same node (default `false`). - type: boolean - podAntiAffinityLabels: - 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. - items: - type: string - type: array - type: object - builder: - description: The configuration of Builder trait - properties: - annotations: - additionalProperties: - type: string - description: When using `pod` strategy, annotation to - use for the builder pod. - type: object - baseImage: - description: |- - Specify a base image. In order to have the application working properly it must be a container image which has a Java JDK - installed and ready to use on path (ie `/usr/bin/java`). - type: string - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: 'Deprecated: no longer in use.' - type: boolean - incrementalImageBuild: - description: Use the incremental image build option, to - reuse existing containers (default `true`) - type: boolean - limitCPU: - description: |- - When using `pod` strategy, the maximum amount of CPU required by the pod builder. - Deprecated: use TasksRequestCPU instead with task name `builder`. - type: string - limitMemory: - description: |- - When using `pod` strategy, the maximum amount of memory required by the pod builder. - Deprecated: use TasksRequestCPU instead with task name `builder`. - type: string - mavenProfiles: - description: |- - A list of references pointing to configmaps/secrets that contains a maven profile. - This configmap/secret is a resource of the IntegrationKit created, therefore it needs to be present in the namespace where the operator is going to create the IntegrationKit. - The content of the maven profile is expected to be a text containing a valid maven profile starting with `` and ending with `` that will be integrated as an inline profile in the POM. - Syntax: [configmap|secret]:name[/key], where name represents the resource name, key optionally represents the resource key to be filtered (default key value = profile.xml). - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: Defines a set of nodes the builder pod is - eligible to be scheduled on, based on labels on the - node. - type: object - orderStrategy: - description: The build order strategy to use, either `dependencies`, - `fifo` or `sequential` (default is the platform default) - enum: - - dependencies - - fifo - - sequential - type: string - platforms: - description: The list of manifest platforms to use to - build a container image (default `linux/amd64`). - items: - type: string - type: array - properties: - description: A list of properties to be provided to the - build task - items: - type: string - type: array - requestCPU: - description: |- - When using `pod` strategy, the minimum amount of CPU required by the pod builder. - Deprecated: use TasksRequestCPU instead with task name `builder`. - type: string - requestMemory: - description: |- - When using `pod` strategy, the minimum amount of memory required by the pod builder. - Deprecated: use TasksRequestCPU instead with task name `builder`. - type: string - strategy: - description: The strategy to use, either `pod` or `routine` - (default `routine`) - enum: - - pod - - routine - type: string - tasks: - description: A list of tasks to be executed (available - only when using `pod` strategy) with format `;;`. - items: - type: string - type: array - tasksFilter: - description: |- - A list of tasks sorted by the order of execution in a csv format, ie, `,,...`. - Mind that you must include also the operator tasks (`builder`, `quarkus-native`, `package`, `jib`, `s2i`) - if you need to execute them. Useful only with `pod` strategy. - type: string - tasksLimitCPU: - description: A list of limit cpu configuration for the - specific task with format `:`. - items: - type: string - type: array - tasksLimitMemory: - description: A list of limit memory configuration for - the specific task with format `:`. - items: - type: string - type: array - tasksRequestCPU: - description: A list of request cpu configuration for the - specific task with format `:`. - items: - type: string - type: array - tasksRequestMemory: - description: A list of request memory configuration for - the specific task with format `:`. - items: - type: string - type: array - verbose: - description: |- - Enable verbose logging on build components that support it (e.g. Kaniko build pod). - Deprecated no longer in use - type: boolean - type: object - camel: - description: The configuration of Camel trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: 'Deprecated: no longer in use.' - type: boolean - properties: - description: A list of properties to be provided to the - Integration runtime - items: - type: string - type: array - runtimeVersion: - description: |- - The camel-k-runtime version to use for the integration. It overrides the default version set in the Integration Platform. - You can use a fixed version (for example "3.2.3") or a semantic version (for example "3.x") which will try to resolve - to the best matching Catalog existing on the cluster. - type: string - type: object - container: - description: The configuration of Container trait - properties: - allowPrivilegeEscalation: - description: Security Context AllowPrivilegeEscalation - configuration (default false). - type: boolean - auto: - description: To automatically enable the trait - type: boolean - capabilitiesAdd: - description: Security Context Capabilities Add configuration - (default none). - items: - description: Capability represent POSIX capabilities - type - type: string - type: array - capabilitiesDrop: - description: Security Context Capabilities Drop configuration - (default ALL). - items: - description: Capability represent POSIX capabilities - type - type: string - type: array - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: 'Deprecated: no longer in use.' - type: boolean - expose: - description: Can be used to enable/disable exposure via - kubernetes Service. - type: boolean - image: - description: |- - The main container image to use for the Integration. When using this parameter the operator will create a synthetic IntegrationKit which - won't be able to execute traits requiring CamelCatalog. If the container image you're using is coming from an IntegrationKit, use instead - Integration `.spec.integrationKit` parameter. If you're moving the Integration across environments, you will also need to create an "external" IntegrationKit. - type: string - imagePullPolicy: - description: 'The pull policy: Always|Never|IfNotPresent' - enum: - - Always - - Never - - IfNotPresent - type: string - limitCPU: - description: The maximum amount of CPU to be provided - (default 500 millicores). - type: string - limitMemory: - description: The maximum amount of memory to be provided - (default 512 Mi). - type: string - name: - description: The main container name. It's named `integration` - by default. - type: string - port: - description: To configure a different port exposed by - the container (default `8080`). - format: int32 - type: integer - portName: - 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. - type: string - requestCPU: - description: The minimum amount of CPU required (default - 125 millicores). - type: string - requestMemory: - description: The minimum amount of memory required (default - 128 Mi). - type: string - runAsNonRoot: - description: Security Context RunAsNonRoot configuration - (default false). - type: boolean - runAsUser: - description: 'Security Context RunAsUser configuration - (default none): this value is automatically retrieved - in Openshift clusters when not explicitly set.' - format: int64 - type: integer - seccompProfileType: - description: Security Context SeccompProfileType configuration - (default RuntimeDefault). - enum: - - Unconfined - - RuntimeDefault - type: string - servicePort: - description: To configure under which service port the - container port is to be exposed (default `80`). - format: int32 - type: integer - servicePortName: - description: To configure under which service port name - the container port is to be exposed (default `http`). - type: string - type: object - cron: - description: The configuration of Cron trait - properties: - activeDeadlineSeconds: - 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. - format: int64 - type: integer - auto: - 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). - type: boolean - backoffLimit: - description: |- - Specifies the number of retries before marking the job failed. - It defaults to 2. - format: int32 - type: integer - components: - 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. - Supported components are currently: `cron`, `timer` and `quartz`. - type: string - concurrencyPolicy: - 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 - enum: - - Allow - - Forbid - - Replace - type: string - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - fallback: - description: |- - Use the default Camel implementation of the `cron` endpoint (`quartz`) instead of trying to materialize the integration - as Kubernetes CronJob. - type: boolean - schedule: - 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. - type: string - startingDeadlineSeconds: - 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. - format: int64 - type: integer - timeZone: - description: The timezone that the CronJob will run on - type: string - type: object - dependencies: - description: The configuration of Dependencies trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: 'Deprecated: no longer in use.' - type: boolean - type: object - deployer: - description: The configuration of Deployer trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: 'Deprecated: no longer in use.' - type: boolean - kind: - description: Allows to explicitly select the desired deployment - kind between `deployment`, `cron-job` or `knative-service` - when creating the resources for running the integration. - enum: - - deployment - - cron-job - - knative-service - type: string - useSSA: - description: |- - Deprecated: won't be able to enforce client side update in the future. - 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. - type: boolean - type: object - deployment: - description: The configuration of Deployment trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: 'Deprecated: no longer in use.' - type: boolean - progressDeadlineSeconds: - description: |- - The maximum time in seconds for the deployment to make progress before it - is considered to be failed. It defaults to `60s`. - format: int32 - type: integer - rollingUpdateMaxSurge: - anyOf: - - type: integer - - type: string - 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%`. - x-kubernetes-int-or-string: true - rollingUpdateMaxUnavailable: - anyOf: - - type: integer - - type: string - 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%`. - x-kubernetes-int-or-string: true - strategy: - description: The deployment strategy to use to replace - existing pods with new ones. - enum: - - Recreate - - RollingUpdate - type: string - type: object - environment: - description: The configuration of Environment trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - containerMeta: - description: Enables injection of `NAMESPACE` and `POD_NAME` - environment variables (default `true`) - type: boolean - enabled: - description: 'Deprecated: no longer in use.' - type: boolean - httpProxy: - description: Propagates the `HTTP_PROXY`, `HTTPS_PROXY` - and `NO_PROXY` environment variables (default `true`) - type: boolean - vars: - description: |- - A list of environment variables to be added to the integration container. - The syntax is either VAR=VALUE or VAR=[configmap|secret]:name/key, where name represents the resource name, - and key represents the resource key to be mapped as and environment variable. - These take precedence over any previously defined environment variables. - items: - type: string - type: array - type: object - error-handler: - description: The configuration of Error Handler trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: 'Deprecated: no longer in use.' - type: boolean - ref: - description: The error handler ref name provided or found - in application properties - type: string - type: object - gc: - description: The configuration of GC trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - discoveryCache: - description: |- - Discovery client cache to be used, either `disabled`, `disk` or `memory` (default `memory`). - Deprecated: to be removed from trait configuration. - enum: - - disabled - - disk - - memory - type: string - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - type: object - health: - description: The configuration of Health trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - livenessFailureThreshold: - description: Minimum consecutive failures for the liveness - probe to be considered failed after having succeeded. - format: int32 - type: integer - livenessInitialDelay: - description: Number of seconds after the container has - started before the liveness probe is initiated. - format: int32 - type: integer - livenessPeriod: - description: How often to perform the liveness probe. - format: int32 - type: integer - livenessProbe: - description: The liveness probe path to use (default provided - by the Catalog runtime used). - type: string - livenessProbeEnabled: - description: Configures the liveness probe for the integration - container (default `false`). - type: boolean - livenessScheme: - description: Scheme to use when connecting to the liveness - probe (default `HTTP`). - type: string - livenessSuccessThreshold: - description: Minimum consecutive successes for the liveness - probe to be considered successful after having failed. - format: int32 - type: integer - livenessTimeout: - description: Number of seconds after which the liveness - probe times out. - format: int32 - type: integer - readinessFailureThreshold: - description: Minimum consecutive failures for the readiness - probe to be considered failed after having succeeded. - format: int32 - type: integer - readinessInitialDelay: - description: Number of seconds after the container has - started before the readiness probe is initiated. - format: int32 - type: integer - readinessPeriod: - description: How often to perform the readiness probe. - format: int32 - type: integer - readinessProbe: - description: The readiness probe path to use (default - provided by the Catalog runtime used). - type: string - readinessProbeEnabled: - description: Configures the readiness probe for the integration - container (default `true`). - type: boolean - readinessScheme: - description: Scheme to use when connecting to the readiness - probe (default `HTTP`). - type: string - readinessSuccessThreshold: - description: Minimum consecutive successes for the readiness - probe to be considered successful after having failed. - format: int32 - type: integer - readinessTimeout: - description: Number of seconds after which the readiness - probe times out. - format: int32 - type: integer - startupFailureThreshold: - description: Minimum consecutive failures for the startup - probe to be considered failed after having succeeded. - format: int32 - type: integer - startupInitialDelay: - description: Number of seconds after the container has - started before the startup probe is initiated. - format: int32 - type: integer - startupPeriod: - description: How often to perform the startup probe. - format: int32 - type: integer - startupProbe: - description: The startup probe path to use (default provided - by the Catalog runtime used). - type: string - startupProbeEnabled: - description: Configures the startup probe for the integration - container (default `false`). - type: boolean - startupScheme: - description: Scheme to use when connecting to the startup - probe (default `HTTP`). - type: string - startupSuccessThreshold: - description: Minimum consecutive successes for the startup - probe to be considered successful after having failed. - format: int32 - type: integer - startupTimeout: - description: Number of seconds after which the startup - probe times out. - format: int32 - type: integer - type: object - ingress: - description: The configuration of Ingress trait - properties: - annotations: - additionalProperties: - type: 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 - type: object - auto: - description: To automatically add an ingress whenever - the integration uses an HTTP endpoint consumer. - type: boolean - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - host: - description: To configure the host exposed by the ingress. - type: string - ingressClassName: - description: |- - The Ingress class name as defined by the Ingress spec - See https://kubernetes.io/docs/concepts/services-networking/ingress/ - type: string - path: - description: To configure the path exposed by the ingress - (default `/`). - type: string - pathType: - description: |- - To configure the path type exposed by the ingress. - One of `Exact`, `Prefix`, `ImplementationSpecific` (default to `Prefix`). - enum: - - Exact - - Prefix - - ImplementationSpecific - type: string - tlsHosts: - description: To configure tls hosts - items: - type: string - type: array - tlsSecretName: - description: To configure tls secret name - type: string - type: object - istio: - description: The configuration of Istio trait - properties: - allow: - 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). - type: string - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - inject: - 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. - type: boolean - type: object - jolokia: - description: The configuration of Jolokia trait - properties: - CACert: - 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). - type: string - clientPrincipal: - 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). - items: - type: string - type: array - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - discoveryEnabled: - description: Listen for multicast requests (default `false`) - type: boolean - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - extendedClientCheck: - 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). - type: boolean - host: - 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 `"*"`). - type: string - options: - description: |- - A list of additional Jolokia options as defined - in https://jolokia.org/reference/html/agents.html#agent-jvm-config[JVM agent configuration options] - items: - type: string - type: array - password: - description: The password used for authentication, applicable - when the `user` option is set. - type: string - port: - description: The Jolokia endpoint port (default `8778`). - format: int32 - type: integer - protocol: - description: The protocol to use, either `http` or `https` - (default `https` for OpenShift) - type: string - useSSLClientAuthentication: - description: Whether client certificates should be used - for authentication (default `true` for OpenShift). - type: boolean - user: - description: The user to be used for authentication - type: string - type: object - jvm: - description: The configuration of JVM trait - properties: - classpath: - description: Additional JVM classpath (use `Linux` classpath - separator) - type: string - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - debug: - description: Activates remote debugging, so that a debugger - can be attached to the JVM, e.g., using port-forwarding - type: boolean - debugAddress: - description: Transport address at which to listen for - the newly launched JVM (default `*:5005`) - type: string - debugSuspend: - description: Suspends the target JVM immediately before - the main class is loaded - type: boolean - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - jar: - description: The Jar dependency which will run the application. - Leave it empty for managed Integrations. - type: string - options: - description: A list of JVM options - items: - type: string - type: array - printCommand: - description: |- - Prints the command used the start the JVM in the container logs (default `true`) - Deprecated: no longer in use. - type: boolean - type: object - kamelets: - description: The configuration of Kamelets trait - properties: - auto: - description: Automatically inject all referenced Kamelets - and their default configuration (enabled by default) - type: boolean - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - list: - description: Comma separated list of Kamelet names to - load into the current integration - type: string - mountPoint: - description: The directory where the application mounts - and reads Kamelet spec (default `/etc/camel/kamelets`) - type: string - type: object - keda: - description: 'Deprecated: for backward compatibility.' - properties: - configuration: - description: TraitConfiguration parameters configuration - type: object - x-kubernetes-preserve-unknown-fields: true - required: - - configuration - type: object - knative: - description: The configuration of Knative trait - properties: - auto: - description: Enable automatic discovery of all trait properties. - type: boolean - channelSinks: - description: |- - List of channels used as destination of integration routes. - Can contain simple channel names or full Camel URIs. - items: - type: string - type: array - channelSources: - description: |- - List of channels used as source of integration routes. - Can contain simple channel names or full Camel URIs. - items: - type: string - type: array - config: - description: Can be used to inject a Knative complete - configuration in JSON format. - type: string - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - endpointSinks: - description: |- - List of endpoints used as destination of integration routes. - Can contain simple endpoint names or full Camel URIs. - items: - type: string - type: array - endpointSources: - description: List of channels used as source of integration - routes. - items: - type: string - type: array - eventSinks: - description: |- - List of event types that the integration will produce. - Can contain simple event types or full Camel URIs (to use a specific broker). - items: - type: string - type: array - eventSources: - 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"). - items: - type: string - type: array - filterEventType: - description: |- - Enables the default filtering for the Knative trigger using the event type - If this is true, the created Knative trigger uses the event type as a filter on the event stream when no other filter criteria is given. (default: true) - type: boolean - filterSourceChannels: - 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. - type: boolean - filters: - description: |- - Sets filter attributes on the event stream (such as event type, source, subject and so on). - A list of key-value pairs that represent filter attributes and its values. - The syntax is KEY=VALUE, e.g., `source="my.source"`. - Filter attributes get set on the Knative trigger that is being created as part of this integration. - items: - type: string - type: array - namespaceLabel: - 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) - type: boolean - sinkBinding: - 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). - type: boolean - type: object - knative-service: - description: The configuration of Knative Service trait - properties: - annotations: - additionalProperties: - type: string - description: |- - The annotations added to route. - This can be used to set knative service specific annotations - CLI usage example: -t "knative-service.annotations.'haproxy.router.openshift.io/balance'=true" - type: object - auto: - description: |- - Automatically deploy the integration as Knative service when all conditions hold: - - - * Integration is using the Knative profile - * All routes are either starting from an HTTP based consumer or a passive consumer (e.g. `direct` is a passive consumer) - type: boolean - autoscalingMetric: - 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. - type: string - autoscalingTarget: - 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. - type: integer - class: - 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. - enum: - - kpa.autoscaling.knative.dev - - hpa.autoscaling.knative.dev - type: string - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - maxScale: - 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. - type: integer - minScale: - 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. - type: integer - rolloutDuration: - 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. - type: string - timeoutSeconds: - description: |- - The maximum duration in seconds that the request instance is allowed to respond to a request. - This field propagates to the integration pod's terminationGracePeriodSeconds - - - Refer to the Knative documentation for more information. - format: int64 - type: integer - visibility: - description: |- - Setting `cluster-local`, Knative service becomes a private service. - Specifically, this option applies the `networking.knative.dev/visibility` label to Knative service. - - - Refer to the Knative documentation for more information. - enum: - - cluster-local - type: string - type: object - logging: - description: The configuration of Logging trait - properties: - color: - description: Colorize the log output - type: boolean - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - format: - description: Logs message format - type: string - json: - description: Output the logs in JSON - type: boolean - jsonPrettyPrint: - description: Enable "pretty printing" of the JSON logs - type: boolean - level: - description: Adjust the logging level (defaults to `INFO`) - enum: - - FATAL - - WARN - - INFO - - DEBUG - - TRACE - type: string - type: object - master: - description: 'Deprecated: for backward compatibility.' - properties: - configuration: - description: TraitConfiguration parameters configuration - type: object - x-kubernetes-preserve-unknown-fields: true - required: - - configuration - type: object - mount: - description: The configuration of Mount trait - properties: - configs: - description: |- - A list of configuration pointing to configmap/secret. - The configuration are expected to be UTF-8 resources as they are processed by runtime Camel Context and tried to be parsed as property files. - They are also made available on the classpath in order to ease their usage directly from the Route. - Syntax: [configmap|secret]:name[/key], where name represents the resource name and key optionally represents the resource key to be filtered - items: - type: string - type: array - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - emptyDirs: - description: |- - A list of EmptyDir volumes to be mounted. An optional size limit may be configured (default 500Mi). - Syntax: name:/container/path[:sizeLimit] - items: - type: string - type: array - enabled: - description: 'Deprecated: no longer in use.' - type: boolean - hotReload: - description: |- - Enable "hot reload" when a secret/configmap mounted is edited (default `false`). The configmap/secret must be - marked with `camel.apache.org/integration` label to be taken in account. The resource will be watched for any kind change, also for - changes in metadata. - type: boolean - resources: - description: |- - A list of resources (text or binary content) pointing to configmap/secret. - The resources are expected to be any resource type (text or binary content). - The destination path can be either a default location or any path specified by the user. - Syntax: [configmap|secret]:name[/key][@path], where name represents the resource name, key optionally represents the resource key to be filtered and path represents the destination path - items: - type: string - type: array - scanKameletsImplicitLabelSecrets: - description: 'Deprecated: no longer available since version - 2.5.' - type: boolean - volumes: - description: |- - A list of Persistent Volume Claims to be mounted. Syntax: [pvcname:/container/path]. If the PVC is not found, the Integration fails. - You can use the syntax [pvcname:/container/path:size:accessMode<:storageClass>] to create a dynamic PVC based on the Storage Class provided - or the default cluster Storage Class. However, if the PVC exists, the operator would mount it. - items: - type: string - type: array - type: object - openapi: - description: The configuration of OpenAPI trait - properties: - configmaps: - description: The configmaps holding the spec of the OpenAPI - (compatible with > 3.0 spec only). - items: - type: string - type: array - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: 'Deprecated: no longer in use.' - type: boolean - type: object - owner: - description: The configuration of Owner trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - targetAnnotations: - description: The set of annotations to be transferred - items: - type: string - type: array - targetLabels: - description: The set of labels to be transferred - items: - type: string - type: array - type: object - pdb: - description: The configuration of PDB trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - maxUnavailable: - description: |- - The number of pods for the Integration that can be unavailable after an eviction. - It can be either an absolute number or a percentage (default `1` if `min-available` is also not set). - Only one of `max-unavailable` and `min-available` can be specified. - type: string - minAvailable: - description: |- - The number of pods for the Integration that must still be available after an eviction. - It can be either an absolute number or a percentage. - Only one of `min-available` and `max-unavailable` can be specified. - type: string - type: object - platform: - description: The configuration of Platform trait - properties: - auto: - description: |- - To automatically detect from the environment if a default platform can be created (it will be created on OpenShift or when a registry address is set). - Deprecated: Platform is auto generated by the operator install procedure - maintained for backward compatibility - type: boolean - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - createDefault: - description: |- - To create a default (empty) platform when the platform is missing. - Deprecated: Platform is auto generated by the operator install procedure - maintained for backward compatibility - type: boolean - enabled: - description: 'Deprecated: no longer in use.' - type: boolean - global: - description: |- - Indicates if the platform should be created globally in the case of global operator (default true). - Deprecated: Platform is auto generated by the operator install procedure - maintained for backward compatibility - type: boolean - type: object - pod: - description: The configuration of Pod trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - type: object - prometheus: - description: The configuration of Prometheus trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - podMonitor: - description: Whether a `PodMonitor` resource is created - (default `true`). - type: boolean - podMonitorLabels: - description: The `PodMonitor` resource labels, applicable - when `pod-monitor` is `true`. - items: - type: string - type: array - type: object - pull-secret: - description: The configuration of Pull Secret trait - properties: - auto: - description: Automatically configures the platform registry - secret on the pod if it is of type `kubernetes.io/dockerconfigjson`. - type: boolean - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - imagePullerDelegation: - description: When using a global operator with a shared - platform, this enables delegation of the `system:image-puller` - cluster role on the operator namespace to the integration - service account. - type: boolean - secretName: - description: The pull secret name to set on the Pod. If - left empty this is automatically taken from the `IntegrationPlatform` - registry configuration. - type: string - type: object - quarkus: - description: The configuration of Quarkus trait - properties: - buildMode: - description: |- - The Quarkus mode to run: either `jvm` or `native` (default `jvm`). - In case both `jvm` and `native` are specified, two `IntegrationKit` resources are created, - with the `native` kit having precedence over the `jvm` one once ready. - items: - description: QuarkusMode is the type of Quarkus build - packaging. - enum: - - jvm - - native - type: string - type: array - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: 'Deprecated: no longer in use.' - type: boolean - nativeBaseImage: - description: The base image to use when running a native - build (default `quay.io/quarkus/quarkus-micro-image:2.0`) - type: string - nativeBuilderImage: - description: The image containing the tooling required - for a native build (by default it will use the one provided - in the runtime catalog) - type: string - packageTypes: - description: |- - The Quarkus package types, `fast-jar` or `native` (default `fast-jar`). - In case both `fast-jar` and `native` are specified, two `IntegrationKit` resources are created, - with the native kit having precedence over the `fast-jar` one once ready. - The order influences the resolution of the current kit for the integration. - The kit corresponding to the first package type will be assigned to the - integration in case no existing kit that matches the integration exists. - Deprecated: use `build-mode` instead. - items: - description: |- - QuarkusPackageType is the type of Quarkus build packaging. - Deprecated: use `QuarkusMode` instead. - enum: - - fast-jar - - native - type: string - type: array - type: object - registry: - description: |- - The configuration of Registry trait (support removed since version 2.5.0). - Deprecated: use jvm trait or read documentation. - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - type: object - route: - description: The configuration of Route trait - properties: - annotations: - additionalProperties: - type: string - description: |- - The annotations added to route. - This can be used to set route specific annotations - For annotations options see https://docs.openshift.com/container-platform/3.11/architecture/networking/routes.html#route-specific-annotations - CLI usage example: -t "route.annotations.'haproxy.router.openshift.io/balance'=true" - type: object - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - host: - description: To configure the host exposed by the route. - type: string - tlsCACertificate: - description: |- - The TLS CA certificate contents. - - - Refer to the OpenShift route documentation for additional information. - type: string - tlsCACertificateSecret: - description: |- - The secret name and key reference to the TLS CA certificate. The format is "secret-name[/key-name]", the value represents the secret name, if there is only one key in the secret it will be read, otherwise you can set a key name separated with a "/". - - - Refer to the OpenShift route documentation for additional information. - type: string - tlsCertificate: - description: |- - The TLS certificate contents. - - - Refer to the OpenShift route documentation for additional information. - type: string - tlsCertificateSecret: - description: |- - The secret name and key reference to the TLS certificate. The format is "secret-name[/key-name]", the value represents the secret name, if there is only one key in the secret it will be read, otherwise you can set a key name separated with a "/". - - - Refer to the OpenShift route documentation for additional information. - type: string - tlsDestinationCACertificate: - description: |- - The destination CA certificate provides the contents of the ca certificate of the final destination. When using reencrypt - termination this file should be provided in order to have routers use it for health checks on the secure connection. - If this field is not specified, the router may provide its own destination CA and perform hostname validation using - the short service name (service.namespace.svc), which allows infrastructure generated certificates to automatically - verify. - - - Refer to the OpenShift route documentation for additional information. - type: string - tlsDestinationCACertificateSecret: - description: |- - The secret name and key reference to the destination CA certificate. The format is "secret-name[/key-name]", the value represents the secret name, if there is only one key in the secret it will be read, otherwise you can set a key name separated with a "/". - - - Refer to the OpenShift route documentation for additional information. - type: string - tlsInsecureEdgeTerminationPolicy: - 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. - enum: - - None - - Allow - - Redirect - type: string - tlsKey: - description: |- - The TLS certificate key contents. - - - Refer to the OpenShift route documentation for additional information. - type: string - tlsKeySecret: - description: |- - The secret name and key reference to the TLS certificate key. The format is "secret-name[/key-name]", the value represents the secret name, if there is only one key in the secret it will be read, otherwise you can set a key name separated with a "/". - - - Refer to the OpenShift route documentation for additional information. - type: string - tlsTermination: - description: |- - The TLS termination type, like `edge`, `passthrough` or `reencrypt`. - - - Refer to the OpenShift route documentation for additional information. - enum: - - edge - - reencrypt - - passthrough - type: string - type: object - security-context: - description: The configuration of Security Context trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: 'Deprecated: no longer in use.' - type: boolean - runAsNonRoot: - description: Security Context RunAsNonRoot configuration - (default false). - type: boolean - runAsUser: - description: 'Security Context RunAsUser configuration - (default none): this value is automatically retrieved - in Openshift clusters when not explicitly set.' - format: int64 - type: integer - seccompProfileType: - description: Security Context SeccompProfileType configuration - (default RuntimeDefault). - enum: - - Unconfined - - RuntimeDefault - type: string - type: object - service: - description: The configuration of Service trait - properties: - annotations: - additionalProperties: - type: string - description: The annotations added to the Service object. - type: object - auto: - description: To automatically detect from the code if - a Service needs to be created. - type: boolean - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - labels: - additionalProperties: - type: string - description: The labels added to the Service object. - type: object - nodePort: - description: |- - Enable Service to be exposed as NodePort (default `false`). - Deprecated: Use service type instead. - type: boolean - type: - description: The type of service to be used, either 'ClusterIP', - 'NodePort' or 'LoadBalancer'. - enum: - - ClusterIP - - NodePort - - LoadBalancer - type: string - type: object - service-binding: - description: The configuration of Service Binding trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - services: - description: List of Services in the form [[apigroup/]version:]kind:[namespace/]name - items: - type: string - type: array - type: object - strimzi: - description: 'Deprecated: for backward compatibility.' - properties: - configuration: - description: TraitConfiguration parameters configuration - type: object - x-kubernetes-preserve-unknown-fields: true - required: - - configuration - type: object - telemetry: - description: The configuration of Telemetry trait - properties: - auto: - description: Enables automatic configuration of the trait, - including automatic discovery of the telemetry endpoint. - type: boolean - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - endpoint: - description: The target endpoint of the Telemetry service - (automatically discovered by default) - type: string - sampler: - description: The sampler of the telemetry used for tracing - (default "on") - type: string - sampler-parent-based: - description: The sampler of the telemetry used for tracing - is parent based (default "true") - type: boolean - sampler-ratio: - description: The sampler ratio of the telemetry used for - tracing - type: string - serviceName: - description: The name of the service that publishes telemetry - data (defaults to the integration name) - type: string - type: object - toleration: - description: The configuration of Toleration trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - taints: - description: The list of taints to tolerate, in the form - `Key[=Value]:Effect[:Seconds]` - items: - type: string - type: array - type: object - tracing: - description: 'Deprecated: for backward compatibility.' - properties: - configuration: - description: TraitConfiguration parameters configuration - type: object - x-kubernetes-preserve-unknown-fields: true - required: - - configuration - type: object - type: object - type: object - replicas: - description: Replicas is the number of desired replicas for the binding - format: int32 - type: integer - serviceAccountName: - description: Custom SA to use for the binding - type: string - sink: - description: Sink is the destination of the integration defined by - this binding - properties: - dataTypes: - additionalProperties: - description: DataTypeReference references to the specification - of a data type by its scheme and format name. - properties: - format: - description: the data type format name - type: string - scheme: - description: the data type component scheme - type: string - type: object - description: DataTypes defines the data type of the data produced/consumed - by the endpoint and references a given data type specification. - type: object - properties: - description: Properties are a key value representation of endpoint - properties - type: object - x-kubernetes-preserve-unknown-fields: true - ref: - description: Ref can be used to declare a Kubernetes resource - as source/sink endpoint - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: |- - If referring to a piece of an object instead of an entire object, this string - should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within a pod, this would take on a value like: - "spec.containers{name}" (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" (container with - index 2 in this pod). This syntax is chosen only to have some well-defined way of - referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. - type: string - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - namespace: - description: |- - Namespace of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - type: string - resourceVersion: - description: |- - Specific resourceVersion to which this reference is made, if any. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - type: string - uid: - description: |- - UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - type: string - type: object - x-kubernetes-map-type: atomic - types: - additionalProperties: - description: |- - EventTypeSpec represents a specification for an event type. - Deprecated: In favor of using DataTypeSpec. - properties: - mediaType: - description: media type as expected for HTTP media types - (ie, application/json) - type: string - schema: - description: the expected schema for the event - properties: - $schema: - description: JSONSchemaURL represents a schema url. - type: string - description: - type: string - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - externalDocs: - description: ExternalDocumentation allows referencing - an external resource for extended documentation. - properties: - description: - type: string - url: - type: string - type: object - id: - type: string - properties: - additionalProperties: - properties: - default: - description: default is a default value for undefined - object fields. - x-kubernetes-preserve-unknown-fields: true - deprecated: - type: boolean - description: - type: string - enum: - items: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - type: array - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - exclusiveMaximum: - type: boolean - exclusiveMinimum: - type: boolean - format: - description: |- - format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: - - - - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - - uri: an URI as parsed by Golang net/url.ParseRequestURI - - email: an email address as parsed by Golang net/mail.ParseAddress - - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - - cidr: a CIDR as parsed by Golang net.ParseCIDR - - mac: a MAC address as parsed by Golang net.ParseMAC - - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - - isbn10: an ISBN10 number string like "0321751043" - - isbn13: an ISBN13 number string like "978-0321751041" - - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - - hexcolor: an hexadecimal color code like "#FFFFFF" following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - - rgbcolor: an RGB color code like rgb like "rgb(255,255,255)" - - byte: base64 encoded binary data - - password: any kind of string - - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. - type: string - id: - type: string - maxItems: - format: int64 - type: integer - maxLength: - format: int64 - type: integer - maxProperties: - format: int64 - type: integer - maximum: - description: A Number represents a JSON number - literal. - type: string - minItems: - format: int64 - type: integer - minLength: - format: int64 - type: integer - minProperties: - format: int64 - type: integer - minimum: - description: A Number represents a JSON number - literal. - type: string - multipleOf: - description: A Number represents a JSON number - literal. - type: string - nullable: - type: boolean - pattern: - type: string - title: - type: string - type: - type: string - uniqueItems: - type: boolean - x-descriptors: - description: XDescriptors is a list of extended - properties that trigger a custom behavior in - external systems - items: - type: string - type: array - type: object - type: object - required: - items: - type: string - type: array - title: - type: string - type: - type: string - type: object - type: object - description: |- - Types defines the data type of the data produced/consumed by the endpoint and references a given data type specification. - Deprecated: In favor of using DataTypes - type: object - uri: - description: URI can be used to specify the (Camel) endpoint explicitly - type: string - type: object - source: - description: Source is the starting point of the integration defined - by this binding - properties: - dataTypes: - additionalProperties: - description: DataTypeReference references to the specification - of a data type by its scheme and format name. - properties: - format: - description: the data type format name - type: string - scheme: - description: the data type component scheme - type: string - type: object - description: DataTypes defines the data type of the data produced/consumed - by the endpoint and references a given data type specification. - type: object - properties: - description: Properties are a key value representation of endpoint - properties - type: object - x-kubernetes-preserve-unknown-fields: true - ref: - description: Ref can be used to declare a Kubernetes resource - as source/sink endpoint - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: |- - If referring to a piece of an object instead of an entire object, this string - should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within a pod, this would take on a value like: - "spec.containers{name}" (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" (container with - index 2 in this pod). This syntax is chosen only to have some well-defined way of - referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. - type: string - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - namespace: - description: |- - Namespace of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - type: string - resourceVersion: - description: |- - Specific resourceVersion to which this reference is made, if any. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - type: string - uid: - description: |- - UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - type: string - type: object - x-kubernetes-map-type: atomic - types: - additionalProperties: - description: |- - EventTypeSpec represents a specification for an event type. - Deprecated: In favor of using DataTypeSpec. - properties: - mediaType: - description: media type as expected for HTTP media types - (ie, application/json) - type: string - schema: - description: the expected schema for the event - properties: - $schema: - description: JSONSchemaURL represents a schema url. - type: string - description: - type: string - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - externalDocs: - description: ExternalDocumentation allows referencing - an external resource for extended documentation. - properties: - description: - type: string - url: - type: string - type: object - id: - type: string - properties: - additionalProperties: - properties: - default: - description: default is a default value for undefined - object fields. - x-kubernetes-preserve-unknown-fields: true - deprecated: - type: boolean - description: - type: string - enum: - items: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - type: array - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - exclusiveMaximum: - type: boolean - exclusiveMinimum: - type: boolean - format: - description: |- - format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: - - - - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - - uri: an URI as parsed by Golang net/url.ParseRequestURI - - email: an email address as parsed by Golang net/mail.ParseAddress - - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - - cidr: a CIDR as parsed by Golang net.ParseCIDR - - mac: a MAC address as parsed by Golang net.ParseMAC - - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - - isbn10: an ISBN10 number string like "0321751043" - - isbn13: an ISBN13 number string like "978-0321751041" - - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - - hexcolor: an hexadecimal color code like "#FFFFFF" following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - - rgbcolor: an RGB color code like rgb like "rgb(255,255,255)" - - byte: base64 encoded binary data - - password: any kind of string - - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. - type: string - id: - type: string - maxItems: - format: int64 - type: integer - maxLength: - format: int64 - type: integer - maxProperties: - format: int64 - type: integer - maximum: - description: A Number represents a JSON number - literal. - type: string - minItems: - format: int64 - type: integer - minLength: - format: int64 - type: integer - minProperties: - format: int64 - type: integer - minimum: - description: A Number represents a JSON number - literal. - type: string - multipleOf: - description: A Number represents a JSON number - literal. - type: string - nullable: - type: boolean - pattern: - type: string - title: - type: string - type: - type: string - uniqueItems: - type: boolean - x-descriptors: - description: XDescriptors is a list of extended - properties that trigger a custom behavior in - external systems - items: - type: string - type: array - type: object - type: object - required: - items: - type: string - type: array - title: - type: string - type: - type: string - type: object - type: object - description: |- - Types defines the data type of the data produced/consumed by the endpoint and references a given data type specification. - Deprecated: In favor of using DataTypes - type: object - uri: - description: URI can be used to specify the (Camel) endpoint explicitly - type: string - type: object - steps: - description: Steps contains an optional list of intermediate steps - that are executed between the Source and the Sink - items: - description: Endpoint represents a source/sink external entity (could - be any Kubernetes resource or Camel URI). - properties: - dataTypes: - additionalProperties: - description: DataTypeReference references to the specification - of a data type by its scheme and format name. - properties: - format: - description: the data type format name - type: string - scheme: - description: the data type component scheme - type: string - type: object - description: DataTypes defines the data type of the data produced/consumed - by the endpoint and references a given data type specification. - type: object - properties: - description: Properties are a key value representation of endpoint - properties - type: object - x-kubernetes-preserve-unknown-fields: true - ref: - description: Ref can be used to declare a Kubernetes resource - as source/sink endpoint - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: |- - If referring to a piece of an object instead of an entire object, this string - should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within a pod, this would take on a value like: - "spec.containers{name}" (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" (container with - index 2 in this pod). This syntax is chosen only to have some well-defined way of - referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. - type: string - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - namespace: - description: |- - Namespace of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - type: string - resourceVersion: - description: |- - Specific resourceVersion to which this reference is made, if any. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - type: string - uid: - description: |- - UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - type: string - type: object - x-kubernetes-map-type: atomic - types: - additionalProperties: - description: |- - EventTypeSpec represents a specification for an event type. - Deprecated: In favor of using DataTypeSpec. - properties: - mediaType: - description: media type as expected for HTTP media types - (ie, application/json) - type: string - schema: - description: the expected schema for the event - properties: - $schema: - description: JSONSchemaURL represents a schema url. - type: string - description: - type: string - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - externalDocs: - description: ExternalDocumentation allows referencing - an external resource for extended documentation. - properties: - description: - type: string - url: - type: string - type: object - id: - type: string - properties: - additionalProperties: - properties: - default: - description: default is a default value for - undefined object fields. - x-kubernetes-preserve-unknown-fields: true - deprecated: - type: boolean - description: - type: string - enum: - items: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - type: array - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - exclusiveMaximum: - type: boolean - exclusiveMinimum: - type: boolean - format: - description: |- - format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: - - - - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - - uri: an URI as parsed by Golang net/url.ParseRequestURI - - email: an email address as parsed by Golang net/mail.ParseAddress - - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - - cidr: a CIDR as parsed by Golang net.ParseCIDR - - mac: a MAC address as parsed by Golang net.ParseMAC - - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - - isbn10: an ISBN10 number string like "0321751043" - - isbn13: an ISBN13 number string like "978-0321751041" - - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - - hexcolor: an hexadecimal color code like "#FFFFFF" following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - - rgbcolor: an RGB color code like rgb like "rgb(255,255,255)" - - byte: base64 encoded binary data - - password: any kind of string - - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. - type: string - id: - type: string - maxItems: - format: int64 - type: integer - maxLength: - format: int64 - type: integer - maxProperties: - format: int64 - type: integer - maximum: - description: A Number represents a JSON number - literal. - type: string - minItems: - format: int64 - type: integer - minLength: - format: int64 - type: integer - minProperties: - format: int64 - type: integer - minimum: - description: A Number represents a JSON number - literal. - type: string - multipleOf: - description: A Number represents a JSON number - literal. - type: string - nullable: - type: boolean - pattern: - type: string - title: - type: string - type: - type: string - uniqueItems: - type: boolean - x-descriptors: - description: XDescriptors is a list of extended - properties that trigger a custom behavior - in external systems - items: - type: string - type: array - type: object - type: object - required: - items: - type: string - type: array - title: - type: string - type: - type: string - type: object - type: object - description: |- - Types defines the data type of the data produced/consumed by the endpoint and references a given data type specification. - Deprecated: In favor of using DataTypes - type: object - uri: - description: URI can be used to specify the (Camel) endpoint - explicitly - type: string - type: object - type: array - type: object - status: - description: the status of a KameletBinding - properties: - conditions: - description: Conditions -- - items: - description: KameletBindingCondition describes the state of a resource - at a certain point. - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - format: date-time - type: string - lastUpdateTime: - description: The last time this condition was updated. - format: date-time - type: string - message: - description: A human readable message indicating details about - the transition. - type: string - pods: - description: Pods collect health and conditions information - from the owned PODs - items: - properties: - condition: - description: PodCondition contains details for the current - condition of this pod. - properties: - lastProbeTime: - description: Last time we probed the condition. - format: date-time - type: string - lastTransitionTime: - description: Last time the condition transitioned - from one status to another. - format: date-time - type: string - message: - description: Human-readable message indicating details - about last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for - the condition's last transition. - type: string - status: - description: |- - Status is the status of the condition. - Can be True, False, Unknown. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions - type: string - type: - description: |- - Type is the type of the condition. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions - type: string - required: - - status - - type - type: object - health: - items: - properties: - data: - description: |- - RawMessage is a raw encoded JSON value. - It implements Marshaler and Unmarshaler and can - be used to delay JSON decoding or precompute a JSON encoding. - x-kubernetes-preserve-unknown-fields: true - name: - type: string - status: - type: string - type: object - type: array - name: - type: string - required: - - condition - type: object - type: array - reason: - description: The reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of kameletBinding condition. - type: string - required: - - status - - type - type: object - type: array - observedGeneration: - description: ObservedGeneration is the most recent generation observed - for this KameletBinding. - format: int64 - type: integer - phase: - description: Phase -- - type: string - replicas: - description: Replicas is the number of actual replicas of the binding - format: int32 - type: integer - selector: - description: Selector allows to identify pods belonging to the binding - type: string - type: object - type: object - served: true - storage: true - subresources: - scale: - labelSelectorPath: .status.selector - specReplicasPath: .spec.replicas - statusReplicasPath: .status.replicas - status: {} ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.15.0 - labels: - app: camel-k - name: kamelets.camel.apache.org -spec: - group: camel.apache.org - names: - categories: - - kamel - - camel - kind: Kamelet - listKind: KameletList - plural: kamelets - shortNames: - - kl - singular: kamelet - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The Kamelet type - jsonPath: .metadata.labels.camel\.apache\.org\/kamelet\.type - name: Type - type: string - - description: The Kamelet provider - jsonPath: .metadata.annotations.camel\.apache\.org\/provider - name: Provider - type: string - - description: The Kamelet bundled - jsonPath: .metadata.labels.camel\.apache\.org\/kamelet\.bundled - name: Bundled - type: string - - description: The Camel compatible version - jsonPath: .metadata.annotations.camel\.apache\.org\/catalog\.version - name: Camel Version - type: string - name: v1 - schema: - openAPIV3Schema: - description: Kamelet is the Schema for the kamelets API. - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: the desired specification - properties: - dataTypes: - additionalProperties: - description: DataTypesSpec represents the specification for a set - of data types. - properties: - default: - description: the default data type for this Kamelet - type: string - headers: - additionalProperties: - description: HeaderSpec represents the specification for a - header used in the Kamelet. - properties: - default: - type: string - description: - type: string - required: - type: boolean - title: - type: string - type: - type: string - type: object - description: one to many header specifications - type: object - types: - additionalProperties: - description: DataTypeSpec represents the specification for - a data type. - properties: - dependencies: - description: the list of Camel or Maven dependencies required - by the data type - items: - type: string - type: array - description: - description: optional description - type: string - format: - description: the data type format name - type: string - headers: - additionalProperties: - description: HeaderSpec represents the specification - for a header used in the Kamelet. - properties: - default: - type: string - description: - type: string - required: - type: boolean - title: - type: string - type: - type: string - type: object - description: one to many header specifications - type: object - mediaType: - description: media type as expected for HTTP media types - (ie, application/json) - type: string - schema: - description: the expected schema for the data type - properties: - $schema: - description: JSONSchemaURL represents a schema url. - type: string - description: - type: string - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - externalDocs: - description: ExternalDocumentation allows referencing - an external resource for extended documentation. - properties: - description: - type: string - url: - type: string - type: object - id: - type: string - properties: - additionalProperties: - properties: - default: - description: default is a default value for - undefined object fields. - x-kubernetes-preserve-unknown-fields: true - deprecated: - type: boolean - description: - type: string - enum: - items: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - type: array - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - exclusiveMaximum: - type: boolean - exclusiveMinimum: - type: boolean - format: - description: |- - format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: - - - - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - - uri: an URI as parsed by Golang net/url.ParseRequestURI - - email: an email address as parsed by Golang net/mail.ParseAddress - - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - - cidr: a CIDR as parsed by Golang net.ParseCIDR - - mac: a MAC address as parsed by Golang net.ParseMAC - - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - - isbn10: an ISBN10 number string like "0321751043" - - isbn13: an ISBN13 number string like "978-0321751041" - - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - - hexcolor: an hexadecimal color code like "#FFFFFF" following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - - rgbcolor: an RGB color code like rgb like "rgb(255,255,255)" - - byte: base64 encoded binary data - - password: any kind of string - - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. - type: string - id: - type: string - maxItems: - format: int64 - type: integer - maxLength: - format: int64 - type: integer - maxProperties: - format: int64 - type: integer - maximum: - description: A Number represents a JSON number - literal. - type: string - minItems: - format: int64 - type: integer - minLength: - format: int64 - type: integer - minProperties: - format: int64 - type: integer - minimum: - description: A Number represents a JSON number - literal. - type: string - multipleOf: - description: A Number represents a JSON number - literal. - type: string - nullable: - type: boolean - pattern: - type: string - title: - type: string - type: - type: string - uniqueItems: - type: boolean - x-descriptors: - description: XDescriptors is a list of extended - properties that trigger a custom behavior - in external systems - items: - type: string - type: array - type: object - type: object - required: - items: - type: string - type: array - title: - type: string - type: - type: string - type: object - scheme: - description: the data type component scheme - type: string - type: object - description: one to many data type specifications - type: object - type: object - description: data specification types for the events consumed/produced - by the Kamelet - type: object - definition: - description: defines the formal configuration of the Kamelet - properties: - $schema: - description: JSONSchemaURL represents a schema url. - type: string - description: - type: string - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - externalDocs: - description: ExternalDocumentation allows referencing an external - resource for extended documentation. - properties: - description: - type: string - url: - type: string - type: object - id: - type: string - properties: - additionalProperties: - properties: - default: - description: default is a default value for undefined object - fields. - x-kubernetes-preserve-unknown-fields: true - deprecated: - type: boolean - description: - type: string - enum: - items: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - type: array - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - exclusiveMaximum: - type: boolean - exclusiveMinimum: - type: boolean - format: - description: |- - format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: - - - - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - - uri: an URI as parsed by Golang net/url.ParseRequestURI - - email: an email address as parsed by Golang net/mail.ParseAddress - - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - - cidr: a CIDR as parsed by Golang net.ParseCIDR - - mac: a MAC address as parsed by Golang net.ParseMAC - - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - - isbn10: an ISBN10 number string like "0321751043" - - isbn13: an ISBN13 number string like "978-0321751041" - - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - - hexcolor: an hexadecimal color code like "#FFFFFF" following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - - rgbcolor: an RGB color code like rgb like "rgb(255,255,255)" - - byte: base64 encoded binary data - - password: any kind of string - - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. - type: string - id: - type: string - maxItems: - format: int64 - type: integer - maxLength: - format: int64 - type: integer - maxProperties: - format: int64 - type: integer - maximum: - description: A Number represents a JSON number literal. - type: string - minItems: - format: int64 - type: integer - minLength: - format: int64 - type: integer - minProperties: - format: int64 - type: integer - minimum: - description: A Number represents a JSON number literal. - type: string - multipleOf: - description: A Number represents a JSON number literal. - type: string - nullable: - type: boolean - pattern: - type: string - title: - type: string - type: - type: string - uniqueItems: - type: boolean - x-descriptors: - description: XDescriptors is a list of extended properties - that trigger a custom behavior in external systems - items: - type: string - type: array - type: object - type: object - required: - items: - type: string - type: array - title: - type: string - type: - type: string - type: object - dependencies: - description: Camel dependencies needed by the Kamelet - items: - type: string - type: array - sources: - description: sources in any Camel DSL supported - items: - description: SourceSpec defines the configuration for one or more - routes to be executed in a certain Camel DSL language. - properties: - compression: - description: if the content is compressed (base64 encrypted) - type: boolean - content: - description: the source code (plain text) - type: string - contentKey: - description: the confimap key holding the source content - type: string - contentRef: - description: the confimap reference holding the source content - type: string - contentType: - description: the content type (tipically text or binary) - type: string - from-kamelet: - description: True if the spec is generated from a Kamelet - type: boolean - interceptors: - description: |- - Interceptors are optional identifiers the org.apache.camel.k.RoutesLoader - uses to pre/post process sources - Deprecated: no longer in use. - items: - type: string - type: array - language: - description: specify which is the language (Camel DSL) used - to interpret this source code - type: string - loader: - description: |- - Loader is an optional id of the org.apache.camel.k.RoutesLoader that will - interpret this source at runtime - type: string - name: - description: the name of the specification - type: string - path: - description: the path where the file is stored - type: string - property-names: - description: List of property names defined in the source (e.g. - if type is "template") - items: - type: string - type: array - rawContent: - description: the source code (binary) - format: byte - type: string - type: - description: Type defines the kind of source described by this - object - type: string - type: object - type: array - template: - description: the main source in YAML DSL - type: object - x-kubernetes-preserve-unknown-fields: true - types: - additionalProperties: - description: |- - EventTypeSpec represents a specification for an event type. - Deprecated: In favor of using DataTypeSpec. - properties: - mediaType: - description: media type as expected for HTTP media types (ie, - application/json) - type: string - schema: - description: the expected schema for the event - properties: - $schema: - description: JSONSchemaURL represents a schema url. - type: string - description: - type: string - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - externalDocs: - description: ExternalDocumentation allows referencing an - external resource for extended documentation. - properties: - description: - type: string - url: - type: string - type: object - id: - type: string - properties: - additionalProperties: - properties: - default: - description: default is a default value for undefined - object fields. - x-kubernetes-preserve-unknown-fields: true - deprecated: - type: boolean - description: - type: string - enum: - items: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - type: array - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - exclusiveMaximum: - type: boolean - exclusiveMinimum: - type: boolean - format: - description: |- - format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: - - - - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - - uri: an URI as parsed by Golang net/url.ParseRequestURI - - email: an email address as parsed by Golang net/mail.ParseAddress - - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - - cidr: a CIDR as parsed by Golang net.ParseCIDR - - mac: a MAC address as parsed by Golang net.ParseMAC - - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - - isbn10: an ISBN10 number string like "0321751043" - - isbn13: an ISBN13 number string like "978-0321751041" - - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - - hexcolor: an hexadecimal color code like "#FFFFFF" following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - - rgbcolor: an RGB color code like rgb like "rgb(255,255,255)" - - byte: base64 encoded binary data - - password: any kind of string - - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. - type: string - id: - type: string - maxItems: - format: int64 - type: integer - maxLength: - format: int64 - type: integer - maxProperties: - format: int64 - type: integer - maximum: - description: A Number represents a JSON number literal. - type: string - minItems: - format: int64 - type: integer - minLength: - format: int64 - type: integer - minProperties: - format: int64 - type: integer - minimum: - description: A Number represents a JSON number literal. - type: string - multipleOf: - description: A Number represents a JSON number literal. - type: string - nullable: - type: boolean - pattern: - type: string - title: - type: string - type: - type: string - uniqueItems: - type: boolean - x-descriptors: - description: XDescriptors is a list of extended properties - that trigger a custom behavior in external systems - items: - type: string - type: array - type: object - type: object - required: - items: - type: string - type: array - title: - type: string - type: - type: string - type: object - type: object - description: |- - data specification types for the events consumed/produced by the Kamelet - Deprecated: In favor of using DataTypes - type: object - versions: - additionalProperties: - description: KameletSpecBase specifies the base configuration of - a Kamelet. - properties: - dataTypes: - additionalProperties: - description: DataTypesSpec represents the specification for - a set of data types. - properties: - default: - description: the default data type for this Kamelet - type: string - headers: - additionalProperties: - description: HeaderSpec represents the specification - for a header used in the Kamelet. - properties: - default: - type: string - description: - type: string - required: - type: boolean - title: - type: string - type: - type: string - type: object - description: one to many header specifications - type: object - types: - additionalProperties: - description: DataTypeSpec represents the specification - for a data type. - properties: - dependencies: - description: the list of Camel or Maven dependencies - required by the data type - items: - type: string - type: array - description: - description: optional description - type: string - format: - description: the data type format name - type: string - headers: - additionalProperties: - description: HeaderSpec represents the specification - for a header used in the Kamelet. - properties: - default: - type: string - description: - type: string - required: - type: boolean - title: - type: string - type: - type: string - type: object - description: one to many header specifications - type: object - mediaType: - description: media type as expected for HTTP media - types (ie, application/json) - type: string - schema: - description: the expected schema for the data type - properties: - $schema: - description: JSONSchemaURL represents a schema - url. - type: string - description: - type: string - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - externalDocs: - description: ExternalDocumentation allows referencing - an external resource for extended documentation. - properties: - description: - type: string - url: - type: string - type: object - id: - type: string - properties: - additionalProperties: - properties: - default: - description: default is a default value - for undefined object fields. - x-kubernetes-preserve-unknown-fields: true - deprecated: - type: boolean - description: - type: string - enum: - items: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - type: array - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - exclusiveMaximum: - type: boolean - exclusiveMinimum: - type: boolean - format: - description: |- - format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: - - - - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - - uri: an URI as parsed by Golang net/url.ParseRequestURI - - email: an email address as parsed by Golang net/mail.ParseAddress - - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - - cidr: a CIDR as parsed by Golang net.ParseCIDR - - mac: a MAC address as parsed by Golang net.ParseMAC - - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - - isbn10: an ISBN10 number string like "0321751043" - - isbn13: an ISBN13 number string like "978-0321751041" - - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - - hexcolor: an hexadecimal color code like "#FFFFFF" following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - - rgbcolor: an RGB color code like rgb like "rgb(255,255,255)" - - byte: base64 encoded binary data - - password: any kind of string - - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. - type: string - id: - type: string - maxItems: - format: int64 - type: integer - maxLength: - format: int64 - type: integer - maxProperties: - format: int64 - type: integer - maximum: - description: A Number represents a JSON - number literal. - type: string - minItems: - format: int64 - type: integer - minLength: - format: int64 - type: integer - minProperties: - format: int64 - type: integer - minimum: - description: A Number represents a JSON - number literal. - type: string - multipleOf: - description: A Number represents a JSON - number literal. - type: string - nullable: - type: boolean - pattern: - type: string - title: - type: string - type: - type: string - uniqueItems: - type: boolean - x-descriptors: - description: XDescriptors is a list of - extended properties that trigger a custom - behavior in external systems - items: - type: string - type: array - type: object - type: object - required: - items: - type: string - type: array - title: - type: string - type: - type: string - type: object - scheme: - description: the data type component scheme - type: string - type: object - description: one to many data type specifications - type: object - type: object - description: data specification types for the events consumed/produced - by the Kamelet - type: object - definition: - description: defines the formal configuration of the Kamelet - properties: - $schema: - description: JSONSchemaURL represents a schema url. - type: string - description: - type: string - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - externalDocs: - description: ExternalDocumentation allows referencing an - external resource for extended documentation. - properties: - description: - type: string - url: - type: string - type: object - id: - type: string - properties: - additionalProperties: - properties: - default: - description: default is a default value for undefined - object fields. - x-kubernetes-preserve-unknown-fields: true - deprecated: - type: boolean - description: - type: string - enum: - items: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - type: array - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - exclusiveMaximum: - type: boolean - exclusiveMinimum: - type: boolean - format: - description: |- - format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: - - - - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - - uri: an URI as parsed by Golang net/url.ParseRequestURI - - email: an email address as parsed by Golang net/mail.ParseAddress - - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - - cidr: a CIDR as parsed by Golang net.ParseCIDR - - mac: a MAC address as parsed by Golang net.ParseMAC - - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - - isbn10: an ISBN10 number string like "0321751043" - - isbn13: an ISBN13 number string like "978-0321751041" - - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - - hexcolor: an hexadecimal color code like "#FFFFFF" following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - - rgbcolor: an RGB color code like rgb like "rgb(255,255,255)" - - byte: base64 encoded binary data - - password: any kind of string - - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. - type: string - id: - type: string - maxItems: - format: int64 - type: integer - maxLength: - format: int64 - type: integer - maxProperties: - format: int64 - type: integer - maximum: - description: A Number represents a JSON number literal. - type: string - minItems: - format: int64 - type: integer - minLength: - format: int64 - type: integer - minProperties: - format: int64 - type: integer - minimum: - description: A Number represents a JSON number literal. - type: string - multipleOf: - description: A Number represents a JSON number literal. - type: string - nullable: - type: boolean - pattern: - type: string - title: - type: string - type: - type: string - uniqueItems: - type: boolean - x-descriptors: - description: XDescriptors is a list of extended properties - that trigger a custom behavior in external systems - items: - type: string - type: array - type: object - type: object - required: - items: - type: string - type: array - title: - type: string - type: - type: string - type: object - dependencies: - description: Camel dependencies needed by the Kamelet - items: - type: string - type: array - sources: - description: sources in any Camel DSL supported - items: - description: SourceSpec defines the configuration for one - or more routes to be executed in a certain Camel DSL language. - properties: - compression: - description: if the content is compressed (base64 encrypted) - type: boolean - content: - description: the source code (plain text) - type: string - contentKey: - description: the confimap key holding the source content - type: string - contentRef: - description: the confimap reference holding the source - content - type: string - contentType: - description: the content type (tipically text or binary) - type: string - from-kamelet: - description: True if the spec is generated from a Kamelet - type: boolean - interceptors: - description: |- - Interceptors are optional identifiers the org.apache.camel.k.RoutesLoader - uses to pre/post process sources - Deprecated: no longer in use. - items: - type: string - type: array - language: - description: specify which is the language (Camel DSL) - used to interpret this source code - type: string - loader: - description: |- - Loader is an optional id of the org.apache.camel.k.RoutesLoader that will - interpret this source at runtime - type: string - name: - description: the name of the specification - type: string - path: - description: the path where the file is stored - type: string - property-names: - description: List of property names defined in the source - (e.g. if type is "template") - items: - type: string - type: array - rawContent: - description: the source code (binary) - format: byte - type: string - type: - description: Type defines the kind of source described - by this object - type: string - type: object - type: array - template: - description: the main source in YAML DSL - type: object - x-kubernetes-preserve-unknown-fields: true - types: - additionalProperties: - description: |- - EventTypeSpec represents a specification for an event type. - Deprecated: In favor of using DataTypeSpec. - properties: - mediaType: - description: media type as expected for HTTP media types - (ie, application/json) - type: string - schema: - description: the expected schema for the event - properties: - $schema: - description: JSONSchemaURL represents a schema url. - type: string - description: - type: string - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - externalDocs: - description: ExternalDocumentation allows referencing - an external resource for extended documentation. - properties: - description: - type: string - url: - type: string - type: object - id: - type: string - properties: - additionalProperties: - properties: - default: - description: default is a default value for - undefined object fields. - x-kubernetes-preserve-unknown-fields: true - deprecated: - type: boolean - description: - type: string - enum: - items: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - type: array - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - exclusiveMaximum: - type: boolean - exclusiveMinimum: - type: boolean - format: - description: |- - format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: - - - - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - - uri: an URI as parsed by Golang net/url.ParseRequestURI - - email: an email address as parsed by Golang net/mail.ParseAddress - - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - - cidr: a CIDR as parsed by Golang net.ParseCIDR - - mac: a MAC address as parsed by Golang net.ParseMAC - - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - - isbn10: an ISBN10 number string like "0321751043" - - isbn13: an ISBN13 number string like "978-0321751041" - - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - - hexcolor: an hexadecimal color code like "#FFFFFF" following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - - rgbcolor: an RGB color code like rgb like "rgb(255,255,255)" - - byte: base64 encoded binary data - - password: any kind of string - - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. - type: string - id: - type: string - maxItems: - format: int64 - type: integer - maxLength: - format: int64 - type: integer - maxProperties: - format: int64 - type: integer - maximum: - description: A Number represents a JSON number - literal. - type: string - minItems: - format: int64 - type: integer - minLength: - format: int64 - type: integer - minProperties: - format: int64 - type: integer - minimum: - description: A Number represents a JSON number - literal. - type: string - multipleOf: - description: A Number represents a JSON number - literal. - type: string - nullable: - type: boolean - pattern: - type: string - title: - type: string - type: - type: string - uniqueItems: - type: boolean - x-descriptors: - description: XDescriptors is a list of extended - properties that trigger a custom behavior - in external systems - items: - type: string - type: array - type: object - type: object - required: - items: - type: string - type: array - title: - type: string - type: - type: string - type: object - type: object - description: |- - data specification types for the events consumed/produced by the Kamelet - Deprecated: In favor of using DataTypes - type: object - type: object - description: |- - the optional versions available for this Kamelet. This field may not be taken in account by Camel core and is meant to support - any user defined versioning model on cluster only. If the user wants to use any given version, she must materialize a file with the given version spec - as the `main` Kamelet spec on the runtime. - type: object - type: object - status: - default: - phase: Ready - description: |- - the actual status of the resource - Deprecated no longer in use - properties: - conditions: - description: Conditions -- - items: - description: KameletCondition describes the state of a resource - at a certain point. - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - format: date-time - type: string - lastUpdateTime: - description: The last time this condition was updated. - format: date-time - type: string - message: - description: A human-readable message indicating details about - the transition. - type: string - reason: - description: The reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of kamelet condition. - type: string - required: - - status - - type - type: object - type: array - observedGeneration: - description: ObservedGeneration is the most recent generation observed - for this Kamelet. - format: int64 - type: integer - phase: - description: Phase -- - type: string - properties: - description: Properties -- - items: - description: KameletProperty specify the behavior of a property - in a Kamelet. - properties: - default: - description: the default value of the property (if any) - type: string - name: - description: the name of the property - type: string - type: object - type: array - type: object - type: object - served: true - storage: true - subresources: - status: {} - - additionalPrinterColumns: - - description: The Kamelet phase - jsonPath: .status.phase - name: Phase - type: string - deprecated: true - deprecationWarning: v1apha1.Kamelet is deprecated, please, use v1.Kamelet instead - name: v1alpha1 - schema: - openAPIV3Schema: - description: Kamelet is the Schema for the kamelets API. - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: the desired specification. - properties: - dataTypes: - additionalProperties: - description: DataTypesSpec represents the specification for a set - of data types. - properties: - default: - description: the default data type for this Kamelet - type: string - headers: - additionalProperties: - description: HeaderSpec represents the specification for a - header used in the Kamelet. - properties: - default: - type: string - description: - type: string - required: - type: boolean - title: - type: string - type: - type: string - type: object - description: one to many header specifications - type: object - types: - additionalProperties: - description: DataTypeSpec represents the specification for - a data type. - properties: - dependencies: - description: the list of Camel or Maven dependencies required - by the data type - items: - type: string - type: array - description: - description: optional description - type: string - format: - description: the data type format name - type: string - headers: - additionalProperties: - description: HeaderSpec represents the specification - for a header used in the Kamelet. + type: string + type: array + description: + description: optional description + type: string + format: + description: the data type format name + type: string + headers: + additionalProperties: + description: HeaderSpec represents the specification + for a header used in the Kamelet. properties: default: type: string @@ -32396,23 +22161,387 @@ spec: object type: string type: object - type: array - template: - description: the main source in YAML DSL + type: array + template: + description: the main source in YAML DSL + type: object + x-kubernetes-preserve-unknown-fields: true + types: + additionalProperties: + description: |- + EventTypeSpec represents a specification for an event type. + Deprecated: In favor of using DataTypeSpec. + properties: + mediaType: + description: media type as expected for HTTP media types (ie, + application/json) + type: string + schema: + description: the expected schema for the event + properties: + $schema: + description: JSONSchemaURL represents a schema url. + type: string + description: + type: string + example: + description: |- + JSON represents any valid JSON value. + These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. + x-kubernetes-preserve-unknown-fields: true + externalDocs: + description: ExternalDocumentation allows referencing an + external resource for extended documentation. + properties: + description: + type: string + url: + type: string + type: object + id: + type: string + properties: + additionalProperties: + properties: + default: + description: default is a default value for undefined + object fields. + x-kubernetes-preserve-unknown-fields: true + deprecated: + type: boolean + description: + type: string + enum: + items: + description: |- + JSON represents any valid JSON value. + These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. + x-kubernetes-preserve-unknown-fields: true + type: array + example: + description: |- + JSON represents any valid JSON value. + These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. + x-kubernetes-preserve-unknown-fields: true + exclusiveMaximum: + type: boolean + exclusiveMinimum: + type: boolean + format: + description: |- + format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: + + + - bsonobjectid: a bson object ID, i.e. a 24 characters hex string + - uri: an URI as parsed by Golang net/url.ParseRequestURI + - email: an email address as parsed by Golang net/mail.ParseAddress + - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. + - ipv4: an IPv4 IP as parsed by Golang net.ParseIP + - ipv6: an IPv6 IP as parsed by Golang net.ParseIP + - cidr: a CIDR as parsed by Golang net.ParseCIDR + - mac: a MAC address as parsed by Golang net.ParseMAC + - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ + - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ + - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ + - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ + - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" + - isbn10: an ISBN10 number string like "0321751043" + - isbn13: an ISBN13 number string like "978-0321751041" + - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in + - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ + - hexcolor: an hexadecimal color code like "#FFFFFF" following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ + - rgbcolor: an RGB color code like rgb like "rgb(255,255,255)" + - byte: base64 encoded binary data + - password: any kind of string + - date: a date string like "2006-01-02" as defined by full-date in RFC3339 + - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format + - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + type: string + id: + type: string + maxItems: + format: int64 + type: integer + maxLength: + format: int64 + type: integer + maxProperties: + format: int64 + type: integer + maximum: + description: A Number represents a JSON number literal. + type: string + minItems: + format: int64 + type: integer + minLength: + format: int64 + type: integer + minProperties: + format: int64 + type: integer + minimum: + description: A Number represents a JSON number literal. + type: string + multipleOf: + description: A Number represents a JSON number literal. + type: string + nullable: + type: boolean + pattern: + type: string + title: + type: string + type: + type: string + uniqueItems: + type: boolean + x-descriptors: + description: XDescriptors is a list of extended properties + that trigger a custom behavior in external systems + items: + type: string + type: array + type: object + type: object + required: + items: + type: string + type: array + title: + type: string + type: + type: string + type: object + type: object + description: |- + data specification types for the events consumed/produced by the Kamelet + Deprecated: In favor of using DataTypes type: object - x-kubernetes-preserve-unknown-fields: true - types: + versions: additionalProperties: - description: |- - EventTypeSpec represents a specification for an event type. - Deprecated: In favor of using DataTypeSpec. + description: KameletSpecBase specifies the base configuration of + a Kamelet. properties: - mediaType: - description: media type as expected for HTTP media types (ie, - application/json) - type: string - schema: - description: the expected schema for the event + dataTypes: + additionalProperties: + description: DataTypesSpec represents the specification for + a set of data types. + properties: + default: + description: the default data type for this Kamelet + type: string + headers: + additionalProperties: + description: HeaderSpec represents the specification + for a header used in the Kamelet. + properties: + default: + type: string + description: + type: string + required: + type: boolean + title: + type: string + type: + type: string + type: object + description: one to many header specifications + type: object + types: + additionalProperties: + description: DataTypeSpec represents the specification + for a data type. + properties: + dependencies: + description: the list of Camel or Maven dependencies + required by the data type + items: + type: string + type: array + description: + description: optional description + type: string + format: + description: the data type format name + type: string + headers: + additionalProperties: + description: HeaderSpec represents the specification + for a header used in the Kamelet. + properties: + default: + type: string + description: + type: string + required: + type: boolean + title: + type: string + type: + type: string + type: object + description: one to many header specifications + type: object + mediaType: + description: media type as expected for HTTP media + types (ie, application/json) + type: string + schema: + description: the expected schema for the data type + properties: + $schema: + description: JSONSchemaURL represents a schema + url. + type: string + description: + type: string + example: + description: |- + JSON represents any valid JSON value. + These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. + x-kubernetes-preserve-unknown-fields: true + externalDocs: + description: ExternalDocumentation allows referencing + an external resource for extended documentation. + properties: + description: + type: string + url: + type: string + type: object + id: + type: string + properties: + additionalProperties: + properties: + default: + description: default is a default value + for undefined object fields. + x-kubernetes-preserve-unknown-fields: true + deprecated: + type: boolean + description: + type: string + enum: + items: + description: |- + JSON represents any valid JSON value. + These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. + x-kubernetes-preserve-unknown-fields: true + type: array + example: + description: |- + JSON represents any valid JSON value. + These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. + x-kubernetes-preserve-unknown-fields: true + exclusiveMaximum: + type: boolean + exclusiveMinimum: + type: boolean + format: + description: |- + format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: + + + - bsonobjectid: a bson object ID, i.e. a 24 characters hex string + - uri: an URI as parsed by Golang net/url.ParseRequestURI + - email: an email address as parsed by Golang net/mail.ParseAddress + - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. + - ipv4: an IPv4 IP as parsed by Golang net.ParseIP + - ipv6: an IPv6 IP as parsed by Golang net.ParseIP + - cidr: a CIDR as parsed by Golang net.ParseCIDR + - mac: a MAC address as parsed by Golang net.ParseMAC + - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ + - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ + - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ + - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ + - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" + - isbn10: an ISBN10 number string like "0321751043" + - isbn13: an ISBN13 number string like "978-0321751041" + - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in + - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ + - hexcolor: an hexadecimal color code like "#FFFFFF" following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ + - rgbcolor: an RGB color code like rgb like "rgb(255,255,255)" + - byte: base64 encoded binary data + - password: any kind of string + - date: a date string like "2006-01-02" as defined by full-date in RFC3339 + - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format + - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + type: string + id: + type: string + maxItems: + format: int64 + type: integer + maxLength: + format: int64 + type: integer + maxProperties: + format: int64 + type: integer + maximum: + description: A Number represents a JSON + number literal. + type: string + minItems: + format: int64 + type: integer + minLength: + format: int64 + type: integer + minProperties: + format: int64 + type: integer + minimum: + description: A Number represents a JSON + number literal. + type: string + multipleOf: + description: A Number represents a JSON + number literal. + type: string + nullable: + type: boolean + pattern: + type: string + title: + type: string + type: + type: string + uniqueItems: + type: boolean + x-descriptors: + description: XDescriptors is a list of + extended properties that trigger a custom + behavior in external systems + items: + type: string + type: array + type: object + type: object + required: + items: + type: string + type: array + title: + type: string + type: + type: string + type: object + scheme: + description: the data type component scheme + type: string + type: object + description: one to many data type specifications + type: object + type: object + description: data specification types for the events consumed/produced + by the Kamelet + type: object + definition: + description: defines the formal configuration of the Kamelet properties: $schema: description: JSONSchemaURL represents a schema url. @@ -32548,14 +22677,248 @@ spec: type: type: string type: object + dependencies: + description: Camel dependencies needed by the Kamelet + items: + type: string + type: array + sources: + description: sources in any Camel DSL supported + items: + description: SourceSpec defines the configuration for one + or more routes to be executed in a certain Camel DSL language. + properties: + compression: + description: if the content is compressed (base64 encrypted) + type: boolean + content: + description: the source code (plain text) + type: string + contentKey: + description: the confimap key holding the source content + type: string + contentRef: + description: the confimap reference holding the source + content + type: string + contentType: + description: the content type (tipically text or binary) + type: string + from-kamelet: + description: True if the spec is generated from a Kamelet + type: boolean + interceptors: + description: |- + Interceptors are optional identifiers the org.apache.camel.k.RoutesLoader + uses to pre/post process sources + Deprecated: no longer in use. + items: + type: string + type: array + language: + description: specify which is the language (Camel DSL) + used to interpret this source code + type: string + loader: + description: |- + Loader is an optional id of the org.apache.camel.k.RoutesLoader that will + interpret this source at runtime + type: string + name: + description: the name of the specification + type: string + path: + description: the path where the file is stored + type: string + property-names: + description: List of property names defined in the source + (e.g. if type is "template") + items: + type: string + type: array + rawContent: + description: the source code (binary) + format: byte + type: string + type: + description: Type defines the kind of source described + by this object + type: string + type: object + type: array + template: + description: the main source in YAML DSL + type: object + x-kubernetes-preserve-unknown-fields: true + types: + additionalProperties: + description: |- + EventTypeSpec represents a specification for an event type. + Deprecated: In favor of using DataTypeSpec. + properties: + mediaType: + description: media type as expected for HTTP media types + (ie, application/json) + type: string + schema: + description: the expected schema for the event + properties: + $schema: + description: JSONSchemaURL represents a schema url. + type: string + description: + type: string + example: + description: |- + JSON represents any valid JSON value. + These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. + x-kubernetes-preserve-unknown-fields: true + externalDocs: + description: ExternalDocumentation allows referencing + an external resource for extended documentation. + properties: + description: + type: string + url: + type: string + type: object + id: + type: string + properties: + additionalProperties: + properties: + default: + description: default is a default value for + undefined object fields. + x-kubernetes-preserve-unknown-fields: true + deprecated: + type: boolean + description: + type: string + enum: + items: + description: |- + JSON represents any valid JSON value. + These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. + x-kubernetes-preserve-unknown-fields: true + type: array + example: + description: |- + JSON represents any valid JSON value. + These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. + x-kubernetes-preserve-unknown-fields: true + exclusiveMaximum: + type: boolean + exclusiveMinimum: + type: boolean + format: + description: |- + format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: + + + - bsonobjectid: a bson object ID, i.e. a 24 characters hex string + - uri: an URI as parsed by Golang net/url.ParseRequestURI + - email: an email address as parsed by Golang net/mail.ParseAddress + - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. + - ipv4: an IPv4 IP as parsed by Golang net.ParseIP + - ipv6: an IPv6 IP as parsed by Golang net.ParseIP + - cidr: a CIDR as parsed by Golang net.ParseCIDR + - mac: a MAC address as parsed by Golang net.ParseMAC + - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ + - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ + - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ + - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ + - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" + - isbn10: an ISBN10 number string like "0321751043" + - isbn13: an ISBN13 number string like "978-0321751041" + - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in + - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ + - hexcolor: an hexadecimal color code like "#FFFFFF" following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ + - rgbcolor: an RGB color code like rgb like "rgb(255,255,255)" + - byte: base64 encoded binary data + - password: any kind of string + - date: a date string like "2006-01-02" as defined by full-date in RFC3339 + - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format + - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + type: string + id: + type: string + maxItems: + format: int64 + type: integer + maxLength: + format: int64 + type: integer + maxProperties: + format: int64 + type: integer + maximum: + description: A Number represents a JSON number + literal. + type: string + minItems: + format: int64 + type: integer + minLength: + format: int64 + type: integer + minProperties: + format: int64 + type: integer + minimum: + description: A Number represents a JSON number + literal. + type: string + multipleOf: + description: A Number represents a JSON number + literal. + type: string + nullable: + type: boolean + pattern: + type: string + title: + type: string + type: + type: string + uniqueItems: + type: boolean + x-descriptors: + description: XDescriptors is a list of extended + properties that trigger a custom behavior + in external systems + items: + type: string + type: array + type: object + type: object + required: + items: + type: string + type: array + title: + type: string + type: + type: string + type: object + type: object + description: |- + data specification types for the events consumed/produced by the Kamelet + Deprecated: In favor of using DataTypes + type: object type: object description: |- - data specification types for the events consumed/produced by the Kamelet - Deprecated: In favor of using DataTypes + the optional versions available for this Kamelet. This field may not be taken in account by Camel core and is meant to support + any user defined versioning model on cluster only. If the user wants to use any given version, she must materialize a file with the given version spec + as the `main` Kamelet spec on the runtime. type: object type: object status: - description: the actual status of the resource. + default: + phase: Ready + description: |- + the actual status of the resource + Deprecated no longer in use properties: conditions: description: Conditions -- @@ -32615,7 +22978,7 @@ spec: type: object type: object served: true - storage: false + storage: true subresources: status: {} --- diff --git a/helm/camel-k/templates/operator-cluster-roles.yaml b/helm/camel-k/templates/operator-cluster-roles.yaml index 367ed7ca53..8b37fabb6a 100644 --- a/helm/camel-k/templates/operator-cluster-roles.yaml +++ b/helm/camel-k/templates/operator-cluster-roles.yaml @@ -37,9 +37,6 @@ rules: - integrationprofiles - integrations - pipes - # Deprecated: kameletbindings CR - - kameletbindings - - kamelets verbs: - create - delete @@ -61,9 +58,6 @@ rules: - integrations/status - pipes/status - pipes/scale - # Deprecated: kameletbindings CR - - kameletbindings/status - - kameletbindings/scale - kamelets/status verbs: - get @@ -90,8 +84,6 @@ rules: - integrationprofiles - integrations - pipes - # Deprecated: kameletbindings CR - - kameletbindings - kamelets verbs: - create @@ -118,9 +110,6 @@ rules: - integrations/status - pipes/status - pipes/scale - # Deprecated: kameletbindings CR - - kameletbindings/status - - kameletbindings/scale - kamelets/status verbs: - get @@ -477,7 +466,6 @@ rules: - integrationprofiles/finalizers - integrations/finalizers - pipes/finalizers - - kameletbindings/finalizers verbs: - update - apiGroups: diff --git a/helm/camel-k/templates/operator-role.yaml b/helm/camel-k/templates/operator-role.yaml index 4ddf75fad4..f9f7b6c823 100644 --- a/helm/camel-k/templates/operator-role.yaml +++ b/helm/camel-k/templates/operator-role.yaml @@ -34,8 +34,6 @@ rules: - integrationprofiles - integrations - pipes - # Deprecated: kameletbindings CR - - kameletbindings - kamelets verbs: - create @@ -70,9 +68,6 @@ rules: - integrations/status - pipes/status - pipes/scale - # Deprecated: kameletbindings CR - - kameletbindings/status - - kameletbindings/scale - kamelets/status verbs: - get @@ -285,7 +280,6 @@ rules: - integrationprofiles/finalizers - integrations/finalizers - pipes/finalizers - - kameletbindings/finalizers verbs: - update - apiGroups: diff --git a/pkg/apis/addtoscheme_camel_v1alpha1.go b/pkg/apis/addtoscheme_camel_v1alpha1.go deleted file mode 100644 index 8d2b7ae5f4..0000000000 --- a/pkg/apis/addtoscheme_camel_v1alpha1.go +++ /dev/null @@ -1,25 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package apis - -import v1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" - -func init() { - // Register the types with the Scheme so the components can map objects to GroupVersionKinds and back - AddToSchemes = append(AddToSchemes, v1alpha1.AddToScheme) -} diff --git a/pkg/apis/camel/v1alpha1/doc.go b/pkg/apis/camel/v1alpha1/doc.go deleted file mode 100644 index bbde76285c..0000000000 --- a/pkg/apis/camel/v1alpha1/doc.go +++ /dev/null @@ -1,21 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package v1alpha1 contains API Schema definitions for the camel v1alpha1 API group -// +kubebuilder:object:generate=true -// +groupName=camel.apache.org -package v1alpha1 diff --git a/pkg/apis/camel/v1alpha1/error_handler_types.go b/pkg/apis/camel/v1alpha1/error_handler_types.go deleted file mode 100644 index aadd4f3935..0000000000 --- a/pkg/apis/camel/v1alpha1/error_handler_types.go +++ /dev/null @@ -1,57 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package v1alpha1 is deprecated: use the v1 API instead -// Deprecated -package v1alpha1 - -const ( - // ErrorHandlerRefName the reference name to use when looking for an error handler. - ErrorHandlerRefName = "camel.k.errorHandler.ref" - // ErrorHandlerRefDefaultName the default name of the error handler. - ErrorHandlerRefDefaultName = "defaultErrorHandler" - // ErrorHandlerAppPropertiesPrefix the prefix used for the error handler bean. - ErrorHandlerAppPropertiesPrefix = "camel.beans.defaultErrorHandler" -) - -// ErrorHandlerSpec represents an unstructured object for an error handler. -type ErrorHandlerSpec struct { - RawMessage `json:",inline,omitempty"` -} - -// ErrorHandlerParameters represent an unstructured object for error handler parameters. -type ErrorHandlerParameters struct { - RawMessage `json:",inline,omitempty"` -} - -// BeanProperties represent an unstructured object properties to be set on a bean. -type BeanProperties struct { - RawMessage `json:",inline,omitempty"` -} - -// ErrorHandlerType a type of error handler (ie, sink). -type ErrorHandlerType string - -const ( - errorHandlerTypeBase ErrorHandlerType = "" - // ErrorHandlerTypeNone used to ignore any error event. - ErrorHandlerTypeNone ErrorHandlerType = "none" - // ErrorHandlerTypeLog used to log the event producing the error. - ErrorHandlerTypeLog ErrorHandlerType = "log" - // ErrorHandlerTypeSink used to send the event to a further sink (for future processing). This was previously known as dead-letter-channel. - ErrorHandlerTypeSink ErrorHandlerType = "sink" -) diff --git a/pkg/apis/camel/v1alpha1/error_handler_types_support.go b/pkg/apis/camel/v1alpha1/error_handler_types_support.go deleted file mode 100644 index 2489cf53c4..0000000000 --- a/pkg/apis/camel/v1alpha1/error_handler_types_support.go +++ /dev/null @@ -1,145 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package v1alpha1 is deprecated: use the v1 API instead -// Deprecated -package v1alpha1 - -import ( - "encoding/json" - "fmt" -) - -// +kubebuilder:object:generate=false - -// ErrorHandler is a generic interface that represent any type of error handler specification. -type ErrorHandler interface { - Type() ErrorHandlerType - Endpoint() *Endpoint - Configuration() (map[string]interface{}, error) - Validate() error -} - -// baseErrorHandler is the base used for the Error Handler hierarchy. -type baseErrorHandler struct { -} - -// Type --. -func (e baseErrorHandler) Type() ErrorHandlerType { - return errorHandlerTypeBase -} - -// Endpoint --. -func (e baseErrorHandler) Endpoint() *Endpoint { - return nil -} - -// Configuration --. -func (e baseErrorHandler) Configuration() (map[string]interface{}, error) { - return nil, nil -} - -// Validate --. -func (e baseErrorHandler) Validate() error { - return nil -} - -// ErrorHandlerNone --. -type ErrorHandlerNone struct { - baseErrorHandler -} - -// Type --. -func (e ErrorHandlerNone) Type() ErrorHandlerType { - return ErrorHandlerTypeNone -} - -// Configuration --. -func (e ErrorHandlerNone) Configuration() (map[string]interface{}, error) { - return map[string]interface{}{ - ErrorHandlerAppPropertiesPrefix: "#class:org.apache.camel.builder.NoErrorHandlerBuilder", - ErrorHandlerRefName: ErrorHandlerRefDefaultName, - }, nil -} - -// ErrorHandlerLog represent a default (log) error handler type. -type ErrorHandlerLog struct { - ErrorHandlerNone - Parameters *ErrorHandlerParameters `json:"parameters,omitempty"` -} - -// Type --. -func (e ErrorHandlerLog) Type() ErrorHandlerType { - return ErrorHandlerTypeLog -} - -// Configuration --. -func (e ErrorHandlerLog) Configuration() (map[string]interface{}, error) { - properties, err := e.ErrorHandlerNone.Configuration() - if err != nil { - return nil, err - } - properties[ErrorHandlerAppPropertiesPrefix] = "#class:org.apache.camel.builder.DefaultErrorHandlerBuilder" - - if e.Parameters != nil { - var parameters map[string]interface{} - err := json.Unmarshal(e.Parameters.RawMessage, ¶meters) - if err != nil { - return nil, err - } - for key, value := range parameters { - properties[ErrorHandlerAppPropertiesPrefix+"."+key] = value - } - } - - return properties, nil -} - -// ErrorHandlerSink represents a sink error handler type which behave like a dead letter channel. -type ErrorHandlerSink struct { - ErrorHandlerLog - DLCEndpoint *Endpoint `json:"endpoint,omitempty"` -} - -// Type --. -func (e ErrorHandlerSink) Type() ErrorHandlerType { - return ErrorHandlerTypeSink -} - -// Endpoint --. -func (e ErrorHandlerSink) Endpoint() *Endpoint { - return e.DLCEndpoint -} - -// Configuration --. -func (e ErrorHandlerSink) Configuration() (map[string]interface{}, error) { - properties, err := e.ErrorHandlerLog.Configuration() - if err != nil { - return nil, err - } - properties[ErrorHandlerAppPropertiesPrefix] = "#class:org.apache.camel.builder.DeadLetterChannelBuilder" - - return properties, err -} - -// Validate --. -func (e ErrorHandlerSink) Validate() error { - if e.DLCEndpoint == nil { - return fmt.Errorf("missing endpoint in Error Handler Sink") - } - return nil -} diff --git a/pkg/apis/camel/v1alpha1/jsonschema_types.go b/pkg/apis/camel/v1alpha1/jsonschema_types.go deleted file mode 100644 index 0f86ba0ca1..0000000000 --- a/pkg/apis/camel/v1alpha1/jsonschema_types.go +++ /dev/null @@ -1,151 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// NOTE: this file has been originally copied from https://github.com/kubernetes/apiextensions-apiserver/blob/33bb2d8b009bae408e40818a93877459efeb4cb1/pkg/apis/apiextensions/v1/types_jsonschema.go - -// Package v1alpha1 is deprecated: use the v1 API instead -// Deprecated -package v1alpha1 - -import ( - "encoding/json" - "errors" -) - -type JSONSchemaProp struct { - ID string `json:"id,omitempty"` - Deprecated bool `json:"deprecated,omitempty"` - Description string `json:"description,omitempty"` - Type string `json:"type,omitempty"` - // format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: - // - // - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - // - uri: an URI as parsed by Golang net/url.ParseRequestURI - // - email: an email address as parsed by Golang net/mail.ParseAddress - // - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - // - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - // - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - // - cidr: a CIDR as parsed by Golang net.ParseCIDR - // - mac: a MAC address as parsed by Golang net.ParseMAC - // - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - // - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - // - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - // - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - // - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - // - isbn10: an ISBN10 number string like "0321751043" - // - isbn13: an ISBN13 number string like "978-0321751041" - // - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - // - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - // - hexcolor: an hexadecimal color code like "#FFFFFF" following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - // - rgbcolor: an RGB color code like rgb like "rgb(255,255,255)" - // - byte: base64 encoded binary data - // - password: any kind of string - // - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - // - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - // - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. - Format string `json:"format,omitempty"` - Title string `json:"title,omitempty"` - // default is a default value for undefined object fields. - Default *JSON `json:"default,omitempty"` - Maximum *json.Number `json:"maximum,omitempty"` - ExclusiveMaximum bool `json:"exclusiveMaximum,omitempty"` - Minimum *json.Number `json:"minimum,omitempty"` - ExclusiveMinimum bool `json:"exclusiveMinimum,omitempty"` - MaxLength *int64 `json:"maxLength,omitempty"` - MinLength *int64 `json:"minLength,omitempty"` - Pattern string `json:"pattern,omitempty"` - MaxItems *int64 `json:"maxItems,omitempty"` - MinItems *int64 `json:"minItems,omitempty"` - UniqueItems bool `json:"uniqueItems,omitempty"` - MaxProperties *int64 `json:"maxProperties,omitempty"` - MinProperties *int64 `json:"minProperties,omitempty"` - MultipleOf *json.Number `json:"multipleOf,omitempty"` - Enum []JSON `json:"enum,omitempty"` - Example *JSON `json:"example,omitempty"` - Nullable bool `json:"nullable,omitempty"` - // XDescriptors is a list of extended properties that trigger a custom behavior in external systems - XDescriptors []string `json:"x-descriptors,omitempty"` -} - -// JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/). -type JSONSchemaProps struct { - ID string `json:"id,omitempty"` - Description string `json:"description,omitempty"` - Title string `json:"title,omitempty"` - Properties map[string]JSONSchemaProp `json:"properties,omitempty"` - Required []string `json:"required,omitempty"` - Example *JSON `json:"example,omitempty"` - ExternalDocs *ExternalDocumentation `json:"externalDocs,omitempty"` - Schema JSONSchemaURL `json:"$schema,omitempty"` - Type string `json:"type,omitempty"` -} - -// RawMessage is a raw encoded JSON value. -// It implements Marshaler and Unmarshaler and can -// be used to delay JSON decoding or precompute a JSON encoding. -// +kubebuilder:validation:Type="" -// +kubebuilder:validation:Format="" -// +kubebuilder:pruning:PreserveUnknownFields -type RawMessage []byte - -// +kubebuilder:validation:Type="" -// JSON represents any valid JSON value. -// These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. -type JSON struct { - RawMessage `json:",inline"` -} - -// MarshalJSON returns m as the JSON encoding of m. -func (m RawMessage) MarshalJSON() ([]byte, error) { - if m == nil { - return []byte("null"), nil - } - return m, nil -} - -// UnmarshalJSON sets *m to a copy of data. -func (m *RawMessage) UnmarshalJSON(data []byte) error { - if m == nil { - return errors.New("json.RawMessage: UnmarshalJSON on nil pointer") - } - *m = append((*m)[0:0], data...) - return nil -} - -// String returns a string representation of RawMessage. -func (m *RawMessage) String() string { - if m == nil { - return "" - } - b, err := m.MarshalJSON() - if err != nil { - return "" - } - return string(b) -} - -var _ json.Marshaler = (*RawMessage)(nil) -var _ json.Unmarshaler = (*RawMessage)(nil) - -// JSONSchemaURL represents a schema url. -type JSONSchemaURL string - -// ExternalDocumentation allows referencing an external resource for extended documentation. -type ExternalDocumentation struct { - Description string `json:"description,omitempty"` - URL string `json:"url,omitempty"` -} diff --git a/pkg/apis/camel/v1alpha1/kamelet_binding_types.go b/pkg/apis/camel/v1alpha1/kamelet_binding_types.go deleted file mode 100644 index e4696a9d33..0000000000 --- a/pkg/apis/camel/v1alpha1/kamelet_binding_types.go +++ /dev/null @@ -1,169 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package v1alpha1 is deprecated: use the v1 API instead -// Deprecated -package v1alpha1 - -import ( - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1" -) - -// +genclient -// +kubebuilder:deprecatedversion:warning="v1apha1.KameletBinding is deprecated, please, use v1.Pipe instead" -// +kubebuilder:object:root=true -// +kubebuilder:resource:path=kameletbindings,scope=Namespaced,shortName=klb,categories=kamel;camel -// +kubebuilder:subresource:status -// +genclient:method=GetScale,verb=get,subresource=scale,result=k8s.io/api/autoscaling/v1.Scale -// +genclient:method=UpdateScale,verb=update,subresource=scale,input=k8s.io/api/autoscaling/v1.Scale,result=k8s.io/api/autoscaling/v1.Scale -// +kubebuilder:subresource:scale:specpath=.spec.replicas,statuspath=.status.replicas,selectorpath=.status.selector -// +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase`,description="The Kamelet Binding phase" -// +kubebuilder:printcolumn:name="Replicas",type=integer,JSONPath=`.status.replicas`,description="The number of pods" - -// KameletBinding is the Schema for the kamelets binding API. -type KameletBinding struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - // the specification of a KameletBinding - Spec KameletBindingSpec `json:"spec,omitempty"` - // the status of a KameletBinding - Status KameletBindingStatus `json:"status,omitempty"` -} - -// KameletBindingSpec defines the binding between a source and a sink. It can include custom parameters and additional intermediate steps and error handling. -type KameletBindingSpec struct { - // Integration is an optional integration used to specify custom parameters - Integration *v1.IntegrationSpec `json:"integration,omitempty"` - // Source is the starting point of the integration defined by this binding - Source Endpoint `json:"source,omitempty"` - // Sink is the destination of the integration defined by this binding - Sink Endpoint `json:"sink,omitempty"` - // ErrorHandler is an optional handler called upon an error occurring in the integration - ErrorHandler *ErrorHandlerSpec `json:"errorHandler,omitempty"` - // Steps contains an optional list of intermediate steps that are executed between the Source and the Sink - Steps []Endpoint `json:"steps,omitempty"` - // Replicas is the number of desired replicas for the binding - Replicas *int32 `json:"replicas,omitempty"` - // Custom SA to use for the binding - ServiceAccountName string `json:"serviceAccountName,omitempty"` -} - -// Endpoint represents a source/sink external entity (could be any Kubernetes resource or Camel URI). -type Endpoint struct { - // Ref can be used to declare a Kubernetes resource as source/sink endpoint - Ref *corev1.ObjectReference `json:"ref,omitempty"` - // URI can be used to specify the (Camel) endpoint explicitly - URI *string `json:"uri,omitempty"` - // Properties are a key value representation of endpoint properties - Properties *EndpointProperties `json:"properties,omitempty"` - // Types defines the data type of the data produced/consumed by the endpoint and references a given data type specification. - // Deprecated: In favor of using DataTypes - Types map[TypeSlot]EventTypeSpec `json:"types,omitempty"` - // DataTypes defines the data type of the data produced/consumed by the endpoint and references a given data type specification. - DataTypes map[TypeSlot]DataTypeReference `json:"dataTypes,omitempty"` -} - -// EndpointType represents the type (ie, source or sink). -type EndpointType string - -const ( - // EndpointTypeSource source endpoint. - EndpointTypeSource EndpointType = "source" - // EndpointTypeAction action endpoint. - EndpointTypeAction EndpointType = "action" - // EndpointTypeSink sink endpoint. - EndpointTypeSink EndpointType = "sink" - // EndpointTypeErrorHandler error handler endpoint. - EndpointTypeErrorHandler EndpointType = "errorHandler" -) - -// EndpointProperties is a key/value struct represented as JSON raw to allow numeric/boolean values. -type EndpointProperties struct { - RawMessage `json:",inline"` -} - -// KameletBindingStatus specify the status of a binding. -type KameletBindingStatus struct { - // ObservedGeneration is the most recent generation observed for this KameletBinding. - ObservedGeneration int64 `json:"observedGeneration,omitempty"` - // Phase -- - Phase KameletBindingPhase `json:"phase,omitempty"` - // Conditions -- - Conditions []KameletBindingCondition `json:"conditions,omitempty"` - // Replicas is the number of actual replicas of the binding - Replicas *int32 `json:"replicas,omitempty"` - // Selector allows to identify pods belonging to the binding - Selector string `json:"selector,omitempty"` -} - -// KameletBindingCondition describes the state of a resource at a certain point. -type KameletBindingCondition struct { - // Type of kameletBinding condition. - Type KameletBindingConditionType `json:"type"` - // Status of the condition, one of True, False, Unknown. - Status corev1.ConditionStatus `json:"status"` - // The last time this condition was updated. - LastUpdateTime metav1.Time `json:"lastUpdateTime,omitempty"` - // Last time the condition transitioned from one status to another. - LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"` - // The reason for the condition's last transition. - Reason string `json:"reason,omitempty"` - // A human readable message indicating details about the transition. - Message string `json:"message,omitempty"` - // Pods collect health and conditions information from the owned PODs - Pods []v1.PodCondition `json:"pods,omitempty"` -} - -// KameletBindingConditionType --. -type KameletBindingConditionType string - -const ( - // KameletBindingConditionReady --. - KameletBindingConditionReady KameletBindingConditionType = "Ready" - // KameletBindingIntegrationConditionError is used to report the error on the generated Integration. - KameletBindingIntegrationConditionError KameletBindingConditionType = "IntegrationError" -) - -// KameletBindingPhase --. -type KameletBindingPhase string - -const ( - // KameletBindingKind --. - KameletBindingKind string = "KameletBinding" - - // KameletBindingPhaseNone --. - KameletBindingPhaseNone KameletBindingPhase = "" - // KameletBindingPhaseCreating --. - KameletBindingPhaseCreating KameletBindingPhase = "Creating" - // KameletBindingPhaseError --. - KameletBindingPhaseError KameletBindingPhase = "Error" - // KameletBindingPhaseReady --. - KameletBindingPhaseReady KameletBindingPhase = "Ready" -) - -// +kubebuilder:object:root=true - -// KameletBindingList contains a list of KameletBinding. -type KameletBindingList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []KameletBinding `json:"items"` -} diff --git a/pkg/apis/camel/v1alpha1/kamelet_binding_types_support.go b/pkg/apis/camel/v1alpha1/kamelet_binding_types_support.go deleted file mode 100644 index a726b6124c..0000000000 --- a/pkg/apis/camel/v1alpha1/kamelet_binding_types_support.go +++ /dev/null @@ -1,196 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package v1alpha1 is deprecated: use the v1 API instead -// Deprecated -package v1alpha1 - -import ( - "bytes" - "encoding/json" - "fmt" - - v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1" - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// GetConditions --. -func (in *KameletBindingStatus) GetConditions() []v1.ResourceCondition { - res := make([]v1.ResourceCondition, 0, len(in.Conditions)) - for _, c := range in.Conditions { - res = append(res, c) - } - return res -} - -// GetType --. -func (c KameletBindingCondition) GetType() string { - return string(c.Type) -} - -// GetStatus --. -func (c KameletBindingCondition) GetStatus() corev1.ConditionStatus { - return c.Status -} - -// GetLastUpdateTime --. -func (c KameletBindingCondition) GetLastUpdateTime() metav1.Time { - return c.LastUpdateTime -} - -// GetLastTransitionTime --. -func (c KameletBindingCondition) GetLastTransitionTime() metav1.Time { - return c.LastTransitionTime -} - -// GetReason --. -func (c KameletBindingCondition) GetReason() string { - return c.Reason -} - -// GetMessage --. -func (c KameletBindingCondition) GetMessage() string { - return c.Message -} - -// SetOperatorID sets the given operator id as an annotation. -func (in *KameletBinding) SetOperatorID(operatorID string) { - v1.SetAnnotation(&in.ObjectMeta, v1.OperatorIDAnnotation, operatorID) -} - -// GetCondition returns the condition with the provided type. -func (in *KameletBindingStatus) GetCondition(condType KameletBindingConditionType) *KameletBindingCondition { - for i := range in.Conditions { - c := in.Conditions[i] - if c.Type == condType { - return &c - } - } - return nil -} - -// SetCondition --. -func (in *KameletBindingStatus) SetCondition(condType KameletBindingConditionType, status corev1.ConditionStatus, reason string, message string) { - in.SetConditions(KameletBindingCondition{ - Type: condType, - Status: status, - LastUpdateTime: metav1.Now(), - LastTransitionTime: metav1.Now(), - Reason: reason, - Message: message, - }) -} - -// SetErrorCondition --. -func (in *KameletBindingStatus) SetErrorCondition(condType KameletBindingConditionType, reason string, err error) { - in.SetConditions(KameletBindingCondition{ - Type: condType, - Status: corev1.ConditionFalse, - LastUpdateTime: metav1.Now(), - LastTransitionTime: metav1.Now(), - Reason: reason, - Message: err.Error(), - }) -} - -// SetConditions updates the resource to include the provided conditions. -// -// If a condition that we are about to add already exists and has the same status and -// reason then we are not going to update. -func (in *KameletBindingStatus) SetConditions(conditions ...KameletBindingCondition) { - for _, condition := range conditions { - if condition.LastUpdateTime.IsZero() { - condition.LastUpdateTime = metav1.Now() - } - if condition.LastTransitionTime.IsZero() { - condition.LastTransitionTime = metav1.Now() - } - - currentCond := in.GetCondition(condition.Type) - - if currentCond != nil && currentCond.Status == condition.Status && currentCond.Reason == condition.Reason { - return - } - // Do not update lastTransitionTime if the status of the condition doesn't change. - if currentCond != nil && currentCond.Status == condition.Status { - condition.LastTransitionTime = currentCond.LastTransitionTime - } - - in.RemoveCondition(condition.Type) - in.Conditions = append(in.Conditions, condition) - } -} - -// RemoveCondition removes the resource condition with the provided type. -func (in *KameletBindingStatus) RemoveCondition(condType KameletBindingConditionType) { - newConditions := in.Conditions[:0] - for _, c := range in.Conditions { - if c.Type != condType { - newConditions = append(newConditions, c) - } - } - - in.Conditions = newConditions -} - -// GetPropertyMap returns the EndpointProperties as map. -func (p *EndpointProperties) GetPropertyMap() (map[string]string, error) { - if p == nil { - return nil, nil - } - if len(p.RawMessage) == 0 { - return nil, nil - } - - // Convert json property values to objects before getting their string representation - var props map[string]interface{} - d := json.NewDecoder(bytes.NewReader(p.RawMessage)) - d.UseNumber() - if err := d.Decode(&props); err != nil { - return nil, err - } - stringProps := make(map[string]string, len(props)) - for k, v := range props { - stringProps[k] = fmt.Sprintf("%v", v) - } - return stringProps, nil -} - -// NewKameletBinding --. -func NewKameletBinding(namespace string, name string) KameletBinding { - return KameletBinding{ - TypeMeta: metav1.TypeMeta{ - APIVersion: SchemeGroupVersion.String(), - Kind: KameletBindingKind, - }, - ObjectMeta: metav1.ObjectMeta{ - Namespace: namespace, - Name: name, - }, - } -} - -// NewKameletBindingList --. -func NewKameletBindingList() KameletBindingList { - return KameletBindingList{ - TypeMeta: metav1.TypeMeta{ - APIVersion: SchemeGroupVersion.String(), - Kind: KameletBindingKind, - }, - } -} diff --git a/pkg/apis/camel/v1alpha1/kamelet_binding_types_support_test.go b/pkg/apis/camel/v1alpha1/kamelet_binding_types_support_test.go deleted file mode 100644 index 5c0dbb76c5..0000000000 --- a/pkg/apis/camel/v1alpha1/kamelet_binding_types_support_test.go +++ /dev/null @@ -1,50 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package v1alpha1 is deprecated: use the v1 API instead -// Deprecated -package v1alpha1 - -import ( - "encoding/json" - "testing" - - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -func TestNumberConversion(t *testing.T) { - props := map[string]interface{}{ - "string": "str", - "int32": 1000000, - "int64": int64(10000000000), - "float32": float32(123.123), - "float64": float64(1111123.123), - } - ser, err := json.Marshal(props) - require.NoError(t, err) - ep := EndpointProperties{ - RawMessage: ser, - } - res, err := ep.GetPropertyMap() - require.NoError(t, err) - assert.Equal(t, "str", res["string"]) - assert.Equal(t, "1000000", res["int32"]) - assert.Equal(t, "10000000000", res["int64"]) - assert.Equal(t, "123.123", res["float32"]) - assert.Equal(t, "1111123.123", res["float64"]) -} diff --git a/pkg/apis/camel/v1alpha1/kamelet_types.go b/pkg/apis/camel/v1alpha1/kamelet_types.go deleted file mode 100644 index 211f48a497..0000000000 --- a/pkg/apis/camel/v1alpha1/kamelet_types.go +++ /dev/null @@ -1,238 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package v1alpha1 is deprecated: use the v1 API instead -// Deprecated -package v1alpha1 - -import ( - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - camelv1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1" -) - -const ( - // AnnotationIcon label used by icons. - AnnotationIcon = "camel.apache.org/kamelet.icon" - // KameletBundledLabel label used by bundling. - KameletBundledLabel = "camel.apache.org/kamelet.bundled" - // KameletReadOnlyLabel label used to identify readonly Kamelets. - KameletReadOnlyLabel = "camel.apache.org/kamelet.readonly" - // KameletTypeLabel label used to identify Kamelet type. - KameletTypeLabel = "camel.apache.org/kamelet.type" - // KameletGroupLabel label used to group Kamelets. - KameletGroupLabel = "camel.apache.org/kamelet.group" - - // KameletTypeSink type Sink. - KameletTypeSink = "sink" - // KameletTypeSource type Source. - KameletTypeSource = "source" - // KameletTypeAction type Action. - KameletTypeAction = "action" -) - -var ( - // reservedKameletNames used to mark reserved names. - reservedKameletNames = map[string]bool{"source": true, "sink": true} - // KameletIDProperty used to identify. - KameletIDProperty = "id" -) - -// +genclient -// +kubebuilder:deprecatedversion:warning="v1apha1.Kamelet is deprecated, please, use v1.Kamelet instead" -// +kubebuilder:object:root=true -// +kubebuilder:resource:path=kamelets,scope=Namespaced,shortName=kl,categories=kamel;camel -// +kubebuilder:subresource:status -// +kubebuilder:printcolumn:name="Phase",type=string,JSONPath=`.status.phase`,description="The Kamelet phase" - -// Kamelet is the Schema for the kamelets API. -type Kamelet struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - // the desired specification. - Spec KameletSpec `json:"spec,omitempty"` - // the actual status of the resource. - Status KameletStatus `json:"status,omitempty"` -} - -// KameletSpec specifies the configuration required to execute a Kamelet. -type KameletSpec struct { - // defines the formal configuration of the Kamelet - Definition *JSONSchemaProps `json:"definition,omitempty"` - // sources in any Camel DSL supported - Sources []camelv1.SourceSpec `json:"sources,omitempty"` - // the main source in YAML DSL - Template *Template `json:"template,omitempty"` - // data specification types for the events consumed/produced by the Kamelet - // Deprecated: In favor of using DataTypes - Types map[TypeSlot]EventTypeSpec `json:"types,omitempty"` - // data specification types for the events consumed/produced by the Kamelet - DataTypes map[TypeSlot]DataTypesSpec `json:"dataTypes,omitempty"` - // Camel dependencies needed by the Kamelet - Dependencies []string `json:"dependencies,omitempty"` -} - -// Template is an unstructured object representing a Kamelet template in YAML/JSON DSL. -type Template struct { - // an unstructured raw message - RawMessage `json:",inline"` -} - -// TypeSlot represent a kind of data (ie, input, output, ...). -type TypeSlot string - -const ( - // TypeSlotIn is used for the input events. - TypeSlotIn TypeSlot = "in" - // TypeSlotOut is used for the output events. - TypeSlotOut TypeSlot = "out" - // TypeSlotError is used for the error events. - TypeSlotError TypeSlot = "error" -) - -// EventTypeSpec represents a specification for an event type. -// Deprecated: In favor of using DataTypeSpec. -type EventTypeSpec struct { - // media type as expected for HTTP media types (ie, application/json) - MediaType string `json:"mediaType,omitempty"` - // the expected schema for the event - Schema *JSONSchemaProps `json:"schema,omitempty"` -} - -// DataTypesSpec represents the specification for a set of data types. -type DataTypesSpec struct { - // the default data type for this Kamelet - Default string `json:"default,omitempty"` - // one to many data type specifications - Types map[string]DataTypeSpec `json:"types,omitempty"` - // one to many header specifications - Headers map[string]HeaderSpec `json:"headers,omitempty"` -} - -// DataTypeSpec represents the specification for a data type. -type DataTypeSpec struct { - // the data type component scheme - Scheme string `json:"scheme,omitempty"` - // the data type format name - Format string `json:"format,omitempty"` - // optional description - Description string `json:"description,omitempty"` - // media type as expected for HTTP media types (ie, application/json) - MediaType string `json:"mediaType,omitempty"` - // the list of Camel or Maven dependencies required by the data type - Dependencies []string `json:"dependencies,omitempty"` - // one to many header specifications - Headers map[string]HeaderSpec `json:"headers,omitempty"` - // the expected schema for the data type - Schema *JSONSchemaProps `json:"schema,omitempty"` -} - -// DataTypeReference references to the specification of a data type by its scheme and format name. -type DataTypeReference struct { - // the data type component scheme - Scheme string `json:"scheme,omitempty"` - // the data type format name - Format string `json:"format,omitempty"` -} - -// HeaderSpec represents the specification for a header used in the Kamelet. -type HeaderSpec struct { - Type string `json:"type,omitempty"` - Title string `json:"title,omitempty"` - Description string `json:"description,omitempty"` - Required bool `json:"required,omitempty"` - Default string `json:"default,omitempty"` -} - -// KameletStatus defines the observed state of Kamelet. -type KameletStatus struct { - // ObservedGeneration is the most recent generation observed for this Kamelet. - ObservedGeneration int64 `json:"observedGeneration,omitempty"` - // Phase -- - Phase KameletPhase `json:"phase,omitempty"` - // Conditions -- - Conditions []KameletCondition `json:"conditions,omitempty"` - // Properties -- - Properties []KameletProperty `json:"properties,omitempty"` -} - -// KameletProperty specify the behavior of a property in a Kamelet. -type KameletProperty struct { - // the name of the property - Name string `json:"name,omitempty"` - // the default value of the property (if any) - Default string `json:"default,omitempty"` -} - -// KameletCondition describes the state of a resource at a certain point. -type KameletCondition struct { - // Type of kamelet condition. - Type KameletConditionType `json:"type"` - // Status of the condition, one of True, False, Unknown. - Status corev1.ConditionStatus `json:"status"` - // The last time this condition was updated. - LastUpdateTime metav1.Time `json:"lastUpdateTime,omitempty"` - // Last time the condition transitioned from one status to another. - LastTransitionTime metav1.Time `json:"lastTransitionTime,omitempty"` - // The reason for the condition's last transition. - Reason string `json:"reason,omitempty"` - // A human-readable message indicating details about the transition. - Message string `json:"message,omitempty"` -} - -// KameletConditionType --. -type KameletConditionType string - -const ( - // KameletConditionReady --. - KameletConditionReady KameletConditionType = "Ready" -) - -const ( - // KameletConditionReasonInvalidName --. - KameletConditionReasonInvalidName string = "InvalidName" - // KameletConditionReasonInvalidProperty --. - KameletConditionReasonInvalidProperty string = "InvalidProperty" - // KameletConditionReasonInvalidTemplate --. - KameletConditionReasonInvalidTemplate string = "InvalidTemplate" -) - -// KameletPhase --. -type KameletPhase string - -const ( - // KameletKind --. - KameletKind string = "Kamelet" - - // KameletPhaseNone --. - KameletPhaseNone KameletPhase = "" - // KameletPhaseReady --. - KameletPhaseReady KameletPhase = "Ready" - // KameletPhaseError --. - KameletPhaseError KameletPhase = "Error" -) - -// +kubebuilder:object:root=true - -// KameletList contains a list of Kamelet. -type KameletList struct { - metav1.TypeMeta `json:",inline"` - metav1.ListMeta `json:"metadata,omitempty"` - Items []Kamelet `json:"items"` -} diff --git a/pkg/apis/camel/v1alpha1/kamelet_types_support.go b/pkg/apis/camel/v1alpha1/kamelet_types_support.go deleted file mode 100644 index 4181675ba3..0000000000 --- a/pkg/apis/camel/v1alpha1/kamelet_types_support.go +++ /dev/null @@ -1,209 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package v1alpha1 is deprecated: use the v1 API instead -// Deprecated -package v1alpha1 - -import ( - "sort" - - v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1" - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// GetConditions --. -func (in *KameletStatus) GetConditions() []v1.ResourceCondition { - res := make([]v1.ResourceCondition, 0, len(in.Conditions)) - for _, c := range in.Conditions { - res = append(res, c) - } - return res -} - -// GetType --. -func (c KameletCondition) GetType() string { - return string(c.Type) -} - -// GetStatus --. -func (c KameletCondition) GetStatus() corev1.ConditionStatus { - return c.Status -} - -// GetLastUpdateTime --. -func (c KameletCondition) GetLastUpdateTime() metav1.Time { - return c.LastUpdateTime -} - -// GetLastTransitionTime --. -func (c KameletCondition) GetLastTransitionTime() metav1.Time { - return c.LastTransitionTime -} - -// GetReason --. -func (c KameletCondition) GetReason() string { - return c.Reason -} - -// GetMessage --. -func (c KameletCondition) GetMessage() string { - return c.Message -} - -// GetCondition returns the condition with the provided type. -func (in *KameletStatus) GetCondition(condType KameletConditionType) *KameletCondition { - for i := range in.Conditions { - c := in.Conditions[i] - if c.Type == condType { - return &c - } - } - return nil -} - -// SetCondition --. -func (in *KameletStatus) SetCondition(condType KameletConditionType, status corev1.ConditionStatus, reason string, message string) { - in.SetConditions(KameletCondition{ - Type: condType, - Status: status, - LastUpdateTime: metav1.Now(), - LastTransitionTime: metav1.Now(), - Reason: reason, - Message: message, - }) -} - -// SetErrorCondition --. -func (in *KameletStatus) SetErrorCondition(condType KameletConditionType, reason string, err error) { - in.SetConditions(KameletCondition{ - Type: condType, - Status: corev1.ConditionFalse, - LastUpdateTime: metav1.Now(), - LastTransitionTime: metav1.Now(), - Reason: reason, - Message: err.Error(), - }) -} - -// SetConditions updates the resource to include the provided conditions. -// -// If a condition that we are about to add already exists and has the same status and -// reason then we are not going to update. -func (in *KameletStatus) SetConditions(conditions ...KameletCondition) { - for _, condition := range conditions { - if condition.LastUpdateTime.IsZero() { - condition.LastUpdateTime = metav1.Now() - } - if condition.LastTransitionTime.IsZero() { - condition.LastTransitionTime = metav1.Now() - } - - currentCond := in.GetCondition(condition.Type) - - if currentCond != nil && currentCond.Status == condition.Status && currentCond.Reason == condition.Reason { - return - } - // Do not update lastTransitionTime if the status of the condition doesn't change. - if currentCond != nil && currentCond.Status == condition.Status { - condition.LastTransitionTime = currentCond.LastTransitionTime - } - - in.RemoveCondition(condition.Type) - in.Conditions = append(in.Conditions, condition) - } -} - -// RemoveCondition removes the resource condition with the provided type. -func (in *KameletStatus) RemoveCondition(condType KameletConditionType) { - newConditions := in.Conditions[:0] - for _, c := range in.Conditions { - if c.Type != condType { - newConditions = append(newConditions, c) - } - } - - in.Conditions = newConditions -} - -// SortedDefinitionPropertiesKeys returns the sorted keys of the Kamelet definition properties. -func (k *Kamelet) SortedDefinitionPropertiesKeys() []string { - if k.Spec.Definition == nil { - return []string{} - } - props := k.Spec.Definition.Properties - if len(props) == 0 { - return []string{} - } - res := make([]string, len(props)) - i := 0 - for key := range props { - res[i] = key - i++ - } - sort.Strings(res) - return res -} - -// SortedTypesKeys returns the sorted keys of the Kamelet spec types. -func (k *Kamelet) SortedTypesKeys() []TypeSlot { - types := k.Spec.DataTypes - if len(types) == 0 { - return []TypeSlot{} - } - strs := make([]string, len(types)) - i := 0 - for key := range types { - strs[i] = string(key) - i++ - } - sort.Strings(strs) - res := make([]TypeSlot, len(types)) - for i, s := range strs { - res[i] = TypeSlot(s) - } - return res -} - -func ValidKameletName(name string) bool { - return !reservedKameletNames[name] -} - -// NewKamelet creates a new Kamelet. -func NewKamelet(namespace string, name string) Kamelet { - return Kamelet{ - TypeMeta: metav1.TypeMeta{ - APIVersion: SchemeGroupVersion.String(), - Kind: KameletKind, - }, - ObjectMeta: metav1.ObjectMeta{ - Namespace: namespace, - Name: name, - }, - } -} - -// NewKameletList creates a new list of Kamelets. -func NewKameletList() KameletList { - return KameletList{ - TypeMeta: metav1.TypeMeta{ - APIVersion: SchemeGroupVersion.String(), - Kind: KameletKind, - }, - } -} diff --git a/pkg/apis/camel/v1alpha1/register.go b/pkg/apis/camel/v1alpha1/register.go deleted file mode 100644 index b97cbf194a..0000000000 --- a/pkg/apis/camel/v1alpha1/register.go +++ /dev/null @@ -1,57 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package v1alpha1 contains Camel unstable API Schema definitions -// Package v1alpha1 is deprecated: use the v1 API instead -// Deprecated -// +kubebuilder:object:generate=true -// +groupName=camel.apache.org -package v1alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - // SchemeGroupVersion is group version used to register these objects. - SchemeGroupVersion = schema.GroupVersion{Group: "camel.apache.org", Version: "v1alpha1"} - - // SchemeBuilder is used to add go types to the GroupVersionKind scheme. - SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) - - // AddToScheme is a shortcut to SchemeBuilder.AddToScheme. - AddToScheme = SchemeBuilder.AddToScheme -) - -// Resource takes an unqualified resource and returns a Group qualified GroupResource. -func Resource(resource string) schema.GroupResource { - return SchemeGroupVersion.WithResource(resource).GroupResource() -} - -// Adds the list of known types to Scheme. -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(SchemeGroupVersion, - &Kamelet{}, - &KameletList{}, - &KameletBinding{}, - &KameletBindingList{}, - ) - metav1.AddToGroupVersion(scheme, SchemeGroupVersion) - return nil -} diff --git a/pkg/apis/camel/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/camel/v1alpha1/zz_generated.deepcopy.go deleted file mode 100644 index e1630d44fe..0000000000 --- a/pkg/apis/camel/v1alpha1/zz_generated.deepcopy.go +++ /dev/null @@ -1,816 +0,0 @@ -//go:build !ignore_autogenerated - -// Code generated by controller-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - "encoding/json" - "github.com/apache/camel-k/v2/pkg/apis/camel/v1" - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/runtime" -) - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *BeanProperties) DeepCopyInto(out *BeanProperties) { - *out = *in - if in.RawMessage != nil { - in, out := &in.RawMessage, &out.RawMessage - *out = make(RawMessage, len(*in)) - copy(*out, *in) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BeanProperties. -func (in *BeanProperties) DeepCopy() *BeanProperties { - if in == nil { - return nil - } - out := new(BeanProperties) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DataTypeReference) DeepCopyInto(out *DataTypeReference) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataTypeReference. -func (in *DataTypeReference) DeepCopy() *DataTypeReference { - if in == nil { - return nil - } - out := new(DataTypeReference) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DataTypeSpec) DeepCopyInto(out *DataTypeSpec) { - *out = *in - if in.Dependencies != nil { - in, out := &in.Dependencies, &out.Dependencies - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Headers != nil { - in, out := &in.Headers, &out.Headers - *out = make(map[string]HeaderSpec, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } - if in.Schema != nil { - in, out := &in.Schema, &out.Schema - *out = new(JSONSchemaProps) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataTypeSpec. -func (in *DataTypeSpec) DeepCopy() *DataTypeSpec { - if in == nil { - return nil - } - out := new(DataTypeSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DataTypesSpec) DeepCopyInto(out *DataTypesSpec) { - *out = *in - if in.Types != nil { - in, out := &in.Types, &out.Types - *out = make(map[string]DataTypeSpec, len(*in)) - for key, val := range *in { - (*out)[key] = *val.DeepCopy() - } - } - if in.Headers != nil { - in, out := &in.Headers, &out.Headers - *out = make(map[string]HeaderSpec, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataTypesSpec. -func (in *DataTypesSpec) DeepCopy() *DataTypesSpec { - if in == nil { - return nil - } - out := new(DataTypesSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Endpoint) DeepCopyInto(out *Endpoint) { - *out = *in - if in.Ref != nil { - in, out := &in.Ref, &out.Ref - *out = new(corev1.ObjectReference) - **out = **in - } - if in.URI != nil { - in, out := &in.URI, &out.URI - *out = new(string) - **out = **in - } - if in.Properties != nil { - in, out := &in.Properties, &out.Properties - *out = new(EndpointProperties) - (*in).DeepCopyInto(*out) - } - if in.Types != nil { - in, out := &in.Types, &out.Types - *out = make(map[TypeSlot]EventTypeSpec, len(*in)) - for key, val := range *in { - (*out)[key] = *val.DeepCopy() - } - } - if in.DataTypes != nil { - in, out := &in.DataTypes, &out.DataTypes - *out = make(map[TypeSlot]DataTypeReference, len(*in)) - for key, val := range *in { - (*out)[key] = val - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Endpoint. -func (in *Endpoint) DeepCopy() *Endpoint { - if in == nil { - return nil - } - out := new(Endpoint) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *EndpointProperties) DeepCopyInto(out *EndpointProperties) { - *out = *in - if in.RawMessage != nil { - in, out := &in.RawMessage, &out.RawMessage - *out = make(RawMessage, len(*in)) - copy(*out, *in) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointProperties. -func (in *EndpointProperties) DeepCopy() *EndpointProperties { - if in == nil { - return nil - } - out := new(EndpointProperties) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ErrorHandlerLog) DeepCopyInto(out *ErrorHandlerLog) { - *out = *in - out.ErrorHandlerNone = in.ErrorHandlerNone - if in.Parameters != nil { - in, out := &in.Parameters, &out.Parameters - *out = new(ErrorHandlerParameters) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ErrorHandlerLog. -func (in *ErrorHandlerLog) DeepCopy() *ErrorHandlerLog { - if in == nil { - return nil - } - out := new(ErrorHandlerLog) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ErrorHandlerNone) DeepCopyInto(out *ErrorHandlerNone) { - *out = *in - out.baseErrorHandler = in.baseErrorHandler -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ErrorHandlerNone. -func (in *ErrorHandlerNone) DeepCopy() *ErrorHandlerNone { - if in == nil { - return nil - } - out := new(ErrorHandlerNone) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ErrorHandlerParameters) DeepCopyInto(out *ErrorHandlerParameters) { - *out = *in - if in.RawMessage != nil { - in, out := &in.RawMessage, &out.RawMessage - *out = make(RawMessage, len(*in)) - copy(*out, *in) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ErrorHandlerParameters. -func (in *ErrorHandlerParameters) DeepCopy() *ErrorHandlerParameters { - if in == nil { - return nil - } - out := new(ErrorHandlerParameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ErrorHandlerSink) DeepCopyInto(out *ErrorHandlerSink) { - *out = *in - in.ErrorHandlerLog.DeepCopyInto(&out.ErrorHandlerLog) - if in.DLCEndpoint != nil { - in, out := &in.DLCEndpoint, &out.DLCEndpoint - *out = new(Endpoint) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ErrorHandlerSink. -func (in *ErrorHandlerSink) DeepCopy() *ErrorHandlerSink { - if in == nil { - return nil - } - out := new(ErrorHandlerSink) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ErrorHandlerSpec) DeepCopyInto(out *ErrorHandlerSpec) { - *out = *in - if in.RawMessage != nil { - in, out := &in.RawMessage, &out.RawMessage - *out = make(RawMessage, len(*in)) - copy(*out, *in) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ErrorHandlerSpec. -func (in *ErrorHandlerSpec) DeepCopy() *ErrorHandlerSpec { - if in == nil { - return nil - } - out := new(ErrorHandlerSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *EventTypeSpec) DeepCopyInto(out *EventTypeSpec) { - *out = *in - if in.Schema != nil { - in, out := &in.Schema, &out.Schema - *out = new(JSONSchemaProps) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventTypeSpec. -func (in *EventTypeSpec) DeepCopy() *EventTypeSpec { - if in == nil { - return nil - } - out := new(EventTypeSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ExternalDocumentation) DeepCopyInto(out *ExternalDocumentation) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDocumentation. -func (in *ExternalDocumentation) DeepCopy() *ExternalDocumentation { - if in == nil { - return nil - } - out := new(ExternalDocumentation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *HeaderSpec) DeepCopyInto(out *HeaderSpec) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HeaderSpec. -func (in *HeaderSpec) DeepCopy() *HeaderSpec { - if in == nil { - return nil - } - out := new(HeaderSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *JSON) DeepCopyInto(out *JSON) { - *out = *in - if in.RawMessage != nil { - in, out := &in.RawMessage, &out.RawMessage - *out = make(RawMessage, len(*in)) - copy(*out, *in) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JSON. -func (in *JSON) DeepCopy() *JSON { - if in == nil { - return nil - } - out := new(JSON) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *JSONSchemaProp) DeepCopyInto(out *JSONSchemaProp) { - *out = *in - if in.Default != nil { - in, out := &in.Default, &out.Default - *out = new(JSON) - (*in).DeepCopyInto(*out) - } - if in.Maximum != nil { - in, out := &in.Maximum, &out.Maximum - *out = new(json.Number) - **out = **in - } - if in.Minimum != nil { - in, out := &in.Minimum, &out.Minimum - *out = new(json.Number) - **out = **in - } - if in.MaxLength != nil { - in, out := &in.MaxLength, &out.MaxLength - *out = new(int64) - **out = **in - } - if in.MinLength != nil { - in, out := &in.MinLength, &out.MinLength - *out = new(int64) - **out = **in - } - if in.MaxItems != nil { - in, out := &in.MaxItems, &out.MaxItems - *out = new(int64) - **out = **in - } - if in.MinItems != nil { - in, out := &in.MinItems, &out.MinItems - *out = new(int64) - **out = **in - } - if in.MaxProperties != nil { - in, out := &in.MaxProperties, &out.MaxProperties - *out = new(int64) - **out = **in - } - if in.MinProperties != nil { - in, out := &in.MinProperties, &out.MinProperties - *out = new(int64) - **out = **in - } - if in.MultipleOf != nil { - in, out := &in.MultipleOf, &out.MultipleOf - *out = new(json.Number) - **out = **in - } - if in.Enum != nil { - in, out := &in.Enum, &out.Enum - *out = make([]JSON, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Example != nil { - in, out := &in.Example, &out.Example - *out = new(JSON) - (*in).DeepCopyInto(*out) - } - if in.XDescriptors != nil { - in, out := &in.XDescriptors, &out.XDescriptors - *out = make([]string, len(*in)) - copy(*out, *in) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JSONSchemaProp. -func (in *JSONSchemaProp) DeepCopy() *JSONSchemaProp { - if in == nil { - return nil - } - out := new(JSONSchemaProp) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *JSONSchemaProps) DeepCopyInto(out *JSONSchemaProps) { - *out = *in - if in.Properties != nil { - in, out := &in.Properties, &out.Properties - *out = make(map[string]JSONSchemaProp, len(*in)) - for key, val := range *in { - (*out)[key] = *val.DeepCopy() - } - } - if in.Required != nil { - in, out := &in.Required, &out.Required - *out = make([]string, len(*in)) - copy(*out, *in) - } - if in.Example != nil { - in, out := &in.Example, &out.Example - *out = new(JSON) - (*in).DeepCopyInto(*out) - } - if in.ExternalDocs != nil { - in, out := &in.ExternalDocs, &out.ExternalDocs - *out = new(ExternalDocumentation) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JSONSchemaProps. -func (in *JSONSchemaProps) DeepCopy() *JSONSchemaProps { - if in == nil { - return nil - } - out := new(JSONSchemaProps) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Kamelet) DeepCopyInto(out *Kamelet) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Kamelet. -func (in *Kamelet) DeepCopy() *Kamelet { - if in == nil { - return nil - } - out := new(Kamelet) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Kamelet) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KameletBinding) DeepCopyInto(out *KameletBinding) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KameletBinding. -func (in *KameletBinding) DeepCopy() *KameletBinding { - if in == nil { - return nil - } - out := new(KameletBinding) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *KameletBinding) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KameletBindingCondition) DeepCopyInto(out *KameletBindingCondition) { - *out = *in - in.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime) - in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) - if in.Pods != nil { - in, out := &in.Pods, &out.Pods - *out = make([]v1.PodCondition, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KameletBindingCondition. -func (in *KameletBindingCondition) DeepCopy() *KameletBindingCondition { - if in == nil { - return nil - } - out := new(KameletBindingCondition) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KameletBindingList) DeepCopyInto(out *KameletBindingList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]KameletBinding, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KameletBindingList. -func (in *KameletBindingList) DeepCopy() *KameletBindingList { - if in == nil { - return nil - } - out := new(KameletBindingList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *KameletBindingList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KameletBindingSpec) DeepCopyInto(out *KameletBindingSpec) { - *out = *in - if in.Integration != nil { - in, out := &in.Integration, &out.Integration - *out = new(v1.IntegrationSpec) - (*in).DeepCopyInto(*out) - } - in.Source.DeepCopyInto(&out.Source) - in.Sink.DeepCopyInto(&out.Sink) - if in.ErrorHandler != nil { - in, out := &in.ErrorHandler, &out.ErrorHandler - *out = new(ErrorHandlerSpec) - (*in).DeepCopyInto(*out) - } - if in.Steps != nil { - in, out := &in.Steps, &out.Steps - *out = make([]Endpoint, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Replicas != nil { - in, out := &in.Replicas, &out.Replicas - *out = new(int32) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KameletBindingSpec. -func (in *KameletBindingSpec) DeepCopy() *KameletBindingSpec { - if in == nil { - return nil - } - out := new(KameletBindingSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KameletBindingStatus) DeepCopyInto(out *KameletBindingStatus) { - *out = *in - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]KameletBindingCondition, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Replicas != nil { - in, out := &in.Replicas, &out.Replicas - *out = new(int32) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KameletBindingStatus. -func (in *KameletBindingStatus) DeepCopy() *KameletBindingStatus { - if in == nil { - return nil - } - out := new(KameletBindingStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KameletCondition) DeepCopyInto(out *KameletCondition) { - *out = *in - in.LastUpdateTime.DeepCopyInto(&out.LastUpdateTime) - in.LastTransitionTime.DeepCopyInto(&out.LastTransitionTime) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KameletCondition. -func (in *KameletCondition) DeepCopy() *KameletCondition { - if in == nil { - return nil - } - out := new(KameletCondition) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KameletList) DeepCopyInto(out *KameletList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Kamelet, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KameletList. -func (in *KameletList) DeepCopy() *KameletList { - if in == nil { - return nil - } - out := new(KameletList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *KameletList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KameletProperty) DeepCopyInto(out *KameletProperty) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KameletProperty. -func (in *KameletProperty) DeepCopy() *KameletProperty { - if in == nil { - return nil - } - out := new(KameletProperty) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KameletSpec) DeepCopyInto(out *KameletSpec) { - *out = *in - if in.Definition != nil { - in, out := &in.Definition, &out.Definition - *out = new(JSONSchemaProps) - (*in).DeepCopyInto(*out) - } - if in.Sources != nil { - in, out := &in.Sources, &out.Sources - *out = make([]v1.SourceSpec, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Template != nil { - in, out := &in.Template, &out.Template - *out = new(Template) - (*in).DeepCopyInto(*out) - } - if in.Types != nil { - in, out := &in.Types, &out.Types - *out = make(map[TypeSlot]EventTypeSpec, len(*in)) - for key, val := range *in { - (*out)[key] = *val.DeepCopy() - } - } - if in.DataTypes != nil { - in, out := &in.DataTypes, &out.DataTypes - *out = make(map[TypeSlot]DataTypesSpec, len(*in)) - for key, val := range *in { - (*out)[key] = *val.DeepCopy() - } - } - if in.Dependencies != nil { - in, out := &in.Dependencies, &out.Dependencies - *out = make([]string, len(*in)) - copy(*out, *in) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KameletSpec. -func (in *KameletSpec) DeepCopy() *KameletSpec { - if in == nil { - return nil - } - out := new(KameletSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *KameletStatus) DeepCopyInto(out *KameletStatus) { - *out = *in - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]KameletCondition, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Properties != nil { - in, out := &in.Properties, &out.Properties - *out = make([]KameletProperty, len(*in)) - copy(*out, *in) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KameletStatus. -func (in *KameletStatus) DeepCopy() *KameletStatus { - if in == nil { - return nil - } - out := new(KameletStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in RawMessage) DeepCopyInto(out *RawMessage) { - { - in := &in - *out = make(RawMessage, len(*in)) - copy(*out, *in) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RawMessage. -func (in RawMessage) DeepCopy() RawMessage { - if in == nil { - return nil - } - out := new(RawMessage) - in.DeepCopyInto(out) - return *out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Template) DeepCopyInto(out *Template) { - *out = *in - if in.RawMessage != nil { - in, out := &in.RawMessage, &out.RawMessage - *out = make(RawMessage, len(*in)) - copy(*out, *in) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Template. -func (in *Template) DeepCopy() *Template { - if in == nil { - return nil - } - out := new(Template) - in.DeepCopyInto(out) - return out -} diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/datatypereference.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/datatypereference.go deleted file mode 100644 index 382f649806..0000000000 --- a/pkg/client/camel/applyconfiguration/camel/v1alpha1/datatypereference.go +++ /dev/null @@ -1,49 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -// DataTypeReferenceApplyConfiguration represents an declarative configuration of the DataTypeReference type for use -// with apply. -type DataTypeReferenceApplyConfiguration struct { - Scheme *string `json:"scheme,omitempty"` - Format *string `json:"format,omitempty"` -} - -// DataTypeReferenceApplyConfiguration constructs an declarative configuration of the DataTypeReference type for use with -// apply. -func DataTypeReference() *DataTypeReferenceApplyConfiguration { - return &DataTypeReferenceApplyConfiguration{} -} - -// WithScheme sets the Scheme field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Scheme field is set to the value of the last call. -func (b *DataTypeReferenceApplyConfiguration) WithScheme(value string) *DataTypeReferenceApplyConfiguration { - b.Scheme = &value - return b -} - -// WithFormat sets the Format field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Format field is set to the value of the last call. -func (b *DataTypeReferenceApplyConfiguration) WithFormat(value string) *DataTypeReferenceApplyConfiguration { - b.Format = &value - return b -} diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/datatypespec.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/datatypespec.go deleted file mode 100644 index f375c32d13..0000000000 --- a/pkg/client/camel/applyconfiguration/camel/v1alpha1/datatypespec.go +++ /dev/null @@ -1,102 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -// DataTypeSpecApplyConfiguration represents an declarative configuration of the DataTypeSpec type for use -// with apply. -type DataTypeSpecApplyConfiguration struct { - Scheme *string `json:"scheme,omitempty"` - Format *string `json:"format,omitempty"` - Description *string `json:"description,omitempty"` - MediaType *string `json:"mediaType,omitempty"` - Dependencies []string `json:"dependencies,omitempty"` - Headers map[string]HeaderSpecApplyConfiguration `json:"headers,omitempty"` - Schema *JSONSchemaPropsApplyConfiguration `json:"schema,omitempty"` -} - -// DataTypeSpecApplyConfiguration constructs an declarative configuration of the DataTypeSpec type for use with -// apply. -func DataTypeSpec() *DataTypeSpecApplyConfiguration { - return &DataTypeSpecApplyConfiguration{} -} - -// WithScheme sets the Scheme field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Scheme field is set to the value of the last call. -func (b *DataTypeSpecApplyConfiguration) WithScheme(value string) *DataTypeSpecApplyConfiguration { - b.Scheme = &value - return b -} - -// WithFormat sets the Format field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Format field is set to the value of the last call. -func (b *DataTypeSpecApplyConfiguration) WithFormat(value string) *DataTypeSpecApplyConfiguration { - b.Format = &value - return b -} - -// WithDescription sets the Description field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Description field is set to the value of the last call. -func (b *DataTypeSpecApplyConfiguration) WithDescription(value string) *DataTypeSpecApplyConfiguration { - b.Description = &value - return b -} - -// WithMediaType sets the MediaType field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the MediaType field is set to the value of the last call. -func (b *DataTypeSpecApplyConfiguration) WithMediaType(value string) *DataTypeSpecApplyConfiguration { - b.MediaType = &value - return b -} - -// WithDependencies adds the given value to the Dependencies field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, values provided by each call will be appended to the Dependencies field. -func (b *DataTypeSpecApplyConfiguration) WithDependencies(values ...string) *DataTypeSpecApplyConfiguration { - for i := range values { - b.Dependencies = append(b.Dependencies, values[i]) - } - return b -} - -// WithHeaders puts the entries into the Headers field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, the entries provided by each call will be put on the Headers field, -// overwriting an existing map entries in Headers field with the same key. -func (b *DataTypeSpecApplyConfiguration) WithHeaders(entries map[string]HeaderSpecApplyConfiguration) *DataTypeSpecApplyConfiguration { - if b.Headers == nil && len(entries) > 0 { - b.Headers = make(map[string]HeaderSpecApplyConfiguration, len(entries)) - } - for k, v := range entries { - b.Headers[k] = v - } - return b -} - -// WithSchema sets the Schema field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Schema field is set to the value of the last call. -func (b *DataTypeSpecApplyConfiguration) WithSchema(value *JSONSchemaPropsApplyConfiguration) *DataTypeSpecApplyConfiguration { - b.Schema = value - return b -} diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/datatypesspec.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/datatypesspec.go deleted file mode 100644 index 9c5730c1f0..0000000000 --- a/pkg/client/camel/applyconfiguration/camel/v1alpha1/datatypesspec.go +++ /dev/null @@ -1,70 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -// DataTypesSpecApplyConfiguration represents an declarative configuration of the DataTypesSpec type for use -// with apply. -type DataTypesSpecApplyConfiguration struct { - Default *string `json:"default,omitempty"` - Types map[string]DataTypeSpecApplyConfiguration `json:"types,omitempty"` - Headers map[string]HeaderSpecApplyConfiguration `json:"headers,omitempty"` -} - -// DataTypesSpecApplyConfiguration constructs an declarative configuration of the DataTypesSpec type for use with -// apply. -func DataTypesSpec() *DataTypesSpecApplyConfiguration { - return &DataTypesSpecApplyConfiguration{} -} - -// WithDefault sets the Default field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Default field is set to the value of the last call. -func (b *DataTypesSpecApplyConfiguration) WithDefault(value string) *DataTypesSpecApplyConfiguration { - b.Default = &value - return b -} - -// WithTypes puts the entries into the Types field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, the entries provided by each call will be put on the Types field, -// overwriting an existing map entries in Types field with the same key. -func (b *DataTypesSpecApplyConfiguration) WithTypes(entries map[string]DataTypeSpecApplyConfiguration) *DataTypesSpecApplyConfiguration { - if b.Types == nil && len(entries) > 0 { - b.Types = make(map[string]DataTypeSpecApplyConfiguration, len(entries)) - } - for k, v := range entries { - b.Types[k] = v - } - return b -} - -// WithHeaders puts the entries into the Headers field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, the entries provided by each call will be put on the Headers field, -// overwriting an existing map entries in Headers field with the same key. -func (b *DataTypesSpecApplyConfiguration) WithHeaders(entries map[string]HeaderSpecApplyConfiguration) *DataTypesSpecApplyConfiguration { - if b.Headers == nil && len(entries) > 0 { - b.Headers = make(map[string]HeaderSpecApplyConfiguration, len(entries)) - } - for k, v := range entries { - b.Headers[k] = v - } - return b -} diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/endpoint.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/endpoint.go deleted file mode 100644 index 2877f280bb..0000000000 --- a/pkg/client/camel/applyconfiguration/camel/v1alpha1/endpoint.go +++ /dev/null @@ -1,93 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - camelv1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" - v1 "k8s.io/api/core/v1" -) - -// EndpointApplyConfiguration represents an declarative configuration of the Endpoint type for use -// with apply. -type EndpointApplyConfiguration struct { - Ref *v1.ObjectReference `json:"ref,omitempty"` - URI *string `json:"uri,omitempty"` - Properties *EndpointPropertiesApplyConfiguration `json:"properties,omitempty"` - Types map[camelv1alpha1.TypeSlot]EventTypeSpecApplyConfiguration `json:"types,omitempty"` - DataTypes map[camelv1alpha1.TypeSlot]DataTypeReferenceApplyConfiguration `json:"dataTypes,omitempty"` -} - -// EndpointApplyConfiguration constructs an declarative configuration of the Endpoint type for use with -// apply. -func Endpoint() *EndpointApplyConfiguration { - return &EndpointApplyConfiguration{} -} - -// WithRef sets the Ref field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Ref field is set to the value of the last call. -func (b *EndpointApplyConfiguration) WithRef(value v1.ObjectReference) *EndpointApplyConfiguration { - b.Ref = &value - return b -} - -// WithURI sets the URI field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the URI field is set to the value of the last call. -func (b *EndpointApplyConfiguration) WithURI(value string) *EndpointApplyConfiguration { - b.URI = &value - return b -} - -// WithProperties sets the Properties field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Properties field is set to the value of the last call. -func (b *EndpointApplyConfiguration) WithProperties(value *EndpointPropertiesApplyConfiguration) *EndpointApplyConfiguration { - b.Properties = value - return b -} - -// WithTypes puts the entries into the Types field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, the entries provided by each call will be put on the Types field, -// overwriting an existing map entries in Types field with the same key. -func (b *EndpointApplyConfiguration) WithTypes(entries map[camelv1alpha1.TypeSlot]EventTypeSpecApplyConfiguration) *EndpointApplyConfiguration { - if b.Types == nil && len(entries) > 0 { - b.Types = make(map[camelv1alpha1.TypeSlot]EventTypeSpecApplyConfiguration, len(entries)) - } - for k, v := range entries { - b.Types[k] = v - } - return b -} - -// WithDataTypes puts the entries into the DataTypes field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, the entries provided by each call will be put on the DataTypes field, -// overwriting an existing map entries in DataTypes field with the same key. -func (b *EndpointApplyConfiguration) WithDataTypes(entries map[camelv1alpha1.TypeSlot]DataTypeReferenceApplyConfiguration) *EndpointApplyConfiguration { - if b.DataTypes == nil && len(entries) > 0 { - b.DataTypes = make(map[camelv1alpha1.TypeSlot]DataTypeReferenceApplyConfiguration, len(entries)) - } - for k, v := range entries { - b.DataTypes[k] = v - } - return b -} diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/endpointproperties.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/endpointproperties.go deleted file mode 100644 index 85f141d2bf..0000000000 --- a/pkg/client/camel/applyconfiguration/camel/v1alpha1/endpointproperties.go +++ /dev/null @@ -1,36 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - v1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" -) - -// EndpointPropertiesApplyConfiguration represents an declarative configuration of the EndpointProperties type for use -// with apply. -type EndpointPropertiesApplyConfiguration struct { - v1alpha1.RawMessage `json:",inline"` -} - -// EndpointPropertiesApplyConfiguration constructs an declarative configuration of the EndpointProperties type for use with -// apply. -func EndpointProperties() *EndpointPropertiesApplyConfiguration { - return &EndpointPropertiesApplyConfiguration{} -} diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/errorhandlerspec.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/errorhandlerspec.go deleted file mode 100644 index f79a8ac91c..0000000000 --- a/pkg/client/camel/applyconfiguration/camel/v1alpha1/errorhandlerspec.go +++ /dev/null @@ -1,36 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - v1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" -) - -// ErrorHandlerSpecApplyConfiguration represents an declarative configuration of the ErrorHandlerSpec type for use -// with apply. -type ErrorHandlerSpecApplyConfiguration struct { - v1alpha1.RawMessage `json:",omitempty,inline"` -} - -// ErrorHandlerSpecApplyConfiguration constructs an declarative configuration of the ErrorHandlerSpec type for use with -// apply. -func ErrorHandlerSpec() *ErrorHandlerSpecApplyConfiguration { - return &ErrorHandlerSpecApplyConfiguration{} -} diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/eventtypespec.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/eventtypespec.go deleted file mode 100644 index 3255f77be5..0000000000 --- a/pkg/client/camel/applyconfiguration/camel/v1alpha1/eventtypespec.go +++ /dev/null @@ -1,49 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -// EventTypeSpecApplyConfiguration represents an declarative configuration of the EventTypeSpec type for use -// with apply. -type EventTypeSpecApplyConfiguration struct { - MediaType *string `json:"mediaType,omitempty"` - Schema *JSONSchemaPropsApplyConfiguration `json:"schema,omitempty"` -} - -// EventTypeSpecApplyConfiguration constructs an declarative configuration of the EventTypeSpec type for use with -// apply. -func EventTypeSpec() *EventTypeSpecApplyConfiguration { - return &EventTypeSpecApplyConfiguration{} -} - -// WithMediaType sets the MediaType field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the MediaType field is set to the value of the last call. -func (b *EventTypeSpecApplyConfiguration) WithMediaType(value string) *EventTypeSpecApplyConfiguration { - b.MediaType = &value - return b -} - -// WithSchema sets the Schema field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Schema field is set to the value of the last call. -func (b *EventTypeSpecApplyConfiguration) WithSchema(value *JSONSchemaPropsApplyConfiguration) *EventTypeSpecApplyConfiguration { - b.Schema = value - return b -} diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/externaldocumentation.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/externaldocumentation.go deleted file mode 100644 index 35b5f1d5d5..0000000000 --- a/pkg/client/camel/applyconfiguration/camel/v1alpha1/externaldocumentation.go +++ /dev/null @@ -1,49 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -// ExternalDocumentationApplyConfiguration represents an declarative configuration of the ExternalDocumentation type for use -// with apply. -type ExternalDocumentationApplyConfiguration struct { - Description *string `json:"description,omitempty"` - URL *string `json:"url,omitempty"` -} - -// ExternalDocumentationApplyConfiguration constructs an declarative configuration of the ExternalDocumentation type for use with -// apply. -func ExternalDocumentation() *ExternalDocumentationApplyConfiguration { - return &ExternalDocumentationApplyConfiguration{} -} - -// WithDescription sets the Description field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Description field is set to the value of the last call. -func (b *ExternalDocumentationApplyConfiguration) WithDescription(value string) *ExternalDocumentationApplyConfiguration { - b.Description = &value - return b -} - -// WithURL sets the URL field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the URL field is set to the value of the last call. -func (b *ExternalDocumentationApplyConfiguration) WithURL(value string) *ExternalDocumentationApplyConfiguration { - b.URL = &value - return b -} diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/headerspec.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/headerspec.go deleted file mode 100644 index 45cbf17c0c..0000000000 --- a/pkg/client/camel/applyconfiguration/camel/v1alpha1/headerspec.go +++ /dev/null @@ -1,76 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -// HeaderSpecApplyConfiguration represents an declarative configuration of the HeaderSpec type for use -// with apply. -type HeaderSpecApplyConfiguration struct { - Type *string `json:"type,omitempty"` - Title *string `json:"title,omitempty"` - Description *string `json:"description,omitempty"` - Required *bool `json:"required,omitempty"` - Default *string `json:"default,omitempty"` -} - -// HeaderSpecApplyConfiguration constructs an declarative configuration of the HeaderSpec type for use with -// apply. -func HeaderSpec() *HeaderSpecApplyConfiguration { - return &HeaderSpecApplyConfiguration{} -} - -// WithType sets the Type field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Type field is set to the value of the last call. -func (b *HeaderSpecApplyConfiguration) WithType(value string) *HeaderSpecApplyConfiguration { - b.Type = &value - return b -} - -// WithTitle sets the Title field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Title field is set to the value of the last call. -func (b *HeaderSpecApplyConfiguration) WithTitle(value string) *HeaderSpecApplyConfiguration { - b.Title = &value - return b -} - -// WithDescription sets the Description field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Description field is set to the value of the last call. -func (b *HeaderSpecApplyConfiguration) WithDescription(value string) *HeaderSpecApplyConfiguration { - b.Description = &value - return b -} - -// WithRequired sets the Required field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Required field is set to the value of the last call. -func (b *HeaderSpecApplyConfiguration) WithRequired(value bool) *HeaderSpecApplyConfiguration { - b.Required = &value - return b -} - -// WithDefault sets the Default field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Default field is set to the value of the last call. -func (b *HeaderSpecApplyConfiguration) WithDefault(value string) *HeaderSpecApplyConfiguration { - b.Default = &value - return b -} diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/json.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/json.go deleted file mode 100644 index 0345d2a78c..0000000000 --- a/pkg/client/camel/applyconfiguration/camel/v1alpha1/json.go +++ /dev/null @@ -1,36 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - v1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" -) - -// JSONApplyConfiguration represents an declarative configuration of the JSON type for use -// with apply. -type JSONApplyConfiguration struct { - v1alpha1.RawMessage `json:",inline"` -} - -// JSONApplyConfiguration constructs an declarative configuration of the JSON type for use with -// apply. -func JSON() *JSONApplyConfiguration { - return &JSONApplyConfiguration{} -} diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/jsonschemaprop.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/jsonschemaprop.go deleted file mode 100644 index 68aee96a46..0000000000 --- a/pkg/client/camel/applyconfiguration/camel/v1alpha1/jsonschemaprop.go +++ /dev/null @@ -1,258 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - json "encoding/json" -) - -// JSONSchemaPropApplyConfiguration represents an declarative configuration of the JSONSchemaProp type for use -// with apply. -type JSONSchemaPropApplyConfiguration struct { - ID *string `json:"id,omitempty"` - Deprecated *bool `json:"deprecated,omitempty"` - Description *string `json:"description,omitempty"` - Type *string `json:"type,omitempty"` - Format *string `json:"format,omitempty"` - Title *string `json:"title,omitempty"` - Default *JSONApplyConfiguration `json:"default,omitempty"` - Maximum *json.Number `json:"maximum,omitempty"` - ExclusiveMaximum *bool `json:"exclusiveMaximum,omitempty"` - Minimum *json.Number `json:"minimum,omitempty"` - ExclusiveMinimum *bool `json:"exclusiveMinimum,omitempty"` - MaxLength *int64 `json:"maxLength,omitempty"` - MinLength *int64 `json:"minLength,omitempty"` - Pattern *string `json:"pattern,omitempty"` - MaxItems *int64 `json:"maxItems,omitempty"` - MinItems *int64 `json:"minItems,omitempty"` - UniqueItems *bool `json:"uniqueItems,omitempty"` - MaxProperties *int64 `json:"maxProperties,omitempty"` - MinProperties *int64 `json:"minProperties,omitempty"` - MultipleOf *json.Number `json:"multipleOf,omitempty"` - Enum []JSONApplyConfiguration `json:"enum,omitempty"` - Example *JSONApplyConfiguration `json:"example,omitempty"` - Nullable *bool `json:"nullable,omitempty"` - XDescriptors []string `json:"x-descriptors,omitempty"` -} - -// JSONSchemaPropApplyConfiguration constructs an declarative configuration of the JSONSchemaProp type for use with -// apply. -func JSONSchemaProp() *JSONSchemaPropApplyConfiguration { - return &JSONSchemaPropApplyConfiguration{} -} - -// WithID sets the ID field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the ID field is set to the value of the last call. -func (b *JSONSchemaPropApplyConfiguration) WithID(value string) *JSONSchemaPropApplyConfiguration { - b.ID = &value - return b -} - -// WithDeprecated sets the Deprecated field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Deprecated field is set to the value of the last call. -func (b *JSONSchemaPropApplyConfiguration) WithDeprecated(value bool) *JSONSchemaPropApplyConfiguration { - b.Deprecated = &value - return b -} - -// WithDescription sets the Description field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Description field is set to the value of the last call. -func (b *JSONSchemaPropApplyConfiguration) WithDescription(value string) *JSONSchemaPropApplyConfiguration { - b.Description = &value - return b -} - -// WithType sets the Type field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Type field is set to the value of the last call. -func (b *JSONSchemaPropApplyConfiguration) WithType(value string) *JSONSchemaPropApplyConfiguration { - b.Type = &value - return b -} - -// WithFormat sets the Format field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Format field is set to the value of the last call. -func (b *JSONSchemaPropApplyConfiguration) WithFormat(value string) *JSONSchemaPropApplyConfiguration { - b.Format = &value - return b -} - -// WithTitle sets the Title field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Title field is set to the value of the last call. -func (b *JSONSchemaPropApplyConfiguration) WithTitle(value string) *JSONSchemaPropApplyConfiguration { - b.Title = &value - return b -} - -// WithDefault sets the Default field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Default field is set to the value of the last call. -func (b *JSONSchemaPropApplyConfiguration) WithDefault(value *JSONApplyConfiguration) *JSONSchemaPropApplyConfiguration { - b.Default = value - return b -} - -// WithMaximum sets the Maximum field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Maximum field is set to the value of the last call. -func (b *JSONSchemaPropApplyConfiguration) WithMaximum(value json.Number) *JSONSchemaPropApplyConfiguration { - b.Maximum = &value - return b -} - -// WithExclusiveMaximum sets the ExclusiveMaximum field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the ExclusiveMaximum field is set to the value of the last call. -func (b *JSONSchemaPropApplyConfiguration) WithExclusiveMaximum(value bool) *JSONSchemaPropApplyConfiguration { - b.ExclusiveMaximum = &value - return b -} - -// WithMinimum sets the Minimum field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Minimum field is set to the value of the last call. -func (b *JSONSchemaPropApplyConfiguration) WithMinimum(value json.Number) *JSONSchemaPropApplyConfiguration { - b.Minimum = &value - return b -} - -// WithExclusiveMinimum sets the ExclusiveMinimum field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the ExclusiveMinimum field is set to the value of the last call. -func (b *JSONSchemaPropApplyConfiguration) WithExclusiveMinimum(value bool) *JSONSchemaPropApplyConfiguration { - b.ExclusiveMinimum = &value - return b -} - -// WithMaxLength sets the MaxLength field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the MaxLength field is set to the value of the last call. -func (b *JSONSchemaPropApplyConfiguration) WithMaxLength(value int64) *JSONSchemaPropApplyConfiguration { - b.MaxLength = &value - return b -} - -// WithMinLength sets the MinLength field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the MinLength field is set to the value of the last call. -func (b *JSONSchemaPropApplyConfiguration) WithMinLength(value int64) *JSONSchemaPropApplyConfiguration { - b.MinLength = &value - return b -} - -// WithPattern sets the Pattern field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Pattern field is set to the value of the last call. -func (b *JSONSchemaPropApplyConfiguration) WithPattern(value string) *JSONSchemaPropApplyConfiguration { - b.Pattern = &value - return b -} - -// WithMaxItems sets the MaxItems field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the MaxItems field is set to the value of the last call. -func (b *JSONSchemaPropApplyConfiguration) WithMaxItems(value int64) *JSONSchemaPropApplyConfiguration { - b.MaxItems = &value - return b -} - -// WithMinItems sets the MinItems field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the MinItems field is set to the value of the last call. -func (b *JSONSchemaPropApplyConfiguration) WithMinItems(value int64) *JSONSchemaPropApplyConfiguration { - b.MinItems = &value - return b -} - -// WithUniqueItems sets the UniqueItems field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the UniqueItems field is set to the value of the last call. -func (b *JSONSchemaPropApplyConfiguration) WithUniqueItems(value bool) *JSONSchemaPropApplyConfiguration { - b.UniqueItems = &value - return b -} - -// WithMaxProperties sets the MaxProperties field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the MaxProperties field is set to the value of the last call. -func (b *JSONSchemaPropApplyConfiguration) WithMaxProperties(value int64) *JSONSchemaPropApplyConfiguration { - b.MaxProperties = &value - return b -} - -// WithMinProperties sets the MinProperties field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the MinProperties field is set to the value of the last call. -func (b *JSONSchemaPropApplyConfiguration) WithMinProperties(value int64) *JSONSchemaPropApplyConfiguration { - b.MinProperties = &value - return b -} - -// WithMultipleOf sets the MultipleOf field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the MultipleOf field is set to the value of the last call. -func (b *JSONSchemaPropApplyConfiguration) WithMultipleOf(value json.Number) *JSONSchemaPropApplyConfiguration { - b.MultipleOf = &value - return b -} - -// WithEnum adds the given value to the Enum field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, values provided by each call will be appended to the Enum field. -func (b *JSONSchemaPropApplyConfiguration) WithEnum(values ...*JSONApplyConfiguration) *JSONSchemaPropApplyConfiguration { - for i := range values { - if values[i] == nil { - panic("nil value passed to WithEnum") - } - b.Enum = append(b.Enum, *values[i]) - } - return b -} - -// WithExample sets the Example field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Example field is set to the value of the last call. -func (b *JSONSchemaPropApplyConfiguration) WithExample(value *JSONApplyConfiguration) *JSONSchemaPropApplyConfiguration { - b.Example = value - return b -} - -// WithNullable sets the Nullable field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Nullable field is set to the value of the last call. -func (b *JSONSchemaPropApplyConfiguration) WithNullable(value bool) *JSONSchemaPropApplyConfiguration { - b.Nullable = &value - return b -} - -// WithXDescriptors adds the given value to the XDescriptors field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, values provided by each call will be appended to the XDescriptors field. -func (b *JSONSchemaPropApplyConfiguration) WithXDescriptors(values ...string) *JSONSchemaPropApplyConfiguration { - for i := range values { - b.XDescriptors = append(b.XDescriptors, values[i]) - } - return b -} diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/jsonschemaprops.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/jsonschemaprops.go deleted file mode 100644 index 8f0992af9f..0000000000 --- a/pkg/client/camel/applyconfiguration/camel/v1alpha1/jsonschemaprops.go +++ /dev/null @@ -1,124 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - camelv1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" -) - -// JSONSchemaPropsApplyConfiguration represents an declarative configuration of the JSONSchemaProps type for use -// with apply. -type JSONSchemaPropsApplyConfiguration struct { - ID *string `json:"id,omitempty"` - Description *string `json:"description,omitempty"` - Title *string `json:"title,omitempty"` - Properties map[string]JSONSchemaPropApplyConfiguration `json:"properties,omitempty"` - Required []string `json:"required,omitempty"` - Example *JSONApplyConfiguration `json:"example,omitempty"` - ExternalDocs *ExternalDocumentationApplyConfiguration `json:"externalDocs,omitempty"` - Schema *camelv1alpha1.JSONSchemaURL `json:"$schema,omitempty"` - Type *string `json:"type,omitempty"` -} - -// JSONSchemaPropsApplyConfiguration constructs an declarative configuration of the JSONSchemaProps type for use with -// apply. -func JSONSchemaProps() *JSONSchemaPropsApplyConfiguration { - return &JSONSchemaPropsApplyConfiguration{} -} - -// WithID sets the ID field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the ID field is set to the value of the last call. -func (b *JSONSchemaPropsApplyConfiguration) WithID(value string) *JSONSchemaPropsApplyConfiguration { - b.ID = &value - return b -} - -// WithDescription sets the Description field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Description field is set to the value of the last call. -func (b *JSONSchemaPropsApplyConfiguration) WithDescription(value string) *JSONSchemaPropsApplyConfiguration { - b.Description = &value - return b -} - -// WithTitle sets the Title field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Title field is set to the value of the last call. -func (b *JSONSchemaPropsApplyConfiguration) WithTitle(value string) *JSONSchemaPropsApplyConfiguration { - b.Title = &value - return b -} - -// WithProperties puts the entries into the Properties field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, the entries provided by each call will be put on the Properties field, -// overwriting an existing map entries in Properties field with the same key. -func (b *JSONSchemaPropsApplyConfiguration) WithProperties(entries map[string]JSONSchemaPropApplyConfiguration) *JSONSchemaPropsApplyConfiguration { - if b.Properties == nil && len(entries) > 0 { - b.Properties = make(map[string]JSONSchemaPropApplyConfiguration, len(entries)) - } - for k, v := range entries { - b.Properties[k] = v - } - return b -} - -// WithRequired adds the given value to the Required field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, values provided by each call will be appended to the Required field. -func (b *JSONSchemaPropsApplyConfiguration) WithRequired(values ...string) *JSONSchemaPropsApplyConfiguration { - for i := range values { - b.Required = append(b.Required, values[i]) - } - return b -} - -// WithExample sets the Example field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Example field is set to the value of the last call. -func (b *JSONSchemaPropsApplyConfiguration) WithExample(value *JSONApplyConfiguration) *JSONSchemaPropsApplyConfiguration { - b.Example = value - return b -} - -// WithExternalDocs sets the ExternalDocs field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the ExternalDocs field is set to the value of the last call. -func (b *JSONSchemaPropsApplyConfiguration) WithExternalDocs(value *ExternalDocumentationApplyConfiguration) *JSONSchemaPropsApplyConfiguration { - b.ExternalDocs = value - return b -} - -// WithSchema sets the Schema field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Schema field is set to the value of the last call. -func (b *JSONSchemaPropsApplyConfiguration) WithSchema(value camelv1alpha1.JSONSchemaURL) *JSONSchemaPropsApplyConfiguration { - b.Schema = &value - return b -} - -// WithType sets the Type field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Type field is set to the value of the last call. -func (b *JSONSchemaPropsApplyConfiguration) WithType(value string) *JSONSchemaPropsApplyConfiguration { - b.Type = &value - return b -} diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/kamelet.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/kamelet.go deleted file mode 100644 index f9870e1ca3..0000000000 --- a/pkg/client/camel/applyconfiguration/camel/v1alpha1/kamelet.go +++ /dev/null @@ -1,220 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - v1 "k8s.io/client-go/applyconfigurations/meta/v1" -) - -// KameletApplyConfiguration represents an declarative configuration of the Kamelet type for use -// with apply. -type KameletApplyConfiguration struct { - v1.TypeMetaApplyConfiguration `json:",inline"` - *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` - Spec *KameletSpecApplyConfiguration `json:"spec,omitempty"` - Status *KameletStatusApplyConfiguration `json:"status,omitempty"` -} - -// Kamelet constructs an declarative configuration of the Kamelet type for use with -// apply. -func Kamelet(name, namespace string) *KameletApplyConfiguration { - b := &KameletApplyConfiguration{} - b.WithName(name) - b.WithNamespace(namespace) - b.WithKind("Kamelet") - b.WithAPIVersion("camel.apache.org/v1alpha1") - return b -} - -// WithKind sets the Kind field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Kind field is set to the value of the last call. -func (b *KameletApplyConfiguration) WithKind(value string) *KameletApplyConfiguration { - b.Kind = &value - return b -} - -// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the APIVersion field is set to the value of the last call. -func (b *KameletApplyConfiguration) WithAPIVersion(value string) *KameletApplyConfiguration { - b.APIVersion = &value - return b -} - -// WithName sets the Name field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Name field is set to the value of the last call. -func (b *KameletApplyConfiguration) WithName(value string) *KameletApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.Name = &value - return b -} - -// WithGenerateName sets the GenerateName field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the GenerateName field is set to the value of the last call. -func (b *KameletApplyConfiguration) WithGenerateName(value string) *KameletApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.GenerateName = &value - return b -} - -// WithNamespace sets the Namespace field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Namespace field is set to the value of the last call. -func (b *KameletApplyConfiguration) WithNamespace(value string) *KameletApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.Namespace = &value - return b -} - -// WithUID sets the UID field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the UID field is set to the value of the last call. -func (b *KameletApplyConfiguration) WithUID(value types.UID) *KameletApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.UID = &value - return b -} - -// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the ResourceVersion field is set to the value of the last call. -func (b *KameletApplyConfiguration) WithResourceVersion(value string) *KameletApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.ResourceVersion = &value - return b -} - -// WithGeneration sets the Generation field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Generation field is set to the value of the last call. -func (b *KameletApplyConfiguration) WithGeneration(value int64) *KameletApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.Generation = &value - return b -} - -// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the CreationTimestamp field is set to the value of the last call. -func (b *KameletApplyConfiguration) WithCreationTimestamp(value metav1.Time) *KameletApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.CreationTimestamp = &value - return b -} - -// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the DeletionTimestamp field is set to the value of the last call. -func (b *KameletApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *KameletApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.DeletionTimestamp = &value - return b -} - -// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. -func (b *KameletApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *KameletApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.DeletionGracePeriodSeconds = &value - return b -} - -// WithLabels puts the entries into the Labels field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, the entries provided by each call will be put on the Labels field, -// overwriting an existing map entries in Labels field with the same key. -func (b *KameletApplyConfiguration) WithLabels(entries map[string]string) *KameletApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - if b.Labels == nil && len(entries) > 0 { - b.Labels = make(map[string]string, len(entries)) - } - for k, v := range entries { - b.Labels[k] = v - } - return b -} - -// WithAnnotations puts the entries into the Annotations field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, the entries provided by each call will be put on the Annotations field, -// overwriting an existing map entries in Annotations field with the same key. -func (b *KameletApplyConfiguration) WithAnnotations(entries map[string]string) *KameletApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - if b.Annotations == nil && len(entries) > 0 { - b.Annotations = make(map[string]string, len(entries)) - } - for k, v := range entries { - b.Annotations[k] = v - } - return b -} - -// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, values provided by each call will be appended to the OwnerReferences field. -func (b *KameletApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *KameletApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - for i := range values { - if values[i] == nil { - panic("nil value passed to WithOwnerReferences") - } - b.OwnerReferences = append(b.OwnerReferences, *values[i]) - } - return b -} - -// WithFinalizers adds the given value to the Finalizers field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, values provided by each call will be appended to the Finalizers field. -func (b *KameletApplyConfiguration) WithFinalizers(values ...string) *KameletApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - for i := range values { - b.Finalizers = append(b.Finalizers, values[i]) - } - return b -} - -func (b *KameletApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { - if b.ObjectMetaApplyConfiguration == nil { - b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} - } -} - -// WithSpec sets the Spec field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Spec field is set to the value of the last call. -func (b *KameletApplyConfiguration) WithSpec(value *KameletSpecApplyConfiguration) *KameletApplyConfiguration { - b.Spec = value - return b -} - -// WithStatus sets the Status field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Status field is set to the value of the last call. -func (b *KameletApplyConfiguration) WithStatus(value *KameletStatusApplyConfiguration) *KameletApplyConfiguration { - b.Status = value - return b -} diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletbinding.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletbinding.go deleted file mode 100644 index 794bed9d52..0000000000 --- a/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletbinding.go +++ /dev/null @@ -1,220 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - v1 "k8s.io/client-go/applyconfigurations/meta/v1" -) - -// KameletBindingApplyConfiguration represents an declarative configuration of the KameletBinding type for use -// with apply. -type KameletBindingApplyConfiguration struct { - v1.TypeMetaApplyConfiguration `json:",inline"` - *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` - Spec *KameletBindingSpecApplyConfiguration `json:"spec,omitempty"` - Status *KameletBindingStatusApplyConfiguration `json:"status,omitempty"` -} - -// KameletBinding constructs an declarative configuration of the KameletBinding type for use with -// apply. -func KameletBinding(name, namespace string) *KameletBindingApplyConfiguration { - b := &KameletBindingApplyConfiguration{} - b.WithName(name) - b.WithNamespace(namespace) - b.WithKind("KameletBinding") - b.WithAPIVersion("camel.apache.org/v1alpha1") - return b -} - -// WithKind sets the Kind field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Kind field is set to the value of the last call. -func (b *KameletBindingApplyConfiguration) WithKind(value string) *KameletBindingApplyConfiguration { - b.Kind = &value - return b -} - -// WithAPIVersion sets the APIVersion field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the APIVersion field is set to the value of the last call. -func (b *KameletBindingApplyConfiguration) WithAPIVersion(value string) *KameletBindingApplyConfiguration { - b.APIVersion = &value - return b -} - -// WithName sets the Name field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Name field is set to the value of the last call. -func (b *KameletBindingApplyConfiguration) WithName(value string) *KameletBindingApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.Name = &value - return b -} - -// WithGenerateName sets the GenerateName field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the GenerateName field is set to the value of the last call. -func (b *KameletBindingApplyConfiguration) WithGenerateName(value string) *KameletBindingApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.GenerateName = &value - return b -} - -// WithNamespace sets the Namespace field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Namespace field is set to the value of the last call. -func (b *KameletBindingApplyConfiguration) WithNamespace(value string) *KameletBindingApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.Namespace = &value - return b -} - -// WithUID sets the UID field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the UID field is set to the value of the last call. -func (b *KameletBindingApplyConfiguration) WithUID(value types.UID) *KameletBindingApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.UID = &value - return b -} - -// WithResourceVersion sets the ResourceVersion field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the ResourceVersion field is set to the value of the last call. -func (b *KameletBindingApplyConfiguration) WithResourceVersion(value string) *KameletBindingApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.ResourceVersion = &value - return b -} - -// WithGeneration sets the Generation field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Generation field is set to the value of the last call. -func (b *KameletBindingApplyConfiguration) WithGeneration(value int64) *KameletBindingApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.Generation = &value - return b -} - -// WithCreationTimestamp sets the CreationTimestamp field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the CreationTimestamp field is set to the value of the last call. -func (b *KameletBindingApplyConfiguration) WithCreationTimestamp(value metav1.Time) *KameletBindingApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.CreationTimestamp = &value - return b -} - -// WithDeletionTimestamp sets the DeletionTimestamp field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the DeletionTimestamp field is set to the value of the last call. -func (b *KameletBindingApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *KameletBindingApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.DeletionTimestamp = &value - return b -} - -// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the DeletionGracePeriodSeconds field is set to the value of the last call. -func (b *KameletBindingApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *KameletBindingApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - b.DeletionGracePeriodSeconds = &value - return b -} - -// WithLabels puts the entries into the Labels field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, the entries provided by each call will be put on the Labels field, -// overwriting an existing map entries in Labels field with the same key. -func (b *KameletBindingApplyConfiguration) WithLabels(entries map[string]string) *KameletBindingApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - if b.Labels == nil && len(entries) > 0 { - b.Labels = make(map[string]string, len(entries)) - } - for k, v := range entries { - b.Labels[k] = v - } - return b -} - -// WithAnnotations puts the entries into the Annotations field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, the entries provided by each call will be put on the Annotations field, -// overwriting an existing map entries in Annotations field with the same key. -func (b *KameletBindingApplyConfiguration) WithAnnotations(entries map[string]string) *KameletBindingApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - if b.Annotations == nil && len(entries) > 0 { - b.Annotations = make(map[string]string, len(entries)) - } - for k, v := range entries { - b.Annotations[k] = v - } - return b -} - -// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, values provided by each call will be appended to the OwnerReferences field. -func (b *KameletBindingApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *KameletBindingApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - for i := range values { - if values[i] == nil { - panic("nil value passed to WithOwnerReferences") - } - b.OwnerReferences = append(b.OwnerReferences, *values[i]) - } - return b -} - -// WithFinalizers adds the given value to the Finalizers field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, values provided by each call will be appended to the Finalizers field. -func (b *KameletBindingApplyConfiguration) WithFinalizers(values ...string) *KameletBindingApplyConfiguration { - b.ensureObjectMetaApplyConfigurationExists() - for i := range values { - b.Finalizers = append(b.Finalizers, values[i]) - } - return b -} - -func (b *KameletBindingApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { - if b.ObjectMetaApplyConfiguration == nil { - b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} - } -} - -// WithSpec sets the Spec field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Spec field is set to the value of the last call. -func (b *KameletBindingApplyConfiguration) WithSpec(value *KameletBindingSpecApplyConfiguration) *KameletBindingApplyConfiguration { - b.Spec = value - return b -} - -// WithStatus sets the Status field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Status field is set to the value of the last call. -func (b *KameletBindingApplyConfiguration) WithStatus(value *KameletBindingStatusApplyConfiguration) *KameletBindingApplyConfiguration { - b.Status = value - return b -} diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletbindingcondition.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletbindingcondition.go deleted file mode 100644 index 68fb4e89eb..0000000000 --- a/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletbindingcondition.go +++ /dev/null @@ -1,106 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - v1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" - camelv1 "github.com/apache/camel-k/v2/pkg/client/camel/applyconfiguration/camel/v1" - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// KameletBindingConditionApplyConfiguration represents an declarative configuration of the KameletBindingCondition type for use -// with apply. -type KameletBindingConditionApplyConfiguration struct { - Type *v1alpha1.KameletBindingConditionType `json:"type,omitempty"` - Status *v1.ConditionStatus `json:"status,omitempty"` - LastUpdateTime *metav1.Time `json:"lastUpdateTime,omitempty"` - LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` - Reason *string `json:"reason,omitempty"` - Message *string `json:"message,omitempty"` - Pods []camelv1.PodConditionApplyConfiguration `json:"pods,omitempty"` -} - -// KameletBindingConditionApplyConfiguration constructs an declarative configuration of the KameletBindingCondition type for use with -// apply. -func KameletBindingCondition() *KameletBindingConditionApplyConfiguration { - return &KameletBindingConditionApplyConfiguration{} -} - -// WithType sets the Type field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Type field is set to the value of the last call. -func (b *KameletBindingConditionApplyConfiguration) WithType(value v1alpha1.KameletBindingConditionType) *KameletBindingConditionApplyConfiguration { - b.Type = &value - return b -} - -// WithStatus sets the Status field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Status field is set to the value of the last call. -func (b *KameletBindingConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *KameletBindingConditionApplyConfiguration { - b.Status = &value - return b -} - -// WithLastUpdateTime sets the LastUpdateTime field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the LastUpdateTime field is set to the value of the last call. -func (b *KameletBindingConditionApplyConfiguration) WithLastUpdateTime(value metav1.Time) *KameletBindingConditionApplyConfiguration { - b.LastUpdateTime = &value - return b -} - -// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the LastTransitionTime field is set to the value of the last call. -func (b *KameletBindingConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *KameletBindingConditionApplyConfiguration { - b.LastTransitionTime = &value - return b -} - -// WithReason sets the Reason field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Reason field is set to the value of the last call. -func (b *KameletBindingConditionApplyConfiguration) WithReason(value string) *KameletBindingConditionApplyConfiguration { - b.Reason = &value - return b -} - -// WithMessage sets the Message field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Message field is set to the value of the last call. -func (b *KameletBindingConditionApplyConfiguration) WithMessage(value string) *KameletBindingConditionApplyConfiguration { - b.Message = &value - return b -} - -// WithPods adds the given value to the Pods field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, values provided by each call will be appended to the Pods field. -func (b *KameletBindingConditionApplyConfiguration) WithPods(values ...*camelv1.PodConditionApplyConfiguration) *KameletBindingConditionApplyConfiguration { - for i := range values { - if values[i] == nil { - panic("nil value passed to WithPods") - } - b.Pods = append(b.Pods, *values[i]) - } - return b -} diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletbindingspec.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletbindingspec.go deleted file mode 100644 index 69f0676985..0000000000 --- a/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletbindingspec.go +++ /dev/null @@ -1,103 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - v1 "github.com/apache/camel-k/v2/pkg/client/camel/applyconfiguration/camel/v1" -) - -// KameletBindingSpecApplyConfiguration represents an declarative configuration of the KameletBindingSpec type for use -// with apply. -type KameletBindingSpecApplyConfiguration struct { - Integration *v1.IntegrationSpecApplyConfiguration `json:"integration,omitempty"` - Source *EndpointApplyConfiguration `json:"source,omitempty"` - Sink *EndpointApplyConfiguration `json:"sink,omitempty"` - ErrorHandler *ErrorHandlerSpecApplyConfiguration `json:"errorHandler,omitempty"` - Steps []EndpointApplyConfiguration `json:"steps,omitempty"` - Replicas *int32 `json:"replicas,omitempty"` - ServiceAccountName *string `json:"serviceAccountName,omitempty"` -} - -// KameletBindingSpecApplyConfiguration constructs an declarative configuration of the KameletBindingSpec type for use with -// apply. -func KameletBindingSpec() *KameletBindingSpecApplyConfiguration { - return &KameletBindingSpecApplyConfiguration{} -} - -// WithIntegration sets the Integration field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Integration field is set to the value of the last call. -func (b *KameletBindingSpecApplyConfiguration) WithIntegration(value *v1.IntegrationSpecApplyConfiguration) *KameletBindingSpecApplyConfiguration { - b.Integration = value - return b -} - -// WithSource sets the Source field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Source field is set to the value of the last call. -func (b *KameletBindingSpecApplyConfiguration) WithSource(value *EndpointApplyConfiguration) *KameletBindingSpecApplyConfiguration { - b.Source = value - return b -} - -// WithSink sets the Sink field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Sink field is set to the value of the last call. -func (b *KameletBindingSpecApplyConfiguration) WithSink(value *EndpointApplyConfiguration) *KameletBindingSpecApplyConfiguration { - b.Sink = value - return b -} - -// WithErrorHandler sets the ErrorHandler field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the ErrorHandler field is set to the value of the last call. -func (b *KameletBindingSpecApplyConfiguration) WithErrorHandler(value *ErrorHandlerSpecApplyConfiguration) *KameletBindingSpecApplyConfiguration { - b.ErrorHandler = value - return b -} - -// WithSteps adds the given value to the Steps field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, values provided by each call will be appended to the Steps field. -func (b *KameletBindingSpecApplyConfiguration) WithSteps(values ...*EndpointApplyConfiguration) *KameletBindingSpecApplyConfiguration { - for i := range values { - if values[i] == nil { - panic("nil value passed to WithSteps") - } - b.Steps = append(b.Steps, *values[i]) - } - return b -} - -// WithReplicas sets the Replicas field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Replicas field is set to the value of the last call. -func (b *KameletBindingSpecApplyConfiguration) WithReplicas(value int32) *KameletBindingSpecApplyConfiguration { - b.Replicas = &value - return b -} - -// WithServiceAccountName sets the ServiceAccountName field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the ServiceAccountName field is set to the value of the last call. -func (b *KameletBindingSpecApplyConfiguration) WithServiceAccountName(value string) *KameletBindingSpecApplyConfiguration { - b.ServiceAccountName = &value - return b -} diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletbindingstatus.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletbindingstatus.go deleted file mode 100644 index e216654534..0000000000 --- a/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletbindingstatus.go +++ /dev/null @@ -1,85 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - v1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" -) - -// KameletBindingStatusApplyConfiguration represents an declarative configuration of the KameletBindingStatus type for use -// with apply. -type KameletBindingStatusApplyConfiguration struct { - ObservedGeneration *int64 `json:"observedGeneration,omitempty"` - Phase *v1alpha1.KameletBindingPhase `json:"phase,omitempty"` - Conditions []KameletBindingConditionApplyConfiguration `json:"conditions,omitempty"` - Replicas *int32 `json:"replicas,omitempty"` - Selector *string `json:"selector,omitempty"` -} - -// KameletBindingStatusApplyConfiguration constructs an declarative configuration of the KameletBindingStatus type for use with -// apply. -func KameletBindingStatus() *KameletBindingStatusApplyConfiguration { - return &KameletBindingStatusApplyConfiguration{} -} - -// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the ObservedGeneration field is set to the value of the last call. -func (b *KameletBindingStatusApplyConfiguration) WithObservedGeneration(value int64) *KameletBindingStatusApplyConfiguration { - b.ObservedGeneration = &value - return b -} - -// WithPhase sets the Phase field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Phase field is set to the value of the last call. -func (b *KameletBindingStatusApplyConfiguration) WithPhase(value v1alpha1.KameletBindingPhase) *KameletBindingStatusApplyConfiguration { - b.Phase = &value - return b -} - -// WithConditions adds the given value to the Conditions field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, values provided by each call will be appended to the Conditions field. -func (b *KameletBindingStatusApplyConfiguration) WithConditions(values ...*KameletBindingConditionApplyConfiguration) *KameletBindingStatusApplyConfiguration { - for i := range values { - if values[i] == nil { - panic("nil value passed to WithConditions") - } - b.Conditions = append(b.Conditions, *values[i]) - } - return b -} - -// WithReplicas sets the Replicas field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Replicas field is set to the value of the last call. -func (b *KameletBindingStatusApplyConfiguration) WithReplicas(value int32) *KameletBindingStatusApplyConfiguration { - b.Replicas = &value - return b -} - -// WithSelector sets the Selector field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Selector field is set to the value of the last call. -func (b *KameletBindingStatusApplyConfiguration) WithSelector(value string) *KameletBindingStatusApplyConfiguration { - b.Selector = &value - return b -} diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletcondition.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletcondition.go deleted file mode 100644 index 52f0fc6530..0000000000 --- a/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletcondition.go +++ /dev/null @@ -1,91 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - v1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" - v1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// KameletConditionApplyConfiguration represents an declarative configuration of the KameletCondition type for use -// with apply. -type KameletConditionApplyConfiguration struct { - Type *v1alpha1.KameletConditionType `json:"type,omitempty"` - Status *v1.ConditionStatus `json:"status,omitempty"` - LastUpdateTime *metav1.Time `json:"lastUpdateTime,omitempty"` - LastTransitionTime *metav1.Time `json:"lastTransitionTime,omitempty"` - Reason *string `json:"reason,omitempty"` - Message *string `json:"message,omitempty"` -} - -// KameletConditionApplyConfiguration constructs an declarative configuration of the KameletCondition type for use with -// apply. -func KameletCondition() *KameletConditionApplyConfiguration { - return &KameletConditionApplyConfiguration{} -} - -// WithType sets the Type field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Type field is set to the value of the last call. -func (b *KameletConditionApplyConfiguration) WithType(value v1alpha1.KameletConditionType) *KameletConditionApplyConfiguration { - b.Type = &value - return b -} - -// WithStatus sets the Status field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Status field is set to the value of the last call. -func (b *KameletConditionApplyConfiguration) WithStatus(value v1.ConditionStatus) *KameletConditionApplyConfiguration { - b.Status = &value - return b -} - -// WithLastUpdateTime sets the LastUpdateTime field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the LastUpdateTime field is set to the value of the last call. -func (b *KameletConditionApplyConfiguration) WithLastUpdateTime(value metav1.Time) *KameletConditionApplyConfiguration { - b.LastUpdateTime = &value - return b -} - -// WithLastTransitionTime sets the LastTransitionTime field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the LastTransitionTime field is set to the value of the last call. -func (b *KameletConditionApplyConfiguration) WithLastTransitionTime(value metav1.Time) *KameletConditionApplyConfiguration { - b.LastTransitionTime = &value - return b -} - -// WithReason sets the Reason field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Reason field is set to the value of the last call. -func (b *KameletConditionApplyConfiguration) WithReason(value string) *KameletConditionApplyConfiguration { - b.Reason = &value - return b -} - -// WithMessage sets the Message field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Message field is set to the value of the last call. -func (b *KameletConditionApplyConfiguration) WithMessage(value string) *KameletConditionApplyConfiguration { - b.Message = &value - return b -} diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletproperty.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletproperty.go deleted file mode 100644 index 462b45dc78..0000000000 --- a/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletproperty.go +++ /dev/null @@ -1,49 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -// KameletPropertyApplyConfiguration represents an declarative configuration of the KameletProperty type for use -// with apply. -type KameletPropertyApplyConfiguration struct { - Name *string `json:"name,omitempty"` - Default *string `json:"default,omitempty"` -} - -// KameletPropertyApplyConfiguration constructs an declarative configuration of the KameletProperty type for use with -// apply. -func KameletProperty() *KameletPropertyApplyConfiguration { - return &KameletPropertyApplyConfiguration{} -} - -// WithName sets the Name field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Name field is set to the value of the last call. -func (b *KameletPropertyApplyConfiguration) WithName(value string) *KameletPropertyApplyConfiguration { - b.Name = &value - return b -} - -// WithDefault sets the Default field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Default field is set to the value of the last call. -func (b *KameletPropertyApplyConfiguration) WithDefault(value string) *KameletPropertyApplyConfiguration { - b.Default = &value - return b -} diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletspec.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletspec.go deleted file mode 100644 index 6627b006ff..0000000000 --- a/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletspec.go +++ /dev/null @@ -1,109 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - camelv1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" - v1 "github.com/apache/camel-k/v2/pkg/client/camel/applyconfiguration/camel/v1" -) - -// KameletSpecApplyConfiguration represents an declarative configuration of the KameletSpec type for use -// with apply. -type KameletSpecApplyConfiguration struct { - Definition *JSONSchemaPropsApplyConfiguration `json:"definition,omitempty"` - Sources []v1.SourceSpecApplyConfiguration `json:"sources,omitempty"` - Template *TemplateApplyConfiguration `json:"template,omitempty"` - Types map[camelv1alpha1.TypeSlot]EventTypeSpecApplyConfiguration `json:"types,omitempty"` - DataTypes map[camelv1alpha1.TypeSlot]DataTypesSpecApplyConfiguration `json:"dataTypes,omitempty"` - Dependencies []string `json:"dependencies,omitempty"` -} - -// KameletSpecApplyConfiguration constructs an declarative configuration of the KameletSpec type for use with -// apply. -func KameletSpec() *KameletSpecApplyConfiguration { - return &KameletSpecApplyConfiguration{} -} - -// WithDefinition sets the Definition field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Definition field is set to the value of the last call. -func (b *KameletSpecApplyConfiguration) WithDefinition(value *JSONSchemaPropsApplyConfiguration) *KameletSpecApplyConfiguration { - b.Definition = value - return b -} - -// WithSources adds the given value to the Sources field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, values provided by each call will be appended to the Sources field. -func (b *KameletSpecApplyConfiguration) WithSources(values ...*v1.SourceSpecApplyConfiguration) *KameletSpecApplyConfiguration { - for i := range values { - if values[i] == nil { - panic("nil value passed to WithSources") - } - b.Sources = append(b.Sources, *values[i]) - } - return b -} - -// WithTemplate sets the Template field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Template field is set to the value of the last call. -func (b *KameletSpecApplyConfiguration) WithTemplate(value *TemplateApplyConfiguration) *KameletSpecApplyConfiguration { - b.Template = value - return b -} - -// WithTypes puts the entries into the Types field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, the entries provided by each call will be put on the Types field, -// overwriting an existing map entries in Types field with the same key. -func (b *KameletSpecApplyConfiguration) WithTypes(entries map[camelv1alpha1.TypeSlot]EventTypeSpecApplyConfiguration) *KameletSpecApplyConfiguration { - if b.Types == nil && len(entries) > 0 { - b.Types = make(map[camelv1alpha1.TypeSlot]EventTypeSpecApplyConfiguration, len(entries)) - } - for k, v := range entries { - b.Types[k] = v - } - return b -} - -// WithDataTypes puts the entries into the DataTypes field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, the entries provided by each call will be put on the DataTypes field, -// overwriting an existing map entries in DataTypes field with the same key. -func (b *KameletSpecApplyConfiguration) WithDataTypes(entries map[camelv1alpha1.TypeSlot]DataTypesSpecApplyConfiguration) *KameletSpecApplyConfiguration { - if b.DataTypes == nil && len(entries) > 0 { - b.DataTypes = make(map[camelv1alpha1.TypeSlot]DataTypesSpecApplyConfiguration, len(entries)) - } - for k, v := range entries { - b.DataTypes[k] = v - } - return b -} - -// WithDependencies adds the given value to the Dependencies field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, values provided by each call will be appended to the Dependencies field. -func (b *KameletSpecApplyConfiguration) WithDependencies(values ...string) *KameletSpecApplyConfiguration { - for i := range values { - b.Dependencies = append(b.Dependencies, values[i]) - } - return b -} diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletstatus.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletstatus.go deleted file mode 100644 index c62d7344b5..0000000000 --- a/pkg/client/camel/applyconfiguration/camel/v1alpha1/kameletstatus.go +++ /dev/null @@ -1,81 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - v1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" -) - -// KameletStatusApplyConfiguration represents an declarative configuration of the KameletStatus type for use -// with apply. -type KameletStatusApplyConfiguration struct { - ObservedGeneration *int64 `json:"observedGeneration,omitempty"` - Phase *v1alpha1.KameletPhase `json:"phase,omitempty"` - Conditions []KameletConditionApplyConfiguration `json:"conditions,omitempty"` - Properties []KameletPropertyApplyConfiguration `json:"properties,omitempty"` -} - -// KameletStatusApplyConfiguration constructs an declarative configuration of the KameletStatus type for use with -// apply. -func KameletStatus() *KameletStatusApplyConfiguration { - return &KameletStatusApplyConfiguration{} -} - -// WithObservedGeneration sets the ObservedGeneration field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the ObservedGeneration field is set to the value of the last call. -func (b *KameletStatusApplyConfiguration) WithObservedGeneration(value int64) *KameletStatusApplyConfiguration { - b.ObservedGeneration = &value - return b -} - -// WithPhase sets the Phase field in the declarative configuration to the given value -// and returns the receiver, so that objects can be built by chaining "With" function invocations. -// If called multiple times, the Phase field is set to the value of the last call. -func (b *KameletStatusApplyConfiguration) WithPhase(value v1alpha1.KameletPhase) *KameletStatusApplyConfiguration { - b.Phase = &value - return b -} - -// WithConditions adds the given value to the Conditions field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, values provided by each call will be appended to the Conditions field. -func (b *KameletStatusApplyConfiguration) WithConditions(values ...*KameletConditionApplyConfiguration) *KameletStatusApplyConfiguration { - for i := range values { - if values[i] == nil { - panic("nil value passed to WithConditions") - } - b.Conditions = append(b.Conditions, *values[i]) - } - return b -} - -// WithProperties adds the given value to the Properties field in the declarative configuration -// and returns the receiver, so that objects can be build by chaining "With" function invocations. -// If called multiple times, values provided by each call will be appended to the Properties field. -func (b *KameletStatusApplyConfiguration) WithProperties(values ...*KameletPropertyApplyConfiguration) *KameletStatusApplyConfiguration { - for i := range values { - if values[i] == nil { - panic("nil value passed to WithProperties") - } - b.Properties = append(b.Properties, *values[i]) - } - return b -} diff --git a/pkg/client/camel/applyconfiguration/camel/v1alpha1/template.go b/pkg/client/camel/applyconfiguration/camel/v1alpha1/template.go deleted file mode 100644 index ac9ac1ba6b..0000000000 --- a/pkg/client/camel/applyconfiguration/camel/v1alpha1/template.go +++ /dev/null @@ -1,36 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by applyconfiguration-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - v1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" -) - -// TemplateApplyConfiguration represents an declarative configuration of the Template type for use -// with apply. -type TemplateApplyConfiguration struct { - v1alpha1.RawMessage `json:",inline"` -} - -// TemplateApplyConfiguration constructs an declarative configuration of the Template type for use with -// apply. -func Template() *TemplateApplyConfiguration { - return &TemplateApplyConfiguration{} -} diff --git a/pkg/client/camel/applyconfiguration/utils.go b/pkg/client/camel/applyconfiguration/utils.go index 835f37e452..518f01d956 100644 --- a/pkg/client/camel/applyconfiguration/utils.go +++ b/pkg/client/camel/applyconfiguration/utils.go @@ -21,9 +21,7 @@ package applyconfiguration import ( v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1" - v1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" camelv1 "github.com/apache/camel-k/v2/pkg/client/camel/applyconfiguration/camel/v1" - camelv1alpha1 "github.com/apache/camel-k/v2/pkg/client/camel/applyconfiguration/camel/v1alpha1" schema "k8s.io/apimachinery/pkg/runtime/schema" ) @@ -229,52 +227,6 @@ func ForKind(kind schema.GroupVersionKind) interface{} { case v1.SchemeGroupVersion.WithKind("ValueSource"): return &camelv1.ValueSourceApplyConfiguration{} - // Group=camel.apache.org, Version=v1alpha1 - case v1alpha1.SchemeGroupVersion.WithKind("DataTypeReference"): - return &camelv1alpha1.DataTypeReferenceApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("DataTypeSpec"): - return &camelv1alpha1.DataTypeSpecApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("DataTypesSpec"): - return &camelv1alpha1.DataTypesSpecApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("Endpoint"): - return &camelv1alpha1.EndpointApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("EndpointProperties"): - return &camelv1alpha1.EndpointPropertiesApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("ErrorHandlerSpec"): - return &camelv1alpha1.ErrorHandlerSpecApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("EventTypeSpec"): - return &camelv1alpha1.EventTypeSpecApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("ExternalDocumentation"): - return &camelv1alpha1.ExternalDocumentationApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("HeaderSpec"): - return &camelv1alpha1.HeaderSpecApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("JSON"): - return &camelv1alpha1.JSONApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("JSONSchemaProp"): - return &camelv1alpha1.JSONSchemaPropApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("JSONSchemaProps"): - return &camelv1alpha1.JSONSchemaPropsApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("Kamelet"): - return &camelv1alpha1.KameletApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("KameletBinding"): - return &camelv1alpha1.KameletBindingApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("KameletBindingCondition"): - return &camelv1alpha1.KameletBindingConditionApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("KameletBindingSpec"): - return &camelv1alpha1.KameletBindingSpecApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("KameletBindingStatus"): - return &camelv1alpha1.KameletBindingStatusApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("KameletCondition"): - return &camelv1alpha1.KameletConditionApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("KameletProperty"): - return &camelv1alpha1.KameletPropertyApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("KameletSpec"): - return &camelv1alpha1.KameletSpecApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("KameletStatus"): - return &camelv1alpha1.KameletStatusApplyConfiguration{} - case v1alpha1.SchemeGroupVersion.WithKind("Template"): - return &camelv1alpha1.TemplateApplyConfiguration{} - } return nil } diff --git a/pkg/client/camel/clientset/versioned/clientset.go b/pkg/client/camel/clientset/versioned/clientset.go index 81203f7fdc..3ed542456a 100644 --- a/pkg/client/camel/clientset/versioned/clientset.go +++ b/pkg/client/camel/clientset/versioned/clientset.go @@ -24,7 +24,6 @@ import ( "net/http" camelv1 "github.com/apache/camel-k/v2/pkg/client/camel/clientset/versioned/typed/camel/v1" - camelv1alpha1 "github.com/apache/camel-k/v2/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1" discovery "k8s.io/client-go/discovery" rest "k8s.io/client-go/rest" flowcontrol "k8s.io/client-go/util/flowcontrol" @@ -33,14 +32,12 @@ import ( type Interface interface { Discovery() discovery.DiscoveryInterface CamelV1() camelv1.CamelV1Interface - CamelV1alpha1() camelv1alpha1.CamelV1alpha1Interface } // Clientset contains the clients for groups. type Clientset struct { *discovery.DiscoveryClient - camelV1 *camelv1.CamelV1Client - camelV1alpha1 *camelv1alpha1.CamelV1alpha1Client + camelV1 *camelv1.CamelV1Client } // CamelV1 retrieves the CamelV1Client @@ -48,11 +45,6 @@ func (c *Clientset) CamelV1() camelv1.CamelV1Interface { return c.camelV1 } -// CamelV1alpha1 retrieves the CamelV1alpha1Client -func (c *Clientset) CamelV1alpha1() camelv1alpha1.CamelV1alpha1Interface { - return c.camelV1alpha1 -} - // Discovery retrieves the DiscoveryClient func (c *Clientset) Discovery() discovery.DiscoveryInterface { if c == nil { @@ -101,10 +93,6 @@ func NewForConfigAndClient(c *rest.Config, httpClient *http.Client) (*Clientset, if err != nil { return nil, err } - cs.camelV1alpha1, err = camelv1alpha1.NewForConfigAndClient(&configShallowCopy, httpClient) - if err != nil { - return nil, err - } cs.DiscoveryClient, err = discovery.NewDiscoveryClientForConfigAndClient(&configShallowCopy, httpClient) if err != nil { @@ -127,7 +115,6 @@ func NewForConfigOrDie(c *rest.Config) *Clientset { func New(c rest.Interface) *Clientset { var cs Clientset cs.camelV1 = camelv1.New(c) - cs.camelV1alpha1 = camelv1alpha1.New(c) cs.DiscoveryClient = discovery.NewDiscoveryClient(c) return &cs diff --git a/pkg/client/camel/clientset/versioned/fake/clientset_generated.go b/pkg/client/camel/clientset/versioned/fake/clientset_generated.go index fc78a9e9ca..e2779567f4 100644 --- a/pkg/client/camel/clientset/versioned/fake/clientset_generated.go +++ b/pkg/client/camel/clientset/versioned/fake/clientset_generated.go @@ -23,8 +23,6 @@ import ( clientset "github.com/apache/camel-k/v2/pkg/client/camel/clientset/versioned" camelv1 "github.com/apache/camel-k/v2/pkg/client/camel/clientset/versioned/typed/camel/v1" fakecamelv1 "github.com/apache/camel-k/v2/pkg/client/camel/clientset/versioned/typed/camel/v1/fake" - camelv1alpha1 "github.com/apache/camel-k/v2/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1" - fakecamelv1alpha1 "github.com/apache/camel-k/v2/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/fake" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/watch" "k8s.io/client-go/discovery" @@ -86,8 +84,3 @@ var ( func (c *Clientset) CamelV1() camelv1.CamelV1Interface { return &fakecamelv1.FakeCamelV1{Fake: &c.Fake} } - -// CamelV1alpha1 retrieves the CamelV1alpha1Client -func (c *Clientset) CamelV1alpha1() camelv1alpha1.CamelV1alpha1Interface { - return &fakecamelv1alpha1.FakeCamelV1alpha1{Fake: &c.Fake} -} diff --git a/pkg/client/camel/clientset/versioned/fake/register.go b/pkg/client/camel/clientset/versioned/fake/register.go index d55e6d595e..07d276278b 100644 --- a/pkg/client/camel/clientset/versioned/fake/register.go +++ b/pkg/client/camel/clientset/versioned/fake/register.go @@ -21,7 +21,6 @@ package fake import ( camelv1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1" - camelv1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -34,7 +33,6 @@ var codecs = serializer.NewCodecFactory(scheme) var localSchemeBuilder = runtime.SchemeBuilder{ camelv1.AddToScheme, - camelv1alpha1.AddToScheme, } // AddToScheme adds all types of this clientset into the given scheme. This allows composition diff --git a/pkg/client/camel/clientset/versioned/scheme/register.go b/pkg/client/camel/clientset/versioned/scheme/register.go index 493d56e4c4..a65c8eabe5 100644 --- a/pkg/client/camel/clientset/versioned/scheme/register.go +++ b/pkg/client/camel/clientset/versioned/scheme/register.go @@ -21,7 +21,6 @@ package scheme import ( camelv1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1" - camelv1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" runtime "k8s.io/apimachinery/pkg/runtime" schema "k8s.io/apimachinery/pkg/runtime/schema" @@ -34,7 +33,6 @@ var Codecs = serializer.NewCodecFactory(Scheme) var ParameterCodec = runtime.NewParameterCodec(Scheme) var localSchemeBuilder = runtime.SchemeBuilder{ camelv1.AddToScheme, - camelv1alpha1.AddToScheme, } // AddToScheme adds all types of this clientset into the given scheme. This allows composition diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/camel_client.go b/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/camel_client.go deleted file mode 100644 index a7728be459..0000000000 --- a/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/camel_client.go +++ /dev/null @@ -1,113 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - "net/http" - - v1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" - "github.com/apache/camel-k/v2/pkg/client/camel/clientset/versioned/scheme" - rest "k8s.io/client-go/rest" -) - -type CamelV1alpha1Interface interface { - RESTClient() rest.Interface - KameletsGetter - KameletBindingsGetter -} - -// CamelV1alpha1Client is used to interact with features provided by the camel.apache.org group. -type CamelV1alpha1Client struct { - restClient rest.Interface -} - -func (c *CamelV1alpha1Client) Kamelets(namespace string) KameletInterface { - return newKamelets(c, namespace) -} - -func (c *CamelV1alpha1Client) KameletBindings(namespace string) KameletBindingInterface { - return newKameletBindings(c, namespace) -} - -// NewForConfig creates a new CamelV1alpha1Client for the given config. -// NewForConfig is equivalent to NewForConfigAndClient(c, httpClient), -// where httpClient was generated with rest.HTTPClientFor(c). -func NewForConfig(c *rest.Config) (*CamelV1alpha1Client, error) { - config := *c - if err := setConfigDefaults(&config); err != nil { - return nil, err - } - httpClient, err := rest.HTTPClientFor(&config) - if err != nil { - return nil, err - } - return NewForConfigAndClient(&config, httpClient) -} - -// NewForConfigAndClient creates a new CamelV1alpha1Client for the given config and http client. -// Note the http client provided takes precedence over the configured transport values. -func NewForConfigAndClient(c *rest.Config, h *http.Client) (*CamelV1alpha1Client, error) { - config := *c - if err := setConfigDefaults(&config); err != nil { - return nil, err - } - client, err := rest.RESTClientForConfigAndClient(&config, h) - if err != nil { - return nil, err - } - return &CamelV1alpha1Client{client}, nil -} - -// NewForConfigOrDie creates a new CamelV1alpha1Client for the given config and -// panics if there is an error in the config. -func NewForConfigOrDie(c *rest.Config) *CamelV1alpha1Client { - client, err := NewForConfig(c) - if err != nil { - panic(err) - } - return client -} - -// New creates a new CamelV1alpha1Client for the given RESTClient. -func New(c rest.Interface) *CamelV1alpha1Client { - return &CamelV1alpha1Client{c} -} - -func setConfigDefaults(config *rest.Config) error { - gv := v1alpha1.SchemeGroupVersion - config.GroupVersion = &gv - config.APIPath = "/apis" - config.NegotiatedSerializer = scheme.Codecs.WithoutConversion() - - if config.UserAgent == "" { - config.UserAgent = rest.DefaultKubernetesUserAgent() - } - - return nil -} - -// RESTClient returns a RESTClient that is used to communicate -// with API server by this client implementation. -func (c *CamelV1alpha1Client) RESTClient() rest.Interface { - if c == nil { - return nil - } - return c.restClient -} diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/doc.go b/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/doc.go deleted file mode 100644 index 9f77d24784..0000000000 --- a/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/doc.go +++ /dev/null @@ -1,21 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -// This package has the automatically generated typed clients. -package v1alpha1 diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/fake/doc.go b/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/fake/doc.go deleted file mode 100644 index 5d1c76cc91..0000000000 --- a/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/fake/doc.go +++ /dev/null @@ -1,21 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -// Package fake has the automatically generated clients. -package fake diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/fake/fake_camel_client.go b/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/fake/fake_camel_client.go deleted file mode 100644 index 840321205b..0000000000 --- a/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/fake/fake_camel_client.go +++ /dev/null @@ -1,45 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - v1alpha1 "github.com/apache/camel-k/v2/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1" - rest "k8s.io/client-go/rest" - testing "k8s.io/client-go/testing" -) - -type FakeCamelV1alpha1 struct { - *testing.Fake -} - -func (c *FakeCamelV1alpha1) Kamelets(namespace string) v1alpha1.KameletInterface { - return &FakeKamelets{c, namespace} -} - -func (c *FakeCamelV1alpha1) KameletBindings(namespace string) v1alpha1.KameletBindingInterface { - return &FakeKameletBindings{c, namespace} -} - -// RESTClient returns a RESTClient that is used to communicate -// with API server by this client implementation. -func (c *FakeCamelV1alpha1) RESTClient() rest.Interface { - var ret *rest.RESTClient - return ret -} diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/fake/fake_kamelet.go b/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/fake/fake_kamelet.go deleted file mode 100644 index 54e97a6b79..0000000000 --- a/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/fake/fake_kamelet.go +++ /dev/null @@ -1,190 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - json "encoding/json" - "fmt" - - v1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" - camelv1alpha1 "github.com/apache/camel-k/v2/pkg/client/camel/applyconfiguration/camel/v1alpha1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - labels "k8s.io/apimachinery/pkg/labels" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - testing "k8s.io/client-go/testing" -) - -// FakeKamelets implements KameletInterface -type FakeKamelets struct { - Fake *FakeCamelV1alpha1 - ns string -} - -var kameletsResource = v1alpha1.SchemeGroupVersion.WithResource("kamelets") - -var kameletsKind = v1alpha1.SchemeGroupVersion.WithKind("Kamelet") - -// Get takes name of the kamelet, and returns the corresponding kamelet object, and an error if there is any. -func (c *FakeKamelets) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.Kamelet, err error) { - obj, err := c.Fake. - Invokes(testing.NewGetAction(kameletsResource, c.ns, name), &v1alpha1.Kamelet{}) - - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.Kamelet), err -} - -// List takes label and field selectors, and returns the list of Kamelets that match those selectors. -func (c *FakeKamelets) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.KameletList, err error) { - obj, err := c.Fake. - Invokes(testing.NewListAction(kameletsResource, kameletsKind, c.ns, opts), &v1alpha1.KameletList{}) - - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &v1alpha1.KameletList{ListMeta: obj.(*v1alpha1.KameletList).ListMeta} - for _, item := range obj.(*v1alpha1.KameletList).Items { - if label.Matches(labels.Set(item.Labels)) { - list.Items = append(list.Items, item) - } - } - return list, err -} - -// Watch returns a watch.Interface that watches the requested kamelets. -func (c *FakeKamelets) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewWatchAction(kameletsResource, c.ns, opts)) - -} - -// Create takes the representation of a kamelet and creates it. Returns the server's representation of the kamelet, and an error, if there is any. -func (c *FakeKamelets) Create(ctx context.Context, kamelet *v1alpha1.Kamelet, opts v1.CreateOptions) (result *v1alpha1.Kamelet, err error) { - obj, err := c.Fake. - Invokes(testing.NewCreateAction(kameletsResource, c.ns, kamelet), &v1alpha1.Kamelet{}) - - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.Kamelet), err -} - -// Update takes the representation of a kamelet and updates it. Returns the server's representation of the kamelet, and an error, if there is any. -func (c *FakeKamelets) Update(ctx context.Context, kamelet *v1alpha1.Kamelet, opts v1.UpdateOptions) (result *v1alpha1.Kamelet, err error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateAction(kameletsResource, c.ns, kamelet), &v1alpha1.Kamelet{}) - - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.Kamelet), err -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeKamelets) UpdateStatus(ctx context.Context, kamelet *v1alpha1.Kamelet, opts v1.UpdateOptions) (*v1alpha1.Kamelet, error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(kameletsResource, "status", c.ns, kamelet), &v1alpha1.Kamelet{}) - - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.Kamelet), err -} - -// Delete takes name of the kamelet and deletes it. Returns an error if one occurs. -func (c *FakeKamelets) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewDeleteActionWithOptions(kameletsResource, c.ns, name, opts), &v1alpha1.Kamelet{}) - - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeKamelets) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewDeleteCollectionAction(kameletsResource, c.ns, listOpts) - - _, err := c.Fake.Invokes(action, &v1alpha1.KameletList{}) - return err -} - -// Patch applies the patch and returns the patched kamelet. -func (c *FakeKamelets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.Kamelet, err error) { - obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(kameletsResource, c.ns, name, pt, data, subresources...), &v1alpha1.Kamelet{}) - - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.Kamelet), err -} - -// Apply takes the given apply declarative configuration, applies it and returns the applied kamelet. -func (c *FakeKamelets) Apply(ctx context.Context, kamelet *camelv1alpha1.KameletApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.Kamelet, err error) { - if kamelet == nil { - return nil, fmt.Errorf("kamelet provided to Apply must not be nil") - } - data, err := json.Marshal(kamelet) - if err != nil { - return nil, err - } - name := kamelet.Name - if name == nil { - return nil, fmt.Errorf("kamelet.Name must be provided to Apply") - } - obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(kameletsResource, c.ns, *name, types.ApplyPatchType, data), &v1alpha1.Kamelet{}) - - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.Kamelet), err -} - -// ApplyStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). -func (c *FakeKamelets) ApplyStatus(ctx context.Context, kamelet *camelv1alpha1.KameletApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.Kamelet, err error) { - if kamelet == nil { - return nil, fmt.Errorf("kamelet provided to Apply must not be nil") - } - data, err := json.Marshal(kamelet) - if err != nil { - return nil, err - } - name := kamelet.Name - if name == nil { - return nil, fmt.Errorf("kamelet.Name must be provided to Apply") - } - obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(kameletsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &v1alpha1.Kamelet{}) - - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.Kamelet), err -} diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/fake/fake_kameletbinding.go b/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/fake/fake_kameletbinding.go deleted file mode 100644 index 5a0c5c643a..0000000000 --- a/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/fake/fake_kameletbinding.go +++ /dev/null @@ -1,213 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package fake - -import ( - "context" - json "encoding/json" - "fmt" - - v1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" - camelv1alpha1 "github.com/apache/camel-k/v2/pkg/client/camel/applyconfiguration/camel/v1alpha1" - autoscalingv1 "k8s.io/api/autoscaling/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - labels "k8s.io/apimachinery/pkg/labels" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - testing "k8s.io/client-go/testing" -) - -// FakeKameletBindings implements KameletBindingInterface -type FakeKameletBindings struct { - Fake *FakeCamelV1alpha1 - ns string -} - -var kameletbindingsResource = v1alpha1.SchemeGroupVersion.WithResource("kameletbindings") - -var kameletbindingsKind = v1alpha1.SchemeGroupVersion.WithKind("KameletBinding") - -// Get takes name of the kameletBinding, and returns the corresponding kameletBinding object, and an error if there is any. -func (c *FakeKameletBindings) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.KameletBinding, err error) { - obj, err := c.Fake. - Invokes(testing.NewGetAction(kameletbindingsResource, c.ns, name), &v1alpha1.KameletBinding{}) - - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.KameletBinding), err -} - -// List takes label and field selectors, and returns the list of KameletBindings that match those selectors. -func (c *FakeKameletBindings) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.KameletBindingList, err error) { - obj, err := c.Fake. - Invokes(testing.NewListAction(kameletbindingsResource, kameletbindingsKind, c.ns, opts), &v1alpha1.KameletBindingList{}) - - if obj == nil { - return nil, err - } - - label, _, _ := testing.ExtractFromListOptions(opts) - if label == nil { - label = labels.Everything() - } - list := &v1alpha1.KameletBindingList{ListMeta: obj.(*v1alpha1.KameletBindingList).ListMeta} - for _, item := range obj.(*v1alpha1.KameletBindingList).Items { - if label.Matches(labels.Set(item.Labels)) { - list.Items = append(list.Items, item) - } - } - return list, err -} - -// Watch returns a watch.Interface that watches the requested kameletBindings. -func (c *FakeKameletBindings) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - return c.Fake. - InvokesWatch(testing.NewWatchAction(kameletbindingsResource, c.ns, opts)) - -} - -// Create takes the representation of a kameletBinding and creates it. Returns the server's representation of the kameletBinding, and an error, if there is any. -func (c *FakeKameletBindings) Create(ctx context.Context, kameletBinding *v1alpha1.KameletBinding, opts v1.CreateOptions) (result *v1alpha1.KameletBinding, err error) { - obj, err := c.Fake. - Invokes(testing.NewCreateAction(kameletbindingsResource, c.ns, kameletBinding), &v1alpha1.KameletBinding{}) - - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.KameletBinding), err -} - -// Update takes the representation of a kameletBinding and updates it. Returns the server's representation of the kameletBinding, and an error, if there is any. -func (c *FakeKameletBindings) Update(ctx context.Context, kameletBinding *v1alpha1.KameletBinding, opts v1.UpdateOptions) (result *v1alpha1.KameletBinding, err error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateAction(kameletbindingsResource, c.ns, kameletBinding), &v1alpha1.KameletBinding{}) - - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.KameletBinding), err -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *FakeKameletBindings) UpdateStatus(ctx context.Context, kameletBinding *v1alpha1.KameletBinding, opts v1.UpdateOptions) (*v1alpha1.KameletBinding, error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(kameletbindingsResource, "status", c.ns, kameletBinding), &v1alpha1.KameletBinding{}) - - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.KameletBinding), err -} - -// Delete takes name of the kameletBinding and deletes it. Returns an error if one occurs. -func (c *FakeKameletBindings) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - _, err := c.Fake. - Invokes(testing.NewDeleteActionWithOptions(kameletbindingsResource, c.ns, name, opts), &v1alpha1.KameletBinding{}) - - return err -} - -// DeleteCollection deletes a collection of objects. -func (c *FakeKameletBindings) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - action := testing.NewDeleteCollectionAction(kameletbindingsResource, c.ns, listOpts) - - _, err := c.Fake.Invokes(action, &v1alpha1.KameletBindingList{}) - return err -} - -// Patch applies the patch and returns the patched kameletBinding. -func (c *FakeKameletBindings) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.KameletBinding, err error) { - obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(kameletbindingsResource, c.ns, name, pt, data, subresources...), &v1alpha1.KameletBinding{}) - - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.KameletBinding), err -} - -// Apply takes the given apply declarative configuration, applies it and returns the applied kameletBinding. -func (c *FakeKameletBindings) Apply(ctx context.Context, kameletBinding *camelv1alpha1.KameletBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.KameletBinding, err error) { - if kameletBinding == nil { - return nil, fmt.Errorf("kameletBinding provided to Apply must not be nil") - } - data, err := json.Marshal(kameletBinding) - if err != nil { - return nil, err - } - name := kameletBinding.Name - if name == nil { - return nil, fmt.Errorf("kameletBinding.Name must be provided to Apply") - } - obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(kameletbindingsResource, c.ns, *name, types.ApplyPatchType, data), &v1alpha1.KameletBinding{}) - - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.KameletBinding), err -} - -// ApplyStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). -func (c *FakeKameletBindings) ApplyStatus(ctx context.Context, kameletBinding *camelv1alpha1.KameletBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.KameletBinding, err error) { - if kameletBinding == nil { - return nil, fmt.Errorf("kameletBinding provided to Apply must not be nil") - } - data, err := json.Marshal(kameletBinding) - if err != nil { - return nil, err - } - name := kameletBinding.Name - if name == nil { - return nil, fmt.Errorf("kameletBinding.Name must be provided to Apply") - } - obj, err := c.Fake. - Invokes(testing.NewPatchSubresourceAction(kameletbindingsResource, c.ns, *name, types.ApplyPatchType, data, "status"), &v1alpha1.KameletBinding{}) - - if obj == nil { - return nil, err - } - return obj.(*v1alpha1.KameletBinding), err -} - -// GetScale takes name of the kameletBinding, and returns the corresponding scale object, and an error if there is any. -func (c *FakeKameletBindings) GetScale(ctx context.Context, kameletBindingName string, options v1.GetOptions) (result *autoscalingv1.Scale, err error) { - obj, err := c.Fake. - Invokes(testing.NewGetSubresourceAction(kameletbindingsResource, c.ns, "scale", kameletBindingName), &autoscalingv1.Scale{}) - - if obj == nil { - return nil, err - } - return obj.(*autoscalingv1.Scale), err -} - -// UpdateScale takes the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any. -func (c *FakeKameletBindings) UpdateScale(ctx context.Context, kameletBindingName string, scale *autoscalingv1.Scale, opts v1.UpdateOptions) (result *autoscalingv1.Scale, err error) { - obj, err := c.Fake. - Invokes(testing.NewUpdateSubresourceAction(kameletbindingsResource, "scale", c.ns, scale), &autoscalingv1.Scale{}) - - if obj == nil { - return nil, err - } - return obj.(*autoscalingv1.Scale), err -} diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/generated_expansion.go b/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/generated_expansion.go deleted file mode 100644 index b53910b3b2..0000000000 --- a/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/generated_expansion.go +++ /dev/null @@ -1,24 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package v1alpha1 - -type KameletExpansion interface{} - -type KameletBindingExpansion interface{} diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/kamelet.go b/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/kamelet.go deleted file mode 100644 index ee48b59417..0000000000 --- a/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/kamelet.go +++ /dev/null @@ -1,257 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - "context" - json "encoding/json" - "fmt" - "time" - - v1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" - camelv1alpha1 "github.com/apache/camel-k/v2/pkg/client/camel/applyconfiguration/camel/v1alpha1" - scheme "github.com/apache/camel-k/v2/pkg/client/camel/clientset/versioned/scheme" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - rest "k8s.io/client-go/rest" -) - -// KameletsGetter has a method to return a KameletInterface. -// A group's client should implement this interface. -type KameletsGetter interface { - Kamelets(namespace string) KameletInterface -} - -// KameletInterface has methods to work with Kamelet resources. -type KameletInterface interface { - Create(ctx context.Context, kamelet *v1alpha1.Kamelet, opts v1.CreateOptions) (*v1alpha1.Kamelet, error) - Update(ctx context.Context, kamelet *v1alpha1.Kamelet, opts v1.UpdateOptions) (*v1alpha1.Kamelet, error) - UpdateStatus(ctx context.Context, kamelet *v1alpha1.Kamelet, opts v1.UpdateOptions) (*v1alpha1.Kamelet, error) - Delete(ctx context.Context, name string, opts v1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error - Get(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.Kamelet, error) - List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.KameletList, error) - Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.Kamelet, err error) - Apply(ctx context.Context, kamelet *camelv1alpha1.KameletApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.Kamelet, err error) - ApplyStatus(ctx context.Context, kamelet *camelv1alpha1.KameletApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.Kamelet, err error) - KameletExpansion -} - -// kamelets implements KameletInterface -type kamelets struct { - client rest.Interface - ns string -} - -// newKamelets returns a Kamelets -func newKamelets(c *CamelV1alpha1Client, namespace string) *kamelets { - return &kamelets{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the kamelet, and returns the corresponding kamelet object, and an error if there is any. -func (c *kamelets) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.Kamelet, err error) { - result = &v1alpha1.Kamelet{} - err = c.client.Get(). - Namespace(c.ns). - Resource("kamelets"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of Kamelets that match those selectors. -func (c *kamelets) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.KameletList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1alpha1.KameletList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("kamelets"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested kamelets. -func (c *kamelets) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - opts.Watch = true - return c.client.Get(). - Namespace(c.ns). - Resource("kamelets"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a kamelet and creates it. Returns the server's representation of the kamelet, and an error, if there is any. -func (c *kamelets) Create(ctx context.Context, kamelet *v1alpha1.Kamelet, opts v1.CreateOptions) (result *v1alpha1.Kamelet, err error) { - result = &v1alpha1.Kamelet{} - err = c.client.Post(). - Namespace(c.ns). - Resource("kamelets"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(kamelet). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a kamelet and updates it. Returns the server's representation of the kamelet, and an error, if there is any. -func (c *kamelets) Update(ctx context.Context, kamelet *v1alpha1.Kamelet, opts v1.UpdateOptions) (result *v1alpha1.Kamelet, err error) { - result = &v1alpha1.Kamelet{} - err = c.client.Put(). - Namespace(c.ns). - Resource("kamelets"). - Name(kamelet.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(kamelet). - Do(ctx). - Into(result) - return -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *kamelets) UpdateStatus(ctx context.Context, kamelet *v1alpha1.Kamelet, opts v1.UpdateOptions) (result *v1alpha1.Kamelet, err error) { - result = &v1alpha1.Kamelet{} - err = c.client.Put(). - Namespace(c.ns). - Resource("kamelets"). - Name(kamelet.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(kamelet). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the kamelet and deletes it. Returns an error if one occurs. -func (c *kamelets) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("kamelets"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *kamelets) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Namespace(c.ns). - Resource("kamelets"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched kamelet. -func (c *kamelets) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.Kamelet, err error) { - result = &v1alpha1.Kamelet{} - err = c.client.Patch(pt). - Namespace(c.ns). - Resource("kamelets"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} - -// Apply takes the given apply declarative configuration, applies it and returns the applied kamelet. -func (c *kamelets) Apply(ctx context.Context, kamelet *camelv1alpha1.KameletApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.Kamelet, err error) { - if kamelet == nil { - return nil, fmt.Errorf("kamelet provided to Apply must not be nil") - } - patchOpts := opts.ToPatchOptions() - data, err := json.Marshal(kamelet) - if err != nil { - return nil, err - } - name := kamelet.Name - if name == nil { - return nil, fmt.Errorf("kamelet.Name must be provided to Apply") - } - result = &v1alpha1.Kamelet{} - err = c.client.Patch(types.ApplyPatchType). - Namespace(c.ns). - Resource("kamelets"). - Name(*name). - VersionedParams(&patchOpts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} - -// ApplyStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). -func (c *kamelets) ApplyStatus(ctx context.Context, kamelet *camelv1alpha1.KameletApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.Kamelet, err error) { - if kamelet == nil { - return nil, fmt.Errorf("kamelet provided to Apply must not be nil") - } - patchOpts := opts.ToPatchOptions() - data, err := json.Marshal(kamelet) - if err != nil { - return nil, err - } - - name := kamelet.Name - if name == nil { - return nil, fmt.Errorf("kamelet.Name must be provided to Apply") - } - - result = &v1alpha1.Kamelet{} - err = c.client.Patch(types.ApplyPatchType). - Namespace(c.ns). - Resource("kamelets"). - Name(*name). - SubResource("status"). - VersionedParams(&patchOpts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} diff --git a/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/kameletbinding.go b/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/kameletbinding.go deleted file mode 100644 index 04d4008ee2..0000000000 --- a/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1/kameletbinding.go +++ /dev/null @@ -1,290 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by client-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - "context" - json "encoding/json" - "fmt" - "time" - - v1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" - camelv1alpha1 "github.com/apache/camel-k/v2/pkg/client/camel/applyconfiguration/camel/v1alpha1" - scheme "github.com/apache/camel-k/v2/pkg/client/camel/clientset/versioned/scheme" - autoscalingv1 "k8s.io/api/autoscaling/v1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - types "k8s.io/apimachinery/pkg/types" - watch "k8s.io/apimachinery/pkg/watch" - rest "k8s.io/client-go/rest" -) - -// KameletBindingsGetter has a method to return a KameletBindingInterface. -// A group's client should implement this interface. -type KameletBindingsGetter interface { - KameletBindings(namespace string) KameletBindingInterface -} - -// KameletBindingInterface has methods to work with KameletBinding resources. -type KameletBindingInterface interface { - Create(ctx context.Context, kameletBinding *v1alpha1.KameletBinding, opts v1.CreateOptions) (*v1alpha1.KameletBinding, error) - Update(ctx context.Context, kameletBinding *v1alpha1.KameletBinding, opts v1.UpdateOptions) (*v1alpha1.KameletBinding, error) - UpdateStatus(ctx context.Context, kameletBinding *v1alpha1.KameletBinding, opts v1.UpdateOptions) (*v1alpha1.KameletBinding, error) - Delete(ctx context.Context, name string, opts v1.DeleteOptions) error - DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error - Get(ctx context.Context, name string, opts v1.GetOptions) (*v1alpha1.KameletBinding, error) - List(ctx context.Context, opts v1.ListOptions) (*v1alpha1.KameletBindingList, error) - Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) - Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.KameletBinding, err error) - Apply(ctx context.Context, kameletBinding *camelv1alpha1.KameletBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.KameletBinding, err error) - ApplyStatus(ctx context.Context, kameletBinding *camelv1alpha1.KameletBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.KameletBinding, err error) - GetScale(ctx context.Context, kameletBindingName string, options v1.GetOptions) (*autoscalingv1.Scale, error) - UpdateScale(ctx context.Context, kameletBindingName string, scale *autoscalingv1.Scale, opts v1.UpdateOptions) (*autoscalingv1.Scale, error) - - KameletBindingExpansion -} - -// kameletBindings implements KameletBindingInterface -type kameletBindings struct { - client rest.Interface - ns string -} - -// newKameletBindings returns a KameletBindings -func newKameletBindings(c *CamelV1alpha1Client, namespace string) *kameletBindings { - return &kameletBindings{ - client: c.RESTClient(), - ns: namespace, - } -} - -// Get takes name of the kameletBinding, and returns the corresponding kameletBinding object, and an error if there is any. -func (c *kameletBindings) Get(ctx context.Context, name string, options v1.GetOptions) (result *v1alpha1.KameletBinding, err error) { - result = &v1alpha1.KameletBinding{} - err = c.client.Get(). - Namespace(c.ns). - Resource("kameletbindings"). - Name(name). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// List takes label and field selectors, and returns the list of KameletBindings that match those selectors. -func (c *kameletBindings) List(ctx context.Context, opts v1.ListOptions) (result *v1alpha1.KameletBindingList, err error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - result = &v1alpha1.KameletBindingList{} - err = c.client.Get(). - Namespace(c.ns). - Resource("kameletbindings"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Do(ctx). - Into(result) - return -} - -// Watch returns a watch.Interface that watches the requested kameletBindings. -func (c *kameletBindings) Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { - var timeout time.Duration - if opts.TimeoutSeconds != nil { - timeout = time.Duration(*opts.TimeoutSeconds) * time.Second - } - opts.Watch = true - return c.client.Get(). - Namespace(c.ns). - Resource("kameletbindings"). - VersionedParams(&opts, scheme.ParameterCodec). - Timeout(timeout). - Watch(ctx) -} - -// Create takes the representation of a kameletBinding and creates it. Returns the server's representation of the kameletBinding, and an error, if there is any. -func (c *kameletBindings) Create(ctx context.Context, kameletBinding *v1alpha1.KameletBinding, opts v1.CreateOptions) (result *v1alpha1.KameletBinding, err error) { - result = &v1alpha1.KameletBinding{} - err = c.client.Post(). - Namespace(c.ns). - Resource("kameletbindings"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(kameletBinding). - Do(ctx). - Into(result) - return -} - -// Update takes the representation of a kameletBinding and updates it. Returns the server's representation of the kameletBinding, and an error, if there is any. -func (c *kameletBindings) Update(ctx context.Context, kameletBinding *v1alpha1.KameletBinding, opts v1.UpdateOptions) (result *v1alpha1.KameletBinding, err error) { - result = &v1alpha1.KameletBinding{} - err = c.client.Put(). - Namespace(c.ns). - Resource("kameletbindings"). - Name(kameletBinding.Name). - VersionedParams(&opts, scheme.ParameterCodec). - Body(kameletBinding). - Do(ctx). - Into(result) - return -} - -// UpdateStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). -func (c *kameletBindings) UpdateStatus(ctx context.Context, kameletBinding *v1alpha1.KameletBinding, opts v1.UpdateOptions) (result *v1alpha1.KameletBinding, err error) { - result = &v1alpha1.KameletBinding{} - err = c.client.Put(). - Namespace(c.ns). - Resource("kameletbindings"). - Name(kameletBinding.Name). - SubResource("status"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(kameletBinding). - Do(ctx). - Into(result) - return -} - -// Delete takes name of the kameletBinding and deletes it. Returns an error if one occurs. -func (c *kameletBindings) Delete(ctx context.Context, name string, opts v1.DeleteOptions) error { - return c.client.Delete(). - Namespace(c.ns). - Resource("kameletbindings"). - Name(name). - Body(&opts). - Do(ctx). - Error() -} - -// DeleteCollection deletes a collection of objects. -func (c *kameletBindings) DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error { - var timeout time.Duration - if listOpts.TimeoutSeconds != nil { - timeout = time.Duration(*listOpts.TimeoutSeconds) * time.Second - } - return c.client.Delete(). - Namespace(c.ns). - Resource("kameletbindings"). - VersionedParams(&listOpts, scheme.ParameterCodec). - Timeout(timeout). - Body(&opts). - Do(ctx). - Error() -} - -// Patch applies the patch and returns the patched kameletBinding. -func (c *kameletBindings) Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *v1alpha1.KameletBinding, err error) { - result = &v1alpha1.KameletBinding{} - err = c.client.Patch(pt). - Namespace(c.ns). - Resource("kameletbindings"). - Name(name). - SubResource(subresources...). - VersionedParams(&opts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} - -// Apply takes the given apply declarative configuration, applies it and returns the applied kameletBinding. -func (c *kameletBindings) Apply(ctx context.Context, kameletBinding *camelv1alpha1.KameletBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.KameletBinding, err error) { - if kameletBinding == nil { - return nil, fmt.Errorf("kameletBinding provided to Apply must not be nil") - } - patchOpts := opts.ToPatchOptions() - data, err := json.Marshal(kameletBinding) - if err != nil { - return nil, err - } - name := kameletBinding.Name - if name == nil { - return nil, fmt.Errorf("kameletBinding.Name must be provided to Apply") - } - result = &v1alpha1.KameletBinding{} - err = c.client.Patch(types.ApplyPatchType). - Namespace(c.ns). - Resource("kameletbindings"). - Name(*name). - VersionedParams(&patchOpts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} - -// ApplyStatus was generated because the type contains a Status member. -// Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). -func (c *kameletBindings) ApplyStatus(ctx context.Context, kameletBinding *camelv1alpha1.KameletBindingApplyConfiguration, opts v1.ApplyOptions) (result *v1alpha1.KameletBinding, err error) { - if kameletBinding == nil { - return nil, fmt.Errorf("kameletBinding provided to Apply must not be nil") - } - patchOpts := opts.ToPatchOptions() - data, err := json.Marshal(kameletBinding) - if err != nil { - return nil, err - } - - name := kameletBinding.Name - if name == nil { - return nil, fmt.Errorf("kameletBinding.Name must be provided to Apply") - } - - result = &v1alpha1.KameletBinding{} - err = c.client.Patch(types.ApplyPatchType). - Namespace(c.ns). - Resource("kameletbindings"). - Name(*name). - SubResource("status"). - VersionedParams(&patchOpts, scheme.ParameterCodec). - Body(data). - Do(ctx). - Into(result) - return -} - -// GetScale takes name of the kameletBinding, and returns the corresponding autoscalingv1.Scale object, and an error if there is any. -func (c *kameletBindings) GetScale(ctx context.Context, kameletBindingName string, options v1.GetOptions) (result *autoscalingv1.Scale, err error) { - result = &autoscalingv1.Scale{} - err = c.client.Get(). - Namespace(c.ns). - Resource("kameletbindings"). - Name(kameletBindingName). - SubResource("scale"). - VersionedParams(&options, scheme.ParameterCodec). - Do(ctx). - Into(result) - return -} - -// UpdateScale takes the top resource name and the representation of a scale and updates it. Returns the server's representation of the scale, and an error, if there is any. -func (c *kameletBindings) UpdateScale(ctx context.Context, kameletBindingName string, scale *autoscalingv1.Scale, opts v1.UpdateOptions) (result *autoscalingv1.Scale, err error) { - result = &autoscalingv1.Scale{} - err = c.client.Put(). - Namespace(c.ns). - Resource("kameletbindings"). - Name(kameletBindingName). - SubResource("scale"). - VersionedParams(&opts, scheme.ParameterCodec). - Body(scale). - Do(ctx). - Into(result) - return -} diff --git a/pkg/client/camel/informers/externalversions/camel/interface.go b/pkg/client/camel/informers/externalversions/camel/interface.go index bd521d232b..6a94674c61 100644 --- a/pkg/client/camel/informers/externalversions/camel/interface.go +++ b/pkg/client/camel/informers/externalversions/camel/interface.go @@ -21,7 +21,6 @@ package camel import ( v1 "github.com/apache/camel-k/v2/pkg/client/camel/informers/externalversions/camel/v1" - v1alpha1 "github.com/apache/camel-k/v2/pkg/client/camel/informers/externalversions/camel/v1alpha1" internalinterfaces "github.com/apache/camel-k/v2/pkg/client/camel/informers/externalversions/internalinterfaces" ) @@ -29,8 +28,6 @@ import ( type Interface interface { // V1 provides access to shared informers for resources in V1. V1() v1.Interface - // V1alpha1 provides access to shared informers for resources in V1alpha1. - V1alpha1() v1alpha1.Interface } type group struct { @@ -48,8 +45,3 @@ func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakList func (g *group) V1() v1.Interface { return v1.New(g.factory, g.namespace, g.tweakListOptions) } - -// V1alpha1 returns a new v1alpha1.Interface. -func (g *group) V1alpha1() v1alpha1.Interface { - return v1alpha1.New(g.factory, g.namespace, g.tweakListOptions) -} diff --git a/pkg/client/camel/informers/externalversions/camel/v1alpha1/interface.go b/pkg/client/camel/informers/externalversions/camel/v1alpha1/interface.go deleted file mode 100644 index ef032869e0..0000000000 --- a/pkg/client/camel/informers/externalversions/camel/v1alpha1/interface.go +++ /dev/null @@ -1,53 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by informer-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - internalinterfaces "github.com/apache/camel-k/v2/pkg/client/camel/informers/externalversions/internalinterfaces" -) - -// Interface provides access to all the informers in this group version. -type Interface interface { - // Kamelets returns a KameletInformer. - Kamelets() KameletInformer - // KameletBindings returns a KameletBindingInformer. - KameletBindings() KameletBindingInformer -} - -type version struct { - factory internalinterfaces.SharedInformerFactory - namespace string - tweakListOptions internalinterfaces.TweakListOptionsFunc -} - -// New returns a new Interface. -func New(f internalinterfaces.SharedInformerFactory, namespace string, tweakListOptions internalinterfaces.TweakListOptionsFunc) Interface { - return &version{factory: f, namespace: namespace, tweakListOptions: tweakListOptions} -} - -// Kamelets returns a KameletInformer. -func (v *version) Kamelets() KameletInformer { - return &kameletInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} -} - -// KameletBindings returns a KameletBindingInformer. -func (v *version) KameletBindings() KameletBindingInformer { - return &kameletBindingInformer{factory: v.factory, namespace: v.namespace, tweakListOptions: v.tweakListOptions} -} diff --git a/pkg/client/camel/informers/externalversions/camel/v1alpha1/kamelet.go b/pkg/client/camel/informers/externalversions/camel/v1alpha1/kamelet.go deleted file mode 100644 index c77dc9356b..0000000000 --- a/pkg/client/camel/informers/externalversions/camel/v1alpha1/kamelet.go +++ /dev/null @@ -1,91 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by informer-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - "context" - time "time" - - camelv1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" - versioned "github.com/apache/camel-k/v2/pkg/client/camel/clientset/versioned" - internalinterfaces "github.com/apache/camel-k/v2/pkg/client/camel/informers/externalversions/internalinterfaces" - v1alpha1 "github.com/apache/camel-k/v2/pkg/client/camel/listers/camel/v1alpha1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - watch "k8s.io/apimachinery/pkg/watch" - cache "k8s.io/client-go/tools/cache" -) - -// KameletInformer provides access to a shared informer and lister for -// Kamelets. -type KameletInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1alpha1.KameletLister -} - -type kameletInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc - namespace string -} - -// NewKameletInformer constructs a new informer for Kamelet type. -// Always prefer using an informer factory to get a shared informer instead of getting an independent -// one. This reduces memory footprint and number of connections to the server. -func NewKameletInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredKameletInformer(client, namespace, resyncPeriod, indexers, nil) -} - -// NewFilteredKameletInformer constructs a new informer for Kamelet type. -// Always prefer using an informer factory to get a shared informer instead of getting an independent -// one. This reduces memory footprint and number of connections to the server. -func NewFilteredKameletInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options v1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.CamelV1alpha1().Kamelets(namespace).List(context.TODO(), options) - }, - WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.CamelV1alpha1().Kamelets(namespace).Watch(context.TODO(), options) - }, - }, - &camelv1alpha1.Kamelet{}, - resyncPeriod, - indexers, - ) -} - -func (f *kameletInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredKameletInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *kameletInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&camelv1alpha1.Kamelet{}, f.defaultInformer) -} - -func (f *kameletInformer) Lister() v1alpha1.KameletLister { - return v1alpha1.NewKameletLister(f.Informer().GetIndexer()) -} diff --git a/pkg/client/camel/informers/externalversions/camel/v1alpha1/kameletbinding.go b/pkg/client/camel/informers/externalversions/camel/v1alpha1/kameletbinding.go deleted file mode 100644 index 7dc014baed..0000000000 --- a/pkg/client/camel/informers/externalversions/camel/v1alpha1/kameletbinding.go +++ /dev/null @@ -1,91 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by informer-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - "context" - time "time" - - camelv1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" - versioned "github.com/apache/camel-k/v2/pkg/client/camel/clientset/versioned" - internalinterfaces "github.com/apache/camel-k/v2/pkg/client/camel/informers/externalversions/internalinterfaces" - v1alpha1 "github.com/apache/camel-k/v2/pkg/client/camel/listers/camel/v1alpha1" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" - watch "k8s.io/apimachinery/pkg/watch" - cache "k8s.io/client-go/tools/cache" -) - -// KameletBindingInformer provides access to a shared informer and lister for -// KameletBindings. -type KameletBindingInformer interface { - Informer() cache.SharedIndexInformer - Lister() v1alpha1.KameletBindingLister -} - -type kameletBindingInformer struct { - factory internalinterfaces.SharedInformerFactory - tweakListOptions internalinterfaces.TweakListOptionsFunc - namespace string -} - -// NewKameletBindingInformer constructs a new informer for KameletBinding type. -// Always prefer using an informer factory to get a shared informer instead of getting an independent -// one. This reduces memory footprint and number of connections to the server. -func NewKameletBindingInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { - return NewFilteredKameletBindingInformer(client, namespace, resyncPeriod, indexers, nil) -} - -// NewFilteredKameletBindingInformer constructs a new informer for KameletBinding type. -// Always prefer using an informer factory to get a shared informer instead of getting an independent -// one. This reduces memory footprint and number of connections to the server. -func NewFilteredKameletBindingInformer(client versioned.Interface, namespace string, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { - return cache.NewSharedIndexInformer( - &cache.ListWatch{ - ListFunc: func(options v1.ListOptions) (runtime.Object, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.CamelV1alpha1().KameletBindings(namespace).List(context.TODO(), options) - }, - WatchFunc: func(options v1.ListOptions) (watch.Interface, error) { - if tweakListOptions != nil { - tweakListOptions(&options) - } - return client.CamelV1alpha1().KameletBindings(namespace).Watch(context.TODO(), options) - }, - }, - &camelv1alpha1.KameletBinding{}, - resyncPeriod, - indexers, - ) -} - -func (f *kameletBindingInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { - return NewFilteredKameletBindingInformer(client, f.namespace, resyncPeriod, cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, f.tweakListOptions) -} - -func (f *kameletBindingInformer) Informer() cache.SharedIndexInformer { - return f.factory.InformerFor(&camelv1alpha1.KameletBinding{}, f.defaultInformer) -} - -func (f *kameletBindingInformer) Lister() v1alpha1.KameletBindingLister { - return v1alpha1.NewKameletBindingLister(f.Informer().GetIndexer()) -} diff --git a/pkg/client/camel/informers/externalversions/generic.go b/pkg/client/camel/informers/externalversions/generic.go index 651e153296..2501ac52cc 100644 --- a/pkg/client/camel/informers/externalversions/generic.go +++ b/pkg/client/camel/informers/externalversions/generic.go @@ -23,7 +23,6 @@ import ( "fmt" v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1" - v1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" schema "k8s.io/apimachinery/pkg/runtime/schema" cache "k8s.io/client-go/tools/cache" ) @@ -72,12 +71,6 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource case v1.SchemeGroupVersion.WithResource("pipes"): return &genericInformer{resource: resource.GroupResource(), informer: f.Camel().V1().Pipes().Informer()}, nil - // Group=camel.apache.org, Version=v1alpha1 - case v1alpha1.SchemeGroupVersion.WithResource("kamelets"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Camel().V1alpha1().Kamelets().Informer()}, nil - case v1alpha1.SchemeGroupVersion.WithResource("kameletbindings"): - return &genericInformer{resource: resource.GroupResource(), informer: f.Camel().V1alpha1().KameletBindings().Informer()}, nil - } return nil, fmt.Errorf("no informer found for %v", resource) diff --git a/pkg/client/camel/listers/camel/v1alpha1/expansion_generated.go b/pkg/client/camel/listers/camel/v1alpha1/expansion_generated.go deleted file mode 100644 index df951a5622..0000000000 --- a/pkg/client/camel/listers/camel/v1alpha1/expansion_generated.go +++ /dev/null @@ -1,36 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by lister-gen. DO NOT EDIT. - -package v1alpha1 - -// KameletListerExpansion allows custom methods to be added to -// KameletLister. -type KameletListerExpansion interface{} - -// KameletNamespaceListerExpansion allows custom methods to be added to -// KameletNamespaceLister. -type KameletNamespaceListerExpansion interface{} - -// KameletBindingListerExpansion allows custom methods to be added to -// KameletBindingLister. -type KameletBindingListerExpansion interface{} - -// KameletBindingNamespaceListerExpansion allows custom methods to be added to -// KameletBindingNamespaceLister. -type KameletBindingNamespaceListerExpansion interface{} diff --git a/pkg/client/camel/listers/camel/v1alpha1/kamelet.go b/pkg/client/camel/listers/camel/v1alpha1/kamelet.go deleted file mode 100644 index 3cfce9f11a..0000000000 --- a/pkg/client/camel/listers/camel/v1alpha1/kamelet.go +++ /dev/null @@ -1,100 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by lister-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - v1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// KameletLister helps list Kamelets. -// All objects returned here must be treated as read-only. -type KameletLister interface { - // List lists all Kamelets in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1alpha1.Kamelet, err error) - // Kamelets returns an object that can list and get Kamelets. - Kamelets(namespace string) KameletNamespaceLister - KameletListerExpansion -} - -// kameletLister implements the KameletLister interface. -type kameletLister struct { - indexer cache.Indexer -} - -// NewKameletLister returns a new KameletLister. -func NewKameletLister(indexer cache.Indexer) KameletLister { - return &kameletLister{indexer: indexer} -} - -// List lists all Kamelets in the indexer. -func (s *kameletLister) List(selector labels.Selector) (ret []*v1alpha1.Kamelet, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1alpha1.Kamelet)) - }) - return ret, err -} - -// Kamelets returns an object that can list and get Kamelets. -func (s *kameletLister) Kamelets(namespace string) KameletNamespaceLister { - return kameletNamespaceLister{indexer: s.indexer, namespace: namespace} -} - -// KameletNamespaceLister helps list and get Kamelets. -// All objects returned here must be treated as read-only. -type KameletNamespaceLister interface { - // List lists all Kamelets in the indexer for a given namespace. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1alpha1.Kamelet, err error) - // Get retrieves the Kamelet from the indexer for a given namespace and name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1alpha1.Kamelet, error) - KameletNamespaceListerExpansion -} - -// kameletNamespaceLister implements the KameletNamespaceLister -// interface. -type kameletNamespaceLister struct { - indexer cache.Indexer - namespace string -} - -// List lists all Kamelets in the indexer for a given namespace. -func (s kameletNamespaceLister) List(selector labels.Selector) (ret []*v1alpha1.Kamelet, err error) { - err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*v1alpha1.Kamelet)) - }) - return ret, err -} - -// Get retrieves the Kamelet from the indexer for a given namespace and name. -func (s kameletNamespaceLister) Get(name string) (*v1alpha1.Kamelet, error) { - obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1alpha1.Resource("kamelet"), name) - } - return obj.(*v1alpha1.Kamelet), nil -} diff --git a/pkg/client/camel/listers/camel/v1alpha1/kameletbinding.go b/pkg/client/camel/listers/camel/v1alpha1/kameletbinding.go deleted file mode 100644 index aa53b58de7..0000000000 --- a/pkg/client/camel/listers/camel/v1alpha1/kameletbinding.go +++ /dev/null @@ -1,100 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Code generated by lister-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - v1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" - "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/labels" - "k8s.io/client-go/tools/cache" -) - -// KameletBindingLister helps list KameletBindings. -// All objects returned here must be treated as read-only. -type KameletBindingLister interface { - // List lists all KameletBindings in the indexer. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1alpha1.KameletBinding, err error) - // KameletBindings returns an object that can list and get KameletBindings. - KameletBindings(namespace string) KameletBindingNamespaceLister - KameletBindingListerExpansion -} - -// kameletBindingLister implements the KameletBindingLister interface. -type kameletBindingLister struct { - indexer cache.Indexer -} - -// NewKameletBindingLister returns a new KameletBindingLister. -func NewKameletBindingLister(indexer cache.Indexer) KameletBindingLister { - return &kameletBindingLister{indexer: indexer} -} - -// List lists all KameletBindings in the indexer. -func (s *kameletBindingLister) List(selector labels.Selector) (ret []*v1alpha1.KameletBinding, err error) { - err = cache.ListAll(s.indexer, selector, func(m interface{}) { - ret = append(ret, m.(*v1alpha1.KameletBinding)) - }) - return ret, err -} - -// KameletBindings returns an object that can list and get KameletBindings. -func (s *kameletBindingLister) KameletBindings(namespace string) KameletBindingNamespaceLister { - return kameletBindingNamespaceLister{indexer: s.indexer, namespace: namespace} -} - -// KameletBindingNamespaceLister helps list and get KameletBindings. -// All objects returned here must be treated as read-only. -type KameletBindingNamespaceLister interface { - // List lists all KameletBindings in the indexer for a given namespace. - // Objects returned here must be treated as read-only. - List(selector labels.Selector) (ret []*v1alpha1.KameletBinding, err error) - // Get retrieves the KameletBinding from the indexer for a given namespace and name. - // Objects returned here must be treated as read-only. - Get(name string) (*v1alpha1.KameletBinding, error) - KameletBindingNamespaceListerExpansion -} - -// kameletBindingNamespaceLister implements the KameletBindingNamespaceLister -// interface. -type kameletBindingNamespaceLister struct { - indexer cache.Indexer - namespace string -} - -// List lists all KameletBindings in the indexer for a given namespace. -func (s kameletBindingNamespaceLister) List(selector labels.Selector) (ret []*v1alpha1.KameletBinding, err error) { - err = cache.ListAllByNamespace(s.indexer, s.namespace, selector, func(m interface{}) { - ret = append(ret, m.(*v1alpha1.KameletBinding)) - }) - return ret, err -} - -// Get retrieves the KameletBinding from the indexer for a given namespace and name. -func (s kameletBindingNamespaceLister) Get(name string) (*v1alpha1.KameletBinding, error) { - obj, exists, err := s.indexer.GetByKey(s.namespace + "/" + name) - if err != nil { - return nil, err - } - if !exists { - return nil, errors.NewNotFound(v1alpha1.Resource("kameletbinding"), name) - } - return obj.(*v1alpha1.KameletBinding), nil -} diff --git a/pkg/client/client.go b/pkg/client/client.go index d2cfce6623..41534109e7 100644 --- a/pkg/client/client.go +++ b/pkg/client/client.go @@ -46,7 +46,6 @@ import ( v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1" camel "github.com/apache/camel-k/v2/pkg/client/camel/clientset/versioned" camelv1 "github.com/apache/camel-k/v2/pkg/client/camel/clientset/versioned/typed/camel/v1" - camelv1alpha1 "github.com/apache/camel-k/v2/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1" "github.com/apache/camel-k/v2/pkg/util" ) @@ -62,7 +61,6 @@ type Client interface { ctrl.Client kubernetes.Interface CamelV1() camelv1.CamelV1Interface - CamelV1alpha1() camelv1alpha1.CamelV1alpha1Interface GetScheme() *runtime.Scheme GetConfig() *rest.Config GetCurrentNamespace(kubeConfig string) (string, error) @@ -95,10 +93,6 @@ func (c *defaultClient) CamelV1() camelv1.CamelV1Interface { return c.camel.CamelV1() } -func (c *defaultClient) CamelV1alpha1() camelv1alpha1.CamelV1alpha1Interface { - return c.camel.CamelV1alpha1() -} - func (c *defaultClient) GetScheme() *runtime.Scheme { return c.scheme } diff --git a/pkg/cmd/delete.go b/pkg/cmd/delete.go index 326fab4b34..d782b990ce 100644 --- a/pkg/cmd/delete.go +++ b/pkg/cmd/delete.go @@ -24,7 +24,6 @@ import ( "strconv" v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1" - "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" "github.com/apache/camel-k/v2/pkg/client" "github.com/apache/camel-k/v2/pkg/util/kubernetes" @@ -146,15 +145,7 @@ func deleteIntegration(ctx context.Context, cmd *cobra.Command, c client.Client, fmt.Fprintln(cmd.OutOrStdout(), "Pipe "+pipe+" deleted") return nil } - deletedKameletBindings, klb, err := deleteKameletBindingIfExists(ctx, c, integration) - if err != nil { - return err - } - if deletedKameletBindings { - // Deleting KameletBinding will automatically clean up the integration - fmt.Fprintln(cmd.OutOrStdout(), "KameletBinding "+klb+" deleted") - return nil - } + return c.Delete(ctx, integration) } @@ -182,30 +173,6 @@ func deletePipeIfExists(ctx context.Context, c client.Client, integration *v1.In return err == nil, name, err } -func deleteKameletBindingIfExists(ctx context.Context, c client.Client, integration *v1.Integration) (bool, string, error) { - kind, name := findCreator(integration) - if kind != v1alpha1.KameletBindingKind || name == "" { - return false, "", nil - } - - binding := v1alpha1.KameletBinding{ - TypeMeta: metav1.TypeMeta{ - Kind: kind, - APIVersion: v1.SchemeGroupVersion.String(), - }, - ObjectMeta: metav1.ObjectMeta{ - Namespace: integration.Namespace, - Name: name, - }, - } - err := c.Delete(ctx, &binding) - if k8errors.IsNotFound(err) { - // Simply skip if binding doesn't exist (could be deleted already) - return false, name, nil - } - return err == nil, name, err -} - func findCreator(integration *v1.Integration) (string, string) { kind := integration.GetLabels()[kubernetes.CamelCreatorLabelKind] name := integration.GetLabels()[kubernetes.CamelCreatorLabelName] diff --git a/pkg/cmd/reset.go b/pkg/cmd/reset.go index c32112e5d4..6950cd9725 100644 --- a/pkg/cmd/reset.go +++ b/pkg/cmd/reset.go @@ -21,7 +21,6 @@ import ( "fmt" v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1" - "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" "github.com/apache/camel-k/v2/pkg/client" "github.com/spf13/cobra" @@ -69,12 +68,6 @@ func (o *resetCmdOptions) reset(cmd *cobra.Command, _ []string) { return } fmt.Fprintln(cmd.OutOrStdout(), n, "pipes deleted from namespace", o.Namespace) - - if n, err = o.deleteAllKameletBindings(c); err != nil { - fmt.Fprint(cmd.ErrOrStderr(), err) - return - } - fmt.Fprintln(cmd.OutOrStdout(), n, "kameletbindings deleted from namespace", o.Namespace) } if !o.SkipIntegrations { @@ -140,21 +133,6 @@ func (o *resetCmdOptions) deleteAllPipes(c client.Client) (int, error) { return len(list.Items), nil } -// Deprecated. -func (o *resetCmdOptions) deleteAllKameletBindings(c client.Client) (int, error) { - list := v1alpha1.NewKameletBindingList() - if err := c.List(o.Context, &list, k8sclient.InNamespace(o.Namespace)); err != nil { - return 0, fmt.Errorf("could not retrieve KameletBindings from namespace %s: %w", o.Namespace, err) - } - for _, i := range list.Items { - klb := i - if err := c.Delete(o.Context, &klb); err != nil { - return 0, fmt.Errorf("could not delete KameletBinding %s from namespace %s: %w", klb.Name, klb.Namespace, err) - } - } - return len(list.Items), nil -} - func isIntegrationOwned(it v1.Integration) bool { for _, ref := range it.OwnerReferences { gv, err := schema.ParseGroupVersion(ref.APIVersion) diff --git a/pkg/controller/add_kameletbinding.go b/pkg/controller/add_kameletbinding.go deleted file mode 100644 index c517b61b02..0000000000 --- a/pkg/controller/add_kameletbinding.go +++ /dev/null @@ -1,26 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package controller - -import ( - "github.com/apache/camel-k/v2/pkg/controller/kameletbinding" -) - -func init() { - addToManager = append(addToManager, kameletbinding.Add) -} diff --git a/pkg/controller/kameletbinding/action.go b/pkg/controller/kameletbinding/action.go deleted file mode 100644 index 4900f70bab..0000000000 --- a/pkg/controller/kameletbinding/action.go +++ /dev/null @@ -1,54 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package kameletbinding - -import ( - "context" - - "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" - "github.com/apache/camel-k/v2/pkg/client" - "github.com/apache/camel-k/v2/pkg/util/log" -) - -// Action --. -type Action interface { - client.Injectable - log.Injectable - - // a user friendly name for the action - Name() string - - // returns true if the action can handle the binding - CanHandle(kb *v1alpha1.KameletBinding) bool - - // executes the handling function - Handle(ctx context.Context, kb *v1alpha1.KameletBinding) (*v1alpha1.KameletBinding, error) -} - -type baseAction struct { - client client.Client - L log.Logger -} - -func (action *baseAction) InjectClient(client client.Client) { - action.client = client -} - -func (action *baseAction) InjectLogger(log log.Logger) { - action.L = log -} diff --git a/pkg/controller/kameletbinding/error_handler.go b/pkg/controller/kameletbinding/error_handler.go deleted file mode 100644 index cd3f1990d4..0000000000 --- a/pkg/controller/kameletbinding/error_handler.go +++ /dev/null @@ -1,115 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package kameletbinding - -import ( - "encoding/json" - "errors" - "fmt" - - "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" - "github.com/apache/camel-k/v2/pkg/util/bindings" -) - -func maybeErrorHandler(errHandlConf *v1alpha1.ErrorHandlerSpec, bindingContext bindings.V1alpha1BindingContext) (*bindings.Binding, error) { - - if errHandlConf == nil { - return nil, nil - } - - var errorHandlerBinding *bindings.Binding - - errorHandlerSpec, err := parseErrorHandler(errHandlConf.RawMessage) - if err != nil { - return nil, fmt.Errorf("could not parse error handler: %w", err) - } - - // We need to get the translated URI from any referenced resource (ie, kamelets) - if errorHandlerSpec.Type() == v1alpha1.ErrorHandlerTypeSink { - errorHandlerBinding, err = bindings.TranslateV1alpha1(bindingContext, bindings.V1alpha1EndpointContext{Type: v1alpha1.EndpointTypeErrorHandler}, *errorHandlerSpec.Endpoint()) - if err != nil { - return nil, fmt.Errorf("could not determine error handler URI: %w", err) - } - } else { - // Create a new binding otherwise in order to store error handler application properties - errorHandlerBinding = &bindings.Binding{ - ApplicationProperties: make(map[string]string), - } - } - - err = setErrorHandlerConfiguration(errorHandlerBinding, errorHandlerSpec) - if err != nil { - return nil, fmt.Errorf("could not set integration error handler: %w", err) - } - - return errorHandlerBinding, nil -} - -func parseErrorHandler(rawMessage v1alpha1.RawMessage) (v1alpha1.ErrorHandler, error) { - var properties map[v1alpha1.ErrorHandlerType]v1alpha1.RawMessage - err := json.Unmarshal(rawMessage, &properties) - if err != nil { - return nil, err - } - if len(properties) > 1 { - return nil, fmt.Errorf("you must provide just 1 error handler, provided %d", len(properties)) - } - - for errHandlType, errHandlValue := range properties { - var dst v1alpha1.ErrorHandler - switch errHandlType { - case v1alpha1.ErrorHandlerTypeNone: - dst = new(v1alpha1.ErrorHandlerNone) - case v1alpha1.ErrorHandlerTypeLog: - dst = new(v1alpha1.ErrorHandlerLog) - case v1alpha1.ErrorHandlerTypeSink: - dst = new(v1alpha1.ErrorHandlerSink) - default: - return nil, fmt.Errorf("unknown error handler type %s", errHandlType) - } - - if err = json.Unmarshal(errHandlValue, dst); err != nil { - return nil, err - } - if err = dst.Validate(); err != nil { - return nil, err - } - - return dst, nil - } - - return nil, errors.New("you must provide any supported error handler") -} - -func setErrorHandlerConfiguration(errorHandlerBinding *bindings.Binding, errorHandler v1alpha1.ErrorHandler) error { - properties, err := errorHandler.Configuration() - if err != nil { - return err - } - // initialize map if not yet initialized - if errorHandlerBinding.ApplicationProperties == nil { - errorHandlerBinding.ApplicationProperties = make(map[string]string) - } - for key, value := range properties { - errorHandlerBinding.ApplicationProperties[key] = fmt.Sprintf("%v", value) - } - if errorHandler.Type() == v1alpha1.ErrorHandlerTypeSink && errorHandlerBinding.URI != "" { - errorHandlerBinding.ApplicationProperties[fmt.Sprintf("%s.deadLetterUri", v1alpha1.ErrorHandlerAppPropertiesPrefix)] = errorHandlerBinding.URI - } - return nil -} diff --git a/pkg/controller/kameletbinding/error_handler_test.go b/pkg/controller/kameletbinding/error_handler_test.go deleted file mode 100644 index 1d991c5acb..0000000000 --- a/pkg/controller/kameletbinding/error_handler_test.go +++ /dev/null @@ -1,104 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package kameletbinding - -import ( - "fmt" - "testing" - - "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" -) - -func TestParseErrorHandlerNoneDoesSucceed(t *testing.T) { - noErrorHandler, err := parseErrorHandler( - []byte(`{"none": null}`), - ) - require.NoError(t, err) - assert.Equal(t, v1alpha1.ErrorHandlerTypeNone, noErrorHandler.Type()) - parameters, err := noErrorHandler.Configuration() - require.NoError(t, err) - assert.Equal(t, "#class:org.apache.camel.builder.NoErrorHandlerBuilder", parameters[v1alpha1.ErrorHandlerAppPropertiesPrefix]) - assert.Equal(t, v1alpha1.ErrorHandlerRefDefaultName, parameters[v1alpha1.ErrorHandlerRefName]) -} - -func TestParseErrorHandlerLogDoesSucceed(t *testing.T) { - logErrorHandler, err := parseErrorHandler( - []byte(`{"log": null}`), - ) - require.NoError(t, err) - assert.Equal(t, v1alpha1.ErrorHandlerTypeLog, logErrorHandler.Type()) - parameters, err := logErrorHandler.Configuration() - require.NoError(t, err) - assert.Equal(t, "#class:org.apache.camel.builder.DefaultErrorHandlerBuilder", parameters[v1alpha1.ErrorHandlerAppPropertiesPrefix]) - assert.Equal(t, v1alpha1.ErrorHandlerRefDefaultName, parameters[v1alpha1.ErrorHandlerRefName]) -} - -func TestParseErrorHandlerLogWithParametersDoesSucceed(t *testing.T) { - logErrorHandler, err := parseErrorHandler( - []byte(`{"log": {"parameters": {"param1": "value1", "param2": "value2"}}}`), - ) - require.NoError(t, err) - assert.Equal(t, v1alpha1.ErrorHandlerTypeLog, logErrorHandler.Type()) - parameters, err := logErrorHandler.Configuration() - require.NoError(t, err) - assert.Equal(t, "#class:org.apache.camel.builder.DefaultErrorHandlerBuilder", parameters[v1alpha1.ErrorHandlerAppPropertiesPrefix]) - assert.Equal(t, "value1", parameters["camel.beans.defaultErrorHandler.param1"]) - assert.Equal(t, "value2", parameters["camel.beans.defaultErrorHandler.param2"]) - assert.Equal(t, v1alpha1.ErrorHandlerRefDefaultName, parameters[v1alpha1.ErrorHandlerRefName]) -} - -func TestParseErrorHandlerSinkDoesSucceed(t *testing.T) { - fmt.Println("Test") - sinkErrorHandler, err := parseErrorHandler( - []byte(`{"sink": {"endpoint": {"uri": "someUri"}}}`), - ) - require.NoError(t, err) - assert.NotNil(t, sinkErrorHandler) - assert.Equal(t, v1alpha1.ErrorHandlerTypeSink, sinkErrorHandler.Type()) - assert.Equal(t, "someUri", *sinkErrorHandler.Endpoint().URI) - parameters, err := sinkErrorHandler.Configuration() - require.NoError(t, err) - assert.Equal(t, "#class:org.apache.camel.builder.DeadLetterChannelBuilder", parameters[v1alpha1.ErrorHandlerAppPropertiesPrefix]) - assert.Equal(t, v1alpha1.ErrorHandlerRefDefaultName, parameters[v1alpha1.ErrorHandlerRefName]) -} - -func TestParseErrorHandlerSinkWithParametersDoesSucceed(t *testing.T) { - sinkErrorHandler, err := parseErrorHandler( - []byte(`{ - "sink": { - "endpoint": { - "uri": "someUri" - }, - "parameters": - {"param1": "value1", "param2": "value2"} - } - }`), - ) - require.NoError(t, err) - assert.NotNil(t, sinkErrorHandler) - assert.Equal(t, v1alpha1.ErrorHandlerTypeSink, sinkErrorHandler.Type()) - assert.Equal(t, "someUri", *sinkErrorHandler.Endpoint().URI) - parameters, err := sinkErrorHandler.Configuration() - require.NoError(t, err) - assert.Equal(t, "#class:org.apache.camel.builder.DeadLetterChannelBuilder", parameters[v1alpha1.ErrorHandlerAppPropertiesPrefix]) - assert.Equal(t, v1alpha1.ErrorHandlerRefDefaultName, parameters[v1alpha1.ErrorHandlerRefName]) - assert.Equal(t, "value1", parameters["camel.beans.defaultErrorHandler.param1"]) - assert.Equal(t, "value2", parameters["camel.beans.defaultErrorHandler.param2"]) -} diff --git a/pkg/controller/kameletbinding/initialize.go b/pkg/controller/kameletbinding/initialize.go deleted file mode 100644 index 1acee1b46c..0000000000 --- a/pkg/controller/kameletbinding/initialize.go +++ /dev/null @@ -1,134 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package kameletbinding - -import ( - "context" - "fmt" - "strings" - - v1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" - - "github.com/apache/camel-k/v2/pkg/kamelet/repository" - "github.com/apache/camel-k/v2/pkg/platform" - "github.com/apache/camel-k/v2/pkg/util/kubernetes" - "github.com/apache/camel-k/v2/pkg/util/patch" - - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/types" - "sigs.k8s.io/controller-runtime/pkg/client" -) - -// NewInitializeAction returns a action that initializes the KameletBinding configuration when not provided by the user. -func NewInitializeAction() Action { - return &initializeAction{} -} - -type initializeAction struct { - baseAction -} - -func (action *initializeAction) Name() string { - return "initialize" -} - -func (action *initializeAction) CanHandle(binding *v1alpha1.KameletBinding) bool { - return binding.Status.Phase == v1alpha1.KameletBindingPhaseNone -} - -func (action *initializeAction) Handle(ctx context.Context, binding *v1alpha1.KameletBinding) (*v1alpha1.KameletBinding, error) { - action.L.Info("Initializing KameletBinding") - - it, err := CreateIntegrationFor(ctx, action.client, binding) - if err != nil { - binding.Status.Phase = v1alpha1.KameletBindingPhaseError - binding.Status.SetErrorCondition(v1alpha1.KameletBindingIntegrationConditionError, - "Couldn't create an Integration custom resource", err) - return binding, err - } - - if _, err := kubernetes.ReplaceResource(ctx, action.client, it); err != nil { - return nil, fmt.Errorf("could not create integration for KameletBinding: %w", err) - } - - // propagate Kamelet icon (best effort) - action.propagateIcon(ctx, binding) - - target := binding.DeepCopy() - target.Status.Phase = v1alpha1.KameletBindingPhaseCreating - return target, nil -} - -func (action *initializeAction) propagateIcon(ctx context.Context, binding *v1alpha1.KameletBinding) { - icon, err := action.findIcon(ctx, binding) - if err != nil { - action.L.Errorf(err, "cannot find icon for KameletBinding %q", binding.Name) - return - } - if icon == "" { - return - } - // compute patch - clone := binding.DeepCopy() - clone.Annotations = make(map[string]string) - for k, v := range binding.Annotations { - clone.Annotations[k] = v - } - if _, ok := clone.Annotations[v1alpha1.AnnotationIcon]; !ok { - clone.Annotations[v1alpha1.AnnotationIcon] = icon - } - p, err := patch.MergePatch(binding, clone) - if err != nil { - action.L.Errorf(err, "cannot compute patch to update icon for KameletBinding %q", binding.Name) - return - } - if len(p) > 0 { - if err := action.client.Patch(ctx, clone, client.RawPatch(types.MergePatchType, p)); err != nil { - action.L.Errorf(err, "cannot apply merge patch to update icon for KameletBinding %q", binding.Name) - return - } - } -} - -func (action *initializeAction) findIcon(ctx context.Context, binding *v1alpha1.KameletBinding) (string, error) { - var kameletRef *corev1.ObjectReference - if binding.Spec.Source.Ref != nil && binding.Spec.Source.Ref.Kind == "Kamelet" && strings.HasPrefix(binding.Spec.Source.Ref.APIVersion, "camel.apache.org/") { - kameletRef = binding.Spec.Source.Ref - } else if binding.Spec.Sink.Ref != nil && binding.Spec.Sink.Ref.Kind == "Kamelet" && strings.HasPrefix(binding.Spec.Sink.Ref.APIVersion, "camel.apache.org/") { - kameletRef = binding.Spec.Sink.Ref - } - - if kameletRef == nil { - return "", nil - } - - repo, err := repository.New(ctx, action.client, binding.Namespace, platform.GetOperatorNamespace()) - if err != nil { - return "", err - } - - kamelet, err := repo.Get(ctx, kameletRef.Name) - if err != nil { - return "", err - } - if kamelet == nil { - return "", nil - } - - return kamelet.Annotations[v1alpha1.AnnotationIcon], nil -} diff --git a/pkg/controller/kameletbinding/integration.go b/pkg/controller/kameletbinding/integration.go deleted file mode 100644 index b28780de88..0000000000 --- a/pkg/controller/kameletbinding/integration.go +++ /dev/null @@ -1,264 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package kameletbinding - -import ( - "context" - "encoding/json" - "fmt" - "sort" - - k8serrors "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - - v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1" - "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" - "github.com/apache/camel-k/v2/pkg/client" - "github.com/apache/camel-k/v2/pkg/platform" - "github.com/apache/camel-k/v2/pkg/util" - "github.com/apache/camel-k/v2/pkg/util/bindings" - "github.com/apache/camel-k/v2/pkg/util/knative" - "github.com/apache/camel-k/v2/pkg/util/kubernetes" - "github.com/apache/camel-k/v2/pkg/util/property" -) - -var ( - endpointTypeSourceContext = bindings.V1alpha1EndpointContext{Type: v1alpha1.EndpointTypeSource} - endpointTypeSinkContext = bindings.V1alpha1EndpointContext{Type: v1alpha1.EndpointTypeSink} -) - -func CreateIntegrationFor(ctx context.Context, c client.Client, binding *v1alpha1.KameletBinding) (*v1.Integration, error) { - controller := true - blockOwnerDeletion := true - annotations := util.CopyMap(binding.Annotations) - // avoid propagating the icon to the integration as it's heavyweight and not needed - delete(annotations, v1alpha1.AnnotationIcon) - - it := v1.Integration{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: binding.Namespace, - Name: binding.Name, - Annotations: annotations, - Labels: util.CopyMap(binding.Labels), - OwnerReferences: []metav1.OwnerReference{ - { - APIVersion: binding.APIVersion, - Kind: binding.Kind, - Name: binding.Name, - UID: binding.UID, - Controller: &controller, - BlockOwnerDeletion: &blockOwnerDeletion, - }, - }, - }, - } - - // creator labels - if it.GetLabels() == nil { - it.SetLabels(make(map[string]string)) - } - it.GetLabels()[kubernetes.CamelCreatorLabelKind] = binding.Kind - it.GetLabels()[kubernetes.CamelCreatorLabelName] = binding.Name - - // start from the integration spec defined in the binding - if binding.Spec.Integration != nil { - it.Spec = *binding.Spec.Integration.DeepCopy() - } - - // Set replicas (or override podspecable value) if present - if binding.Spec.Replicas != nil { - replicas := *binding.Spec.Replicas - it.Spec.Replicas = &replicas - } - - profile, err := determineTraitProfile(ctx, c, binding) - if err != nil { - return nil, err - } - it.Spec.Profile = profile - - if binding.Spec.ServiceAccountName != "" { - it.Spec.ServiceAccountName = binding.Spec.ServiceAccountName - } - - bindingContext := bindings.V1alpha1BindingContext{ - Ctx: ctx, - Client: c, - Namespace: it.Namespace, - Profile: profile, - } - - from, err := bindings.TranslateV1alpha1(bindingContext, endpointTypeSourceContext, binding.Spec.Source) - if err != nil { - return nil, fmt.Errorf("could not determine source URI: %w", err) - } - to, err := bindings.TranslateV1alpha1(bindingContext, endpointTypeSinkContext, binding.Spec.Sink) - if err != nil { - return nil, fmt.Errorf("could not determine sink URI: %w", err) - } - // error handler is optional - errorHandler, err := maybeErrorHandler(binding.Spec.ErrorHandler, bindingContext) - if err != nil { - return nil, fmt.Errorf("could not determine error handler: %w", err) - } - - steps := make([]*bindings.Binding, 0, len(binding.Spec.Steps)) - for idx, step := range binding.Spec.Steps { - position := idx - stepKameletBinding, err := bindings.TranslateV1alpha1(bindingContext, bindings.V1alpha1EndpointContext{ - Type: v1alpha1.EndpointTypeAction, - Position: &position, - }, step) - if err != nil { - return nil, fmt.Errorf("could not determine URI for step %d: %w", idx, err) - } - steps = append(steps, stepKameletBinding) - } - - if to.Step == nil && to.URI == "" { - return nil, fmt.Errorf("illegal step definition for sink step: either Step or URI should be provided") - } - if from.URI == "" { - return nil, fmt.Errorf("illegal step definition for source step: URI should be provided") - } - for index, step := range steps { - if step.Step == nil && step.URI == "" { - return nil, fmt.Errorf("illegal step definition for step %d: either Step or URI should be provided", index) - } - } - - if err := configureKameletBinding(&it, from); err != nil { - return nil, err - } - - if err := configureKameletBinding(&it, steps...); err != nil { - return nil, err - } - - if err := configureKameletBinding(&it, to); err != nil { - return nil, err - } - - if err := configureKameletBinding(&it, errorHandler); err != nil { - return nil, err - } - - if it.Spec.Configuration != nil { - sort.SliceStable(it.Spec.Configuration, func(i, j int) bool { - mi, mj := it.Spec.Configuration[i], it.Spec.Configuration[j] - switch { - case mi.Type != mj.Type: - return mi.Type < mj.Type - default: - return mi.Value < mj.Value - } - }) - } - - dslSteps := make([]map[string]interface{}, 0) - - if from.Step != nil { - dslSteps = append(dslSteps, from.AsYamlDSL()) - } - - for _, step := range steps { - dslSteps = append(dslSteps, step.AsYamlDSL()) - } - - if to.Step != nil { - dslSteps = append(dslSteps, to.AsYamlDSL()) - } - dslSteps = append(dslSteps, map[string]interface{}{ - "to": to.URI, - }) - - fromWrapper := map[string]interface{}{ - "uri": from.URI, - "steps": dslSteps, - } - - flowRoute := map[string]interface{}{ - "route": map[string]interface{}{ - "id": "binding", - "from": fromWrapper, - }, - } - encodedRoute, err := json.Marshal(flowRoute) - if err != nil { - return nil, err - } - it.Spec.Flows = append(it.Spec.Flows, v1.Flow{RawMessage: encodedRoute}) - - return &it, nil -} - -func configureKameletBinding(integration *v1.Integration, bindings ...*bindings.Binding) error { - for _, b := range bindings { - if b == nil { - continue - } - if err := integration.Spec.Traits.Merge(b.Traits); err != nil { - return err - } - for k, v := range b.ApplicationProperties { - entry, err := property.EncodePropertyFileEntry(k, v) - if err != nil { - return err - } - - integration.Spec.Configuration = append(integration.Spec.Configuration, v1.ConfigurationSpec{ - Type: "property", - Value: entry, - }) - } - - } - - return nil -} - -func determineTraitProfile(ctx context.Context, c client.Client, binding *v1alpha1.KameletBinding) (v1.TraitProfile, error) { - if binding.Spec.Integration != nil && binding.Spec.Integration.Profile != "" { - return binding.Spec.Integration.Profile, nil - } - pl, err := platform.GetForResource(ctx, c, binding) - if err != nil && !k8serrors.IsNotFound(err) { - return "", fmt.Errorf("error while retrieving the integration platform: %w", err) - } - if pl != nil { - if pl.Status.Profile != "" { - return pl.Status.Profile, nil - } - if pl.Spec.Profile != "" { - return pl.Spec.Profile, nil - } - } - if ok, err := knative.IsInstalled(c); err != nil { - return "", err - } else if ok { - return v1.TraitProfileKnative, nil - } - if pl != nil { - // Determine profile from cluster type - plProfile := platform.GetTraitProfile(pl) - if plProfile != "" { - return plProfile, nil - } - } - return v1.DefaultTraitProfile, nil -} diff --git a/pkg/controller/kameletbinding/kameletbinding_controller.go b/pkg/controller/kameletbinding/kameletbinding_controller.go deleted file mode 100644 index 2da902b221..0000000000 --- a/pkg/controller/kameletbinding/kameletbinding_controller.go +++ /dev/null @@ -1,255 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package kameletbinding - -import ( - "context" - - k8serrors "k8s.io/apimachinery/pkg/api/errors" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/tools/record" - - v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1" - "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" - ctrl "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/controller-runtime/pkg/controller" - "sigs.k8s.io/controller-runtime/pkg/event" - "sigs.k8s.io/controller-runtime/pkg/handler" - "sigs.k8s.io/controller-runtime/pkg/manager" - "sigs.k8s.io/controller-runtime/pkg/reconcile" - "sigs.k8s.io/controller-runtime/pkg/source" - - "github.com/apache/camel-k/v2/pkg/client" - "github.com/apache/camel-k/v2/pkg/trait" - - camelevent "github.com/apache/camel-k/v2/pkg/event" - "github.com/apache/camel-k/v2/pkg/platform" - "github.com/apache/camel-k/v2/pkg/util/log" - "github.com/apache/camel-k/v2/pkg/util/monitoring" -) - -// Add creates a new KameletBinding Controller and adds it to the Manager. The Manager will set fields on the Controller -// and Start it when the Manager is Started. -func Add(ctx context.Context, mgr manager.Manager, c client.Client) error { - return add(mgr, newReconciler(mgr, c), c) -} - -func newReconciler(mgr manager.Manager, c client.Client) reconcile.Reconciler { - return monitoring.NewInstrumentedReconciler( - &ReconcileKameletBinding{ - client: c, - scheme: mgr.GetScheme(), - recorder: mgr.GetEventRecorderFor("camel-k-kamelet-binding-controller"), - }, - schema.GroupVersionKind{ - Group: v1alpha1.SchemeGroupVersion.Group, - Version: v1alpha1.SchemeGroupVersion.Version, - Kind: v1alpha1.KameletBindingKind, - }, - ) -} - -func add(mgr manager.Manager, r reconcile.Reconciler, c client.Client) error { - ctrl, err := controller.New("kamelet-binding-controller", mgr, controller.Options{Reconciler: r}) - if err != nil { - return err - } - - // Watch for changes to primary resource KameletBinding - err = ctrl.Watch(source.Kind(mgr.GetCache(), &v1alpha1.KameletBinding{}), - &handler.EnqueueRequestForObject{}, - platform.FilteringFuncs{ - UpdateFunc: func(e event.UpdateEvent) bool { - oldKameletBinding, ok := e.ObjectOld.(*v1alpha1.KameletBinding) - if !ok { - return false - } - newKameletBinding, ok := e.ObjectNew.(*v1alpha1.KameletBinding) - if !ok { - return false - } - - // If traits have changed, the reconciliation loop must kick in as - // traits may have impact - sameTraits, err := trait.KameletBindingsHaveSameTraits(c, oldKameletBinding, newKameletBinding) - if err != nil { - Log.ForKameletBinding(newKameletBinding).Error( - err, - "unable to determine if old and new resource have the same traits") - } - if !sameTraits { - return true - } - - // Ignore updates to the binding status in which case metadata.Generation - // does not change, or except when the binding phase changes as it's used - // to transition from one phase to another - return oldKameletBinding.Generation != newKameletBinding.Generation || - oldKameletBinding.Status.Phase != newKameletBinding.Status.Phase - }, - DeleteFunc: func(e event.DeleteEvent) bool { - // Evaluates to false if the object has been confirmed deleted - return !e.DeleteStateUnknown - }, - }, - ) - if err != nil { - return err - } - - // Watch Integration to propagate changes downstream - err = ctrl.Watch(source.Kind(mgr.GetCache(), &v1.Integration{}), - handler.EnqueueRequestForOwner( - mgr.GetScheme(), - mgr.GetRESTMapper(), - &v1alpha1.KameletBinding{}, - handler.OnlyControllerOwner(), - ), - ) - if err != nil { - return err - } - - return nil -} - -var _ reconcile.Reconciler = &ReconcileKameletBinding{} - -// ReconcileKameletBinding reconciles a KameletBinding object. -type ReconcileKameletBinding struct { - // This client, initialized using mgr.Client() above, is a split client - // that reads objects from the cache and writes to the API server - client client.Client - scheme *runtime.Scheme - recorder record.EventRecorder -} - -// Reconcile reads that state of the cluster for a KameletBinding object and makes changes based -// on the state read and what is in the KameletBinding.Spec -// Note: -// The Controller will requeue the Request to be processed again if the returned error is non-nil or -// Result.Requeue is true, otherwise upon completion it will remove the work from the queue. -func (r *ReconcileKameletBinding) Reconcile(ctx context.Context, request reconcile.Request) (reconcile.Result, error) { - rlog := Log.WithValues("request-namespace", request.Namespace, "request-name", request.Name) - rlog.Debug("Reconciling KameletBinding") - - // Make sure the operator is allowed to act on namespace - if ok, err := platform.IsOperatorAllowedOnNamespace(ctx, r.client, request.Namespace); err != nil { - return reconcile.Result{}, err - } else if !ok { - rlog.Info("Ignoring request because namespace is locked") - return reconcile.Result{}, nil - } - - // Fetch the KameletBinding instance - var instance v1alpha1.KameletBinding - - if err := r.client.Get(ctx, request.NamespacedName, &instance); err != nil { - if k8serrors.IsNotFound(err) { - // Request object not found, could have been deleted after reconcile request. - // Owned objects are automatically garbage collected. For additional cleanup - // logic use finalizers. - - // Return and don't requeue - return reconcile.Result{}, nil - } - // Error reading the object - requeue the request. - return reconcile.Result{}, err - } - - // Only process resources assigned to the operator - if !platform.IsOperatorHandlerConsideringLock(ctx, r.client, request.Namespace, &instance) { - rlog.Info("Ignoring request because resource is not assigned to current operator") - return reconcile.Result{}, nil - } - - actions := []Action{ - NewInitializeAction(), - NewMonitorAction(), - } - - var err error - - target := instance.DeepCopy() - targetLog := rlog.ForKameletBinding(target) - - for _, a := range actions { - a.InjectClient(r.client) - a.InjectLogger(targetLog) - - if !a.CanHandle(target) { - continue - } - - targetLog.Debugf("Invoking action %s", a.Name()) - - target, err = a.Handle(ctx, target) - if err != nil { - camelevent.NotifyKameletBindingError(ctx, r.client, r.recorder, &instance, target, err) - // Update the binding (mostly just to update its phase) if the new instance is returned - if target != nil { - _ = r.update(ctx, &instance, target, &targetLog) - } - return reconcile.Result{}, err - } - - if target != nil { - if err := r.update(ctx, &instance, target, &targetLog); err != nil { - camelevent.NotifyKameletBindingError(ctx, r.client, r.recorder, &instance, target, err) - return reconcile.Result{}, err - } - } - - // handle one action at time so the resource - // is always at its latest state - camelevent.NotifyKameletBindingUpdated(ctx, r.client, r.recorder, &instance, target) - - break - } - - return reconcile.Result{}, nil -} - -func (r *ReconcileKameletBinding) update(ctx context.Context, base *v1alpha1.KameletBinding, target *v1alpha1.KameletBinding, log *log.Logger) error { - target.Status.ObservedGeneration = base.Generation - - if err := r.client.Status().Patch(ctx, target, ctrl.MergeFrom(base)); err != nil { - camelevent.NotifyKameletBindingError(ctx, r.client, r.recorder, base, target, err) - return err - } - - if target.Status.Phase != base.Status.Phase { - log.Info( - "State transition", - "phase-from", base.Status.Phase, - "phase-to", target.Status.Phase, - ) - - if target.Status.Phase == v1alpha1.KameletBindingPhaseError { - if cond := target.Status.GetCondition(v1alpha1.KameletBindingIntegrationConditionError); cond != nil { - log.Info( - "Integration error", - "reason", cond.GetReason(), - "error-message", cond.GetMessage()) - } - } - } - - return nil -} diff --git a/pkg/controller/kameletbinding/log.go b/pkg/controller/kameletbinding/log.go deleted file mode 100644 index a7a70a117f..0000000000 --- a/pkg/controller/kameletbinding/log.go +++ /dev/null @@ -1,23 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package kameletbinding - -import "github.com/apache/camel-k/v2/pkg/util/log" - -// Log --. -var Log = log.Log.WithName("controller").WithName("kameletbinding") diff --git a/pkg/controller/kameletbinding/monitor.go b/pkg/controller/kameletbinding/monitor.go deleted file mode 100644 index 8c0187fcf1..0000000000 --- a/pkg/controller/kameletbinding/monitor.go +++ /dev/null @@ -1,191 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package kameletbinding - -import ( - "context" - "fmt" - - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/api/equality" - k8serrors "k8s.io/apimachinery/pkg/api/errors" - - "sigs.k8s.io/controller-runtime/pkg/client" - - v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1" - "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" - "github.com/apache/camel-k/v2/pkg/trait" -) - -// NewMonitorAction returns an action that monitors the Binding after it's fully initialized. -func NewMonitorAction() Action { - return &monitorAction{} -} - -type monitorAction struct { - baseAction -} - -func (action *monitorAction) Name() string { - return "monitor" -} - -func (action *monitorAction) CanHandle(binding *v1alpha1.KameletBinding) bool { - return binding.Status.Phase == v1alpha1.KameletBindingPhaseCreating || - (binding.Status.Phase == v1alpha1.KameletBindingPhaseError && - binding.Status.GetCondition(v1alpha1.KameletBindingIntegrationConditionError) == nil) || - binding.Status.Phase == v1alpha1.KameletBindingPhaseReady -} - -func (action *monitorAction) Handle(ctx context.Context, binding *v1alpha1.KameletBinding) (*v1alpha1.KameletBinding, error) { - key := client.ObjectKey{ - Namespace: binding.Namespace, - Name: binding.Name, - } - it := v1.Integration{} - if err := action.client.Get(ctx, key, &it); err != nil && k8serrors.IsNotFound(err) { - target := binding.DeepCopy() - // Rebuild the integration - target.Status.Phase = v1alpha1.KameletBindingPhaseNone - target.Status.SetCondition( - v1alpha1.KameletBindingConditionReady, - corev1.ConditionFalse, - "", - "", - ) - return target, nil - } else if err != nil { - return nil, fmt.Errorf("could not load integration for Binding %q: %w", binding.Name, err) - } - - operatorIDChanged := v1.GetOperatorIDAnnotation(binding) != "" && - (v1.GetOperatorIDAnnotation(binding) != v1.GetOperatorIDAnnotation(&it)) - - integrationProfileChanged := v1.GetIntegrationProfileAnnotation(binding) != "" && - (v1.GetIntegrationProfileAnnotation(binding) != v1.GetIntegrationProfileAnnotation(&it)) - - integrationProfileNamespaceChanged := v1.GetIntegrationProfileNamespaceAnnotation(binding) != "" && - (v1.GetIntegrationProfileNamespaceAnnotation(binding) != v1.GetIntegrationProfileNamespaceAnnotation(&it)) - - sameTraits, err := trait.IntegrationAndKameletBindingSameTraits(action.client, &it, binding) - if err != nil { - return nil, err - } - - // Check if the integration needs to be changed - expected, err := CreateIntegrationFor(ctx, action.client, binding) - if err != nil { - binding.Status.Phase = v1alpha1.KameletBindingPhaseError - binding.Status.SetErrorCondition(v1alpha1.KameletBindingIntegrationConditionError, - "Couldn't create an Integration custom resource", err) - return binding, err - } - - semanticEquality := equality.Semantic.DeepDerivative(expected.Spec, it.Spec) - - if !semanticEquality || operatorIDChanged || integrationProfileChanged || integrationProfileNamespaceChanged || !sameTraits { - action.L.Info( - "Binding needs a rebuild", - "semantic-equality", !semanticEquality, - "operatorid-changed", operatorIDChanged, - "integration-profile-changed", integrationProfileChanged || integrationProfileNamespaceChanged, - "traits-changed", !sameTraits) - - // Binding has changed and needs rebuild - target := binding.DeepCopy() - // Rebuild the integration - target.Status.Phase = v1alpha1.KameletBindingPhaseNone - target.Status.SetCondition( - v1alpha1.KameletBindingConditionReady, - corev1.ConditionFalse, - "", - "", - ) - return target, nil - } - - // Map integration phase and conditions to Binding - target := binding.DeepCopy() - - switch it.Status.Phase { - - case v1.IntegrationPhaseRunning: - target.Status.Phase = v1alpha1.KameletBindingPhaseReady - setKameletBindingReadyCondition(target, &it) - - case v1.IntegrationPhaseError: - target.Status.Phase = v1alpha1.KameletBindingPhaseError - setKameletBindingReadyCondition(target, &it) - - default: - target.Status.Phase = v1alpha1.KameletBindingPhaseCreating - - c := v1alpha1.KameletBindingCondition{ - Type: v1alpha1.KameletBindingConditionReady, - Status: corev1.ConditionFalse, - Reason: string(target.Status.Phase), - Message: fmt.Sprintf("Integration %q is in %q phase", it.GetName(), target.Status.Phase), - } - - if condition := it.Status.GetCondition(v1.IntegrationConditionReady); condition != nil { - if condition.Pods != nil { - c.Pods = make([]v1.PodCondition, 0, len(condition.Pods)) - c.Pods = append(c.Pods, condition.Pods...) - } - } - - target.Status.SetConditions(c) - } - - // Mirror status replicas and selector - target.Status.Replicas = it.Status.Replicas - target.Status.Selector = it.Status.Selector - - return target, nil -} - -func setKameletBindingReadyCondition(kb *v1alpha1.KameletBinding, it *v1.Integration) { - if condition := it.Status.GetCondition(v1.IntegrationConditionReady); condition != nil { - message := condition.Message - if message == "" { - message = fmt.Sprintf("Integration %q readiness condition is %q", it.GetName(), condition.Status) - } - - c := v1alpha1.KameletBindingCondition{ - Type: v1alpha1.KameletBindingConditionReady, - Status: condition.Status, - Reason: condition.Reason, - Message: message, - } - - if condition.Pods != nil { - c.Pods = make([]v1.PodCondition, 0, len(condition.Pods)) - c.Pods = append(c.Pods, condition.Pods...) - } - - kb.Status.SetConditions(c) - - } else { - kb.Status.SetCondition( - v1alpha1.KameletBindingConditionReady, - corev1.ConditionUnknown, - "", - fmt.Sprintf("Integration %q does not have a readiness condition", it.GetName()), - ) - } -} diff --git a/pkg/controller/pipe/initialize_test.go b/pkg/controller/pipe/initialize_test.go index eb9832a7fa..6367399e08 100644 --- a/pkg/controller/pipe/initialize_test.go +++ b/pkg/controller/pipe/initialize_test.go @@ -114,7 +114,7 @@ func TestNewPipeCamelURIBinding(t *testing.T) { assert.Equal(t, "", pipe.Annotations[v1.AnnotationIcon]) } -func TestNewPipeKameletBinding(t *testing.T) { +func TestNewPipe(t *testing.T) { source := v1.NewKamelet("ns", "my-source") source.Annotations = map[string]string{ v1.AnnotationIcon: "my-source-icon-base64", diff --git a/pkg/event/manager.go b/pkg/event/manager.go index 5af551a31c..435f13b620 100644 --- a/pkg/event/manager.go +++ b/pkg/event/manager.go @@ -28,7 +28,6 @@ import ( ctrl "sigs.k8s.io/controller-runtime/pkg/client" v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1" - "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" "github.com/apache/camel-k/v2/pkg/client" "github.com/apache/camel-k/v2/pkg/util/kubernetes" "github.com/apache/camel-k/v2/pkg/util/log" @@ -262,37 +261,6 @@ func NotifyPipeError(ctx context.Context, c client.Client, recorder record.Event recorder.Eventf(k, corev1.EventTypeWarning, ReasonKameletError, "Cannot reconcile Pipe %s: %v", k.Name, err) } -// NotifyKameletBindingUpdated automatically generates events when a KameletBinding changes. -// Deprecated. -func NotifyKameletBindingUpdated(ctx context.Context, c client.Client, recorder record.EventRecorder, old, newResource *v1alpha1.KameletBinding) { - if newResource == nil { - return - } - oldPhase := "" - var oldConditions []v1.ResourceCondition - if old != nil { - oldPhase = string(old.Status.Phase) - oldConditions = old.Status.GetConditions() - } - if newResource.Status.Phase != v1alpha1.KameletBindingPhaseNone { - notifyIfConditionUpdated(recorder, newResource, oldConditions, newResource.Status.GetConditions(), "KameletBinding", newResource.Name, ReasonPipeConditionChanged) - } - notifyIfPhaseUpdated(ctx, c, recorder, newResource, oldPhase, string(newResource.Status.Phase), "KameletBinding", newResource.Name, ReasonPipePhaseUpdated, "") -} - -// NotifyKameletBindingError automatically generates error events when the binding reconcile cycle phase has an error. -// Deprecated. -func NotifyKameletBindingError(ctx context.Context, c client.Client, recorder record.EventRecorder, old, newResource *v1alpha1.KameletBinding, err error) { - k := old - if newResource != nil { - k = newResource - } - if k == nil { - return - } - recorder.Eventf(k, corev1.EventTypeWarning, ReasonKameletError, "Cannot reconcile KameletBinding %s: %v", k.Name, err) -} - // NotifyBuildUpdated automatically generates events when a build changes. func NotifyBuildUpdated(ctx context.Context, c client.Client, recorder record.EventRecorder, old, newResource *v1.Build) { if newResource == nil { diff --git a/pkg/install/cluster.go b/pkg/install/cluster.go index ab0dc3d90f..9e56a2873c 100644 --- a/pkg/install/cluster.go +++ b/pkg/install/cluster.go @@ -200,18 +200,6 @@ func installCRDs(ctx context.Context, c client.Client, collection *kubernetes.Co return err } - // Install CRD for Kamelet (if needed) - if err := installCRD(ctx, c, "Kamelet", "v1alpha1", "camel.apache.org_kamelets.yaml", - v1beta1Customizer, collection, force); err != nil { - return err - } - - // Install CRD for KameletBinding (if needed) - if err := installCRD(ctx, c, "KameletBinding", "v1alpha1", "camel.apache.org_kameletbindings.yaml", - v1beta1Customizer, collection, force); err != nil { - return err - } - // Install CRD for Pipe (if needed) if err := installCRD(ctx, c, "Pipe", "v1", "camel.apache.org_pipes.yaml", v1beta1Customizer, collection, force); err != nil { @@ -332,11 +320,6 @@ func areAllCrdInstalled(c client.Client) (int, error) { } else if !ok { return 6, nil } - if ok, err := isCrdInstalled(c, "KameletBinding", "v1alpha1"); err != nil { - return 7, fmt.Errorf("error installing KameletBindings CRDs: %w", err) - } else if !ok { - return 7, nil - } if ok, err := isCrdInstalled(c, "Pipe", "v1"); err != nil { return 8, fmt.Errorf("error installing Pipe CRDs: %w", err) } else if !ok { @@ -360,6 +343,7 @@ func isCrdInstalled(c client.Client, kind string, version string) (bool, error) return false, nil } +//nolint:unparam func installCRD( ctx context.Context, c client.Client, kind string, version string, resourceName string, customizer ResourceCustomizer, collection *kubernetes.Collection, force bool, diff --git a/pkg/resources/config/crd/bases/camel.apache.org_kameletbindings.yaml b/pkg/resources/config/crd/bases/camel.apache.org_kameletbindings.yaml deleted file mode 100644 index d841ef7d3b..0000000000 --- a/pkg/resources/config/crd/bases/camel.apache.org_kameletbindings.yaml +++ /dev/null @@ -1,8978 +0,0 @@ -# --------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# --------------------------------------------------------------------------- - ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.15.0 - name: kameletbindings.camel.apache.org -spec: - group: camel.apache.org - names: - categories: - - kamel - - camel - kind: KameletBinding - listKind: KameletBindingList - plural: kameletbindings - shortNames: - - klb - singular: kameletbinding - scope: Namespaced - versions: - - additionalPrinterColumns: - - description: The Kamelet Binding phase - jsonPath: .status.phase - name: Phase - type: string - - description: The number of pods - jsonPath: .status.replicas - name: Replicas - type: integer - deprecated: true - deprecationWarning: v1apha1.KameletBinding is deprecated, please, use v1.Pipe - instead - name: v1alpha1 - schema: - openAPIV3Schema: - description: KameletBinding is the Schema for the kamelets binding API. - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: the specification of a KameletBinding - properties: - errorHandler: - description: ErrorHandler is an optional handler called upon an error - occurring in the integration - type: object - x-kubernetes-preserve-unknown-fields: true - integration: - description: Integration is an optional integration used to specify - custom parameters - properties: - configuration: - description: |- - Deprecated: - Use camel trait (camel.properties) to manage properties - Use mount trait (mount.configs) to manage configs - Use mount trait (mount.resources) to manage resources - Use mount trait (mount.volumes) to manage volumes - items: - description: ConfigurationSpec represents a generic configuration - specification. - properties: - type: - description: 'represents the type of configuration, ie: - property, configmap, secret, ...' - type: string - value: - description: the value to assign to the configuration (syntax - may vary depending on the `Type`) - type: string - required: - - type - - value - type: object - type: array - dependencies: - description: the list of Camel or Maven dependencies required - by the Integration - items: - type: string - type: array - flows: - description: a source in YAML DSL language which contain the routes - to run - items: - description: Flow is an unstructured object representing a Camel - Flow in YAML/JSON DSL. - type: object - x-kubernetes-preserve-unknown-fields: true - type: array - integrationKit: - description: the reference of the `IntegrationKit` which is used - for this Integration - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: |- - If referring to a piece of an object instead of an entire object, this string - should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within a pod, this would take on a value like: - "spec.containers{name}" (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" (container with - index 2 in this pod). This syntax is chosen only to have some well-defined way of - referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. - type: string - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - namespace: - description: |- - Namespace of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - type: string - resourceVersion: - description: |- - Specific resourceVersion to which this reference is made, if any. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - type: string - uid: - description: |- - UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - type: string - type: object - x-kubernetes-map-type: atomic - profile: - description: the profile needed to run this Integration - type: string - replicas: - description: the number of `Pods` needed for the running Integration - format: int32 - type: integer - repositories: - description: additional Maven repositories to be used - items: - type: string - type: array - serviceAccountName: - description: custom SA to use for the Integration - type: string - sources: - description: the sources which contain the Camel routes to run - items: - description: SourceSpec defines the configuration for one or - more routes to be executed in a certain Camel DSL language. - properties: - compression: - description: if the content is compressed (base64 encrypted) - type: boolean - content: - description: the source code (plain text) - type: string - contentKey: - description: the confimap key holding the source content - type: string - contentRef: - description: the confimap reference holding the source content - type: string - contentType: - description: the content type (tipically text or binary) - type: string - from-kamelet: - description: True if the spec is generated from a Kamelet - type: boolean - interceptors: - description: |- - Interceptors are optional identifiers the org.apache.camel.k.RoutesLoader - uses to pre/post process sources - Deprecated: no longer in use. - items: - type: string - type: array - language: - description: specify which is the language (Camel DSL) used - to interpret this source code - type: string - loader: - description: |- - Loader is an optional id of the org.apache.camel.k.RoutesLoader that will - interpret this source at runtime - type: string - name: - description: the name of the specification - type: string - path: - description: the path where the file is stored - type: string - property-names: - description: List of property names defined in the source - (e.g. if type is "template") - items: - type: string - type: array - rawContent: - description: the source code (binary) - format: byte - type: string - type: - description: Type defines the kind of source described by - this object - type: string - type: object - type: array - template: - description: Pod template customization - properties: - spec: - description: the specification - properties: - activeDeadlineSeconds: - description: ActiveDeadlineSeconds - format: int64 - type: integer - automountServiceAccountToken: - description: AutomountServiceAccountToken - type: boolean - containers: - description: Containers - items: - description: A single application container that you - want to run within a pod. - properties: - args: - description: |- - Arguments to the entrypoint. - The container image's CMD is used if this is not provided. - Variable references $(VAR_NAME) are expanded using the container's environment. If a variable - cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced - to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will - produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless - of whether the variable exists or not. Cannot be updated. - More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell - items: - type: string - type: array - command: - description: |- - Entrypoint array. Not executed within a shell. - The container image's ENTRYPOINT is used if this is not provided. - Variable references $(VAR_NAME) are expanded using the container's environment. If a variable - cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced - to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will - produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless - of whether the variable exists or not. Cannot be updated. - More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell - items: - type: string - type: array - env: - description: |- - List of environment variables to set in the container. - Cannot be updated. - items: - description: EnvVar represents an environment - variable present in a Container. - properties: - name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. - type: string - value: - description: |- - Variable references $(VAR_NAME) are expanded - using the previously defined environment variables in the container and - any service environment variables. If a variable cannot be resolved, - the reference in the input string will be unchanged. Double $$ are reduced - to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. - "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, regardless of whether the variable - exists or not. - Defaults to "". - type: string - valueFrom: - description: Source for the environment variable's - value. Cannot be used if value is not empty. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema - the FieldPath is written in terms - of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to - select in the specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required - for volumes, optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to - select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret - in the pod's namespace - properties: - key: - description: The key of the secret - to select from. Must be a valid - secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - name - type: object - type: array - envFrom: - description: |- - List of sources to populate environment variables in the container. - The keys defined within a source must be a C_IDENTIFIER. All invalid keys - will be reported as an event when the container is starting. When a key exists in multiple - sources, the value associated with the last source will take precedence. - Values defined by an Env with a duplicate key will take precedence. - Cannot be updated. - items: - description: EnvFromSource represents the source - of a set of ConfigMaps - properties: - configMapRef: - description: The ConfigMap to select from - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap - must be defined - type: boolean - type: object - x-kubernetes-map-type: atomic - prefix: - description: An optional identifier to prepend - to each key in the ConfigMap. Must be a - C_IDENTIFIER. - type: string - secretRef: - description: The Secret to select from - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret - must be defined - type: boolean - type: object - x-kubernetes-map-type: atomic - type: object - type: array - image: - description: |- - Container image name. - More info: https://kubernetes.io/docs/concepts/containers/images - This field is optional to allow higher level config management to default or override - container images in workload controllers like Deployments and StatefulSets. - type: string - imagePullPolicy: - description: |- - Image pull policy. - One of Always, Never, IfNotPresent. - Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. - Cannot be updated. - More info: https://kubernetes.io/docs/concepts/containers/images#updating-images - type: string - lifecycle: - description: |- - Actions that the management system should take in response to container lifecycle events. - Cannot be updated. - properties: - postStart: - description: |- - PostStart is called immediately after a container is created. If the handler fails, - the container is terminated and restarted according to its restart policy. - Other management of the container blocks until the hook completes. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks - properties: - exec: - description: Exec specifies the action to - take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - httpGet: - description: HTTPGet specifies the http - request to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated - headers. - items: - description: HTTPHeader describes - a custom header to be used in HTTP - probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field - value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. - properties: - seconds: - description: Seconds is the number of - seconds to sleep. - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - description: |- - Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept - for the backward compatibility. There are no validation of this field and - lifecycle hooks will fail in runtime when tcp handler is specified. - properties: - host: - description: 'Optional: Host name to - connect to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - preStop: - description: |- - PreStop is called immediately before a container is terminated due to an - API request or management event such as liveness/startup probe failure, - preemption, resource contention, etc. The handler is not called if the - container crashes or exits. The Pod's termination grace period countdown begins before the - PreStop hook is executed. Regardless of the outcome of the handler, the - container will eventually terminate within the Pod's termination grace - period (unless delayed by finalizers). Other management of the container blocks until the hook completes - or until the termination grace period is reached. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks - properties: - exec: - description: Exec specifies the action to - take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - httpGet: - description: HTTPGet specifies the http - request to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated - headers. - items: - description: HTTPHeader describes - a custom header to be used in HTTP - probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field - value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. - properties: - seconds: - description: Seconds is the number of - seconds to sleep. - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - description: |- - Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept - for the backward compatibility. There are no validation of this field and - lifecycle hooks will fail in runtime when tcp handler is specified. - properties: - host: - description: 'Optional: Host name to - connect to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - type: object - livenessProbe: - description: |- - Periodic probe of container liveness. - Container will be restarted if the probe fails. - Cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - properties: - exec: - description: Exec specifies the action to take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - failureThreshold: - description: |- - Minimum consecutive failures for the probe to be considered failed after having succeeded. - Defaults to 3. Minimum value is 1. - format: int32 - type: integer - grpc: - description: GRPC specifies an action involving - a GRPC port. - properties: - port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. - format: int32 - type: integer - service: - description: |- - Service is the name of the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - - - If this is not specified, the default behavior is defined by gRPC. - type: string - required: - - port - type: object - httpGet: - description: HTTPGet specifies the http request - to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. - items: - description: HTTPHeader describes a custom - header to be used in HTTP probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - initialDelaySeconds: - description: |- - Number of seconds after the container has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - periodSeconds: - description: |- - How often (in seconds) to perform the probe. - Default to 10 seconds. Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - Minimum consecutive successes for the probe to be considered successful after having failed. - Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. - format: int32 - type: integer - tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. - properties: - host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - description: |- - Optional duration in seconds the pod needs to terminate gracefully upon probe failure. - The grace period is the duration in seconds after the processes running in the pod are sent - a termination signal and the time when the processes are forcibly halted with a kill signal. - Set this value longer than the expected cleanup time for your process. - If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this - value overrides the value provided by the pod spec. - Value must be non-negative integer. The value zero indicates stop immediately via - the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. - format: int64 - type: integer - timeoutSeconds: - description: |- - Number of seconds after which the probe times out. - Defaults to 1 second. Minimum value is 1. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - type: object - name: - description: |- - Name of the container specified as a DNS_LABEL. - Each container in a pod must have a unique name (DNS_LABEL). - Cannot be updated. - type: string - ports: - description: |- - List of ports to expose from the container. Not specifying a port here - DOES NOT prevent that port from being exposed. Any port which is - listening on the default "0.0.0.0" address inside a container will be - accessible from the network. - Modifying this array with strategic merge patch may corrupt the data. - For more information See https://github.com/kubernetes/kubernetes/issues/108255. - Cannot be updated. - items: - description: ContainerPort represents a network - port in a single container. - properties: - containerPort: - description: |- - Number of port to expose on the pod's IP address. - This must be a valid port number, 0 < x < 65536. - format: int32 - type: integer - hostIP: - description: What host IP to bind the external - port to. - type: string - hostPort: - description: |- - Number of port to expose on the host. - If specified, this must be a valid port number, 0 < x < 65536. - If HostNetwork is specified, this must match ContainerPort. - Most containers do not need this. - format: int32 - type: integer - name: - description: |- - If specified, this must be an IANA_SVC_NAME and unique within the pod. Each - named port in a pod must have a unique name. Name for the port that can be - referred to by services. - type: string - protocol: - default: TCP - description: |- - Protocol for port. Must be UDP, TCP, or SCTP. - Defaults to "TCP". - type: string - required: - - containerPort - type: object - type: array - x-kubernetes-list-map-keys: - - containerPort - - protocol - x-kubernetes-list-type: map - readinessProbe: - description: |- - Periodic probe of container service readiness. - Container will be removed from service endpoints if the probe fails. - Cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - properties: - exec: - description: Exec specifies the action to take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - failureThreshold: - description: |- - Minimum consecutive failures for the probe to be considered failed after having succeeded. - Defaults to 3. Minimum value is 1. - format: int32 - type: integer - grpc: - description: GRPC specifies an action involving - a GRPC port. - properties: - port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. - format: int32 - type: integer - service: - description: |- - Service is the name of the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - - - If this is not specified, the default behavior is defined by gRPC. - type: string - required: - - port - type: object - httpGet: - description: HTTPGet specifies the http request - to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. - items: - description: HTTPHeader describes a custom - header to be used in HTTP probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - initialDelaySeconds: - description: |- - Number of seconds after the container has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - periodSeconds: - description: |- - How often (in seconds) to perform the probe. - Default to 10 seconds. Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - Minimum consecutive successes for the probe to be considered successful after having failed. - Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. - format: int32 - type: integer - tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. - properties: - host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - description: |- - Optional duration in seconds the pod needs to terminate gracefully upon probe failure. - The grace period is the duration in seconds after the processes running in the pod are sent - a termination signal and the time when the processes are forcibly halted with a kill signal. - Set this value longer than the expected cleanup time for your process. - If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this - value overrides the value provided by the pod spec. - Value must be non-negative integer. The value zero indicates stop immediately via - the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. - format: int64 - type: integer - timeoutSeconds: - description: |- - Number of seconds after which the probe times out. - Defaults to 1 second. Minimum value is 1. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - type: object - resizePolicy: - description: Resources resize policy for the container. - items: - description: ContainerResizePolicy represents - resource resize policy for the container. - properties: - resourceName: - description: |- - Name of the resource to which this resource resize policy applies. - Supported values: cpu, memory. - type: string - restartPolicy: - description: |- - Restart policy to apply when specified resource is resized. - If not specified, it defaults to NotRequired. - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic - resources: - description: |- - Compute Resources required by this container. - Cannot be updated. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - properties: - claims: - description: |- - Claims lists the names of resources, defined in spec.resourceClaims, - that are used by this container. - - - This is an alpha field and requires enabling the - DynamicResourceAllocation feature gate. - - - This field is immutable. It can only be set for containers. - items: - description: ResourceClaim references one - entry in PodSpec.ResourceClaims. - properties: - name: - description: |- - Name must match the name of one entry in pod.spec.resourceClaims of - the Pod where this field is used. It makes that resource available - inside a container. - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: |- - Limits describes the maximum amount of compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: |- - Requests describes the minimum amount of compute resources required. - If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, - otherwise to an implementation-defined value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - type: object - restartPolicy: - description: |- - RestartPolicy defines the restart behavior of individual containers in a pod. - This field may only be set for init containers, and the only allowed value is "Always". - For non-init containers or when this field is not specified, - the restart behavior is defined by the Pod's restart policy and the container type. - Setting the RestartPolicy as "Always" for the init container will have the following effect: - this init container will be continually restarted on - exit until all regular containers have terminated. Once all regular - containers have completed, all init containers with restartPolicy "Always" - will be shut down. This lifecycle differs from normal init containers and - is often referred to as a "sidecar" container. Although this init - container still starts in the init container sequence, it does not wait - for the container to complete before proceeding to the next init - container. Instead, the next init container starts immediately after this - init container is started, or after any startupProbe has successfully - completed. - type: string - securityContext: - description: |- - SecurityContext defines the security options the container should be run with. - If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ - properties: - allowPrivilegeEscalation: - description: |- - AllowPrivilegeEscalation controls whether a process can gain more - privileges than its parent process. This bool directly controls if - the no_new_privs flag will be set on the container process. - AllowPrivilegeEscalation is true always when the container is: - 1) run as Privileged - 2) has CAP_SYS_ADMIN - Note that this field cannot be set when spec.os.name is windows. - type: boolean - capabilities: - description: |- - The capabilities to add/drop when running containers. - Defaults to the default set of capabilities granted by the container runtime. - Note that this field cannot be set when spec.os.name is windows. - properties: - add: - description: Added capabilities - items: - description: Capability represent POSIX - capabilities type - type: string - type: array - drop: - description: Removed capabilities - items: - description: Capability represent POSIX - capabilities type - type: string - type: array - type: object - privileged: - description: |- - Run container in privileged mode. - Processes in privileged containers are essentially equivalent to root on the host. - Defaults to false. - Note that this field cannot be set when spec.os.name is windows. - type: boolean - procMount: - description: |- - procMount denotes the type of proc mount to use for the containers. - The default is DefaultProcMount which uses the container runtime defaults for - readonly paths and masked paths. - This requires the ProcMountType feature flag to be enabled. - Note that this field cannot be set when spec.os.name is windows. - type: string - readOnlyRootFilesystem: - description: |- - Whether this container has a read-only root filesystem. - Default is false. - Note that this field cannot be set when spec.os.name is windows. - type: boolean - runAsGroup: - description: |- - The GID to run the entrypoint of the container process. - Uses runtime default if unset. - May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is windows. - format: int64 - type: integer - runAsNonRoot: - description: |- - Indicates that the container must run as a non-root user. - If true, the Kubelet will validate the image at runtime to ensure that it - does not run as UID 0 (root) and fail to start the container if it does. - If unset or false, no such validation will be performed. - May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - type: boolean - runAsUser: - description: |- - The UID to run the entrypoint of the container process. - Defaults to user specified in image metadata if unspecified. - May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is windows. - format: int64 - type: integer - seLinuxOptions: - description: |- - The SELinux context to be applied to the container. - If unspecified, the container runtime will allocate a random SELinux context for each - container. May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is windows. - properties: - level: - description: Level is SELinux level label - that applies to the container. - type: string - role: - description: Role is a SELinux role label - that applies to the container. - type: string - type: - description: Type is a SELinux type label - that applies to the container. - type: string - user: - description: User is a SELinux user label - that applies to the container. - type: string - type: object - seccompProfile: - description: |- - The seccomp options to use by this container. If seccomp options are - provided at both the pod & container level, the container options - override the pod options. - Note that this field cannot be set when spec.os.name is windows. - properties: - localhostProfile: - description: |- - localhostProfile indicates a profile defined in a file on the node should be used. - The profile must be preconfigured on the node to work. - Must be a descending path, relative to the kubelet's configured seccomp profile location. - Must be set if type is "Localhost". Must NOT be set for any other type. - type: string - type: - description: |- - type indicates which kind of seccomp profile will be applied. - Valid options are: - - - Localhost - a profile defined in a file on the node should be used. - RuntimeDefault - the container runtime default profile should be used. - Unconfined - no profile should be applied. - type: string - required: - - type - type: object - windowsOptions: - description: |- - The Windows specific settings applied to all containers. - If unspecified, the options from the PodSecurityContext will be used. - If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is linux. - properties: - gmsaCredentialSpec: - description: |- - GMSACredentialSpec is where the GMSA admission webhook - (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the - GMSA credential spec named by the GMSACredentialSpecName field. - type: string - gmsaCredentialSpecName: - description: GMSACredentialSpecName is the - name of the GMSA credential spec to use. - type: string - hostProcess: - description: |- - HostProcess determines if a container should be run as a 'Host Process' container. - All of a Pod's containers must have the same effective HostProcess value - (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). - In addition, if HostProcess is true then HostNetwork must also be set to true. - type: boolean - runAsUserName: - description: |- - The UserName in Windows to run the entrypoint of the container process. - Defaults to the user specified in image metadata if unspecified. - May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - type: string - type: object - type: object - startupProbe: - description: |- - StartupProbe indicates that the Pod has successfully initialized. - If specified, no other probes are executed until this completes successfully. - If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. - This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, - when it might take a long time to load data or warm a cache, than during steady-state operation. - This cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - properties: - exec: - description: Exec specifies the action to take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - failureThreshold: - description: |- - Minimum consecutive failures for the probe to be considered failed after having succeeded. - Defaults to 3. Minimum value is 1. - format: int32 - type: integer - grpc: - description: GRPC specifies an action involving - a GRPC port. - properties: - port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. - format: int32 - type: integer - service: - description: |- - Service is the name of the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - - - If this is not specified, the default behavior is defined by gRPC. - type: string - required: - - port - type: object - httpGet: - description: HTTPGet specifies the http request - to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. - items: - description: HTTPHeader describes a custom - header to be used in HTTP probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - initialDelaySeconds: - description: |- - Number of seconds after the container has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - periodSeconds: - description: |- - How often (in seconds) to perform the probe. - Default to 10 seconds. Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - Minimum consecutive successes for the probe to be considered successful after having failed. - Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. - format: int32 - type: integer - tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. - properties: - host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - description: |- - Optional duration in seconds the pod needs to terminate gracefully upon probe failure. - The grace period is the duration in seconds after the processes running in the pod are sent - a termination signal and the time when the processes are forcibly halted with a kill signal. - Set this value longer than the expected cleanup time for your process. - If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this - value overrides the value provided by the pod spec. - Value must be non-negative integer. The value zero indicates stop immediately via - the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. - format: int64 - type: integer - timeoutSeconds: - description: |- - Number of seconds after which the probe times out. - Defaults to 1 second. Minimum value is 1. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - type: object - stdin: - description: |- - Whether this container should allocate a buffer for stdin in the container runtime. If this - is not set, reads from stdin in the container will always result in EOF. - Default is false. - type: boolean - stdinOnce: - description: |- - Whether the container runtime should close the stdin channel after it has been opened by - a single attach. When stdin is true the stdin stream will remain open across multiple attach - sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the - first client attaches to stdin, and then remains open and accepts data until the client disconnects, - at which time stdin is closed and remains closed until the container is restarted. If this - flag is false, a container processes that reads from stdin will never receive an EOF. - Default is false - type: boolean - terminationMessagePath: - description: |- - Optional: Path at which the file to which the container's termination message - will be written is mounted into the container's filesystem. - Message written is intended to be brief final status, such as an assertion failure message. - Will be truncated by the node if greater than 4096 bytes. The total message length across - all containers will be limited to 12kb. - Defaults to /dev/termination-log. - Cannot be updated. - type: string - terminationMessagePolicy: - description: |- - Indicate how the termination message should be populated. File will use the contents of - terminationMessagePath to populate the container status message on both success and failure. - FallbackToLogsOnError will use the last chunk of container log output if the termination - message file is empty and the container exited with an error. - The log output is limited to 2048 bytes or 80 lines, whichever is smaller. - Defaults to File. - Cannot be updated. - type: string - tty: - description: |- - Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. - Default is false. - type: boolean - volumeDevices: - description: volumeDevices is the list of block - devices to be used by the container. - items: - description: volumeDevice describes a mapping - of a raw block device within a container. - properties: - devicePath: - description: devicePath is the path inside - of the container that the device will be - mapped to. - type: string - name: - description: name must match the name of a - persistentVolumeClaim in the pod - type: string - required: - - devicePath - - name - type: object - type: array - volumeMounts: - description: |- - Pod volumes to mount into the container's filesystem. - Cannot be updated. - items: - description: VolumeMount describes a mounting - of a Volume within a container. - properties: - mountPath: - description: |- - Path within the container at which the volume should be mounted. Must - not contain ':'. - type: string - mountPropagation: - description: |- - mountPropagation determines how mounts are propagated from the host - to container and the other way around. - When not set, MountPropagationNone is used. - This field is beta in 1.10. - type: string - name: - description: This must match the Name of a - Volume. - type: string - readOnly: - description: |- - Mounted read-only if true, read-write otherwise (false or unspecified). - Defaults to false. - type: boolean - subPath: - description: |- - Path within the volume from which the container's volume should be mounted. - Defaults to "" (volume's root). - type: string - subPathExpr: - description: |- - Expanded path within the volume from which the container's volume should be mounted. - Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. - Defaults to "" (volume's root). - SubPathExpr and SubPath are mutually exclusive. - type: string - required: - - mountPath - - name - type: object - type: array - workingDir: - description: |- - Container's working directory. - If not specified, the container runtime's default will be used, which - might be configured in the container image. - Cannot be updated. - type: string - required: - - name - type: object - type: array - dnsPolicy: - description: DNSPolicy - type: string - ephemeralContainers: - description: EphemeralContainers - items: - description: |- - An EphemeralContainer is a temporary container that you may add to an existing Pod for - user-initiated activities such as debugging. Ephemeral containers have no resource or - scheduling guarantees, and they will not be restarted when they exit or when a Pod is - removed or restarted. The kubelet may evict a Pod if an ephemeral container causes the - Pod to exceed its resource allocation. - - - To add an ephemeral container, use the ephemeralcontainers subresource of an existing - Pod. Ephemeral containers may not be removed or restarted. - properties: - args: - description: |- - Arguments to the entrypoint. - The image's CMD is used if this is not provided. - Variable references $(VAR_NAME) are expanded using the container's environment. If a variable - cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced - to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will - produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless - of whether the variable exists or not. Cannot be updated. - More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell - items: - type: string - type: array - command: - description: |- - Entrypoint array. Not executed within a shell. - The image's ENTRYPOINT is used if this is not provided. - Variable references $(VAR_NAME) are expanded using the container's environment. If a variable - cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced - to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will - produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless - of whether the variable exists or not. Cannot be updated. - More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell - items: - type: string - type: array - env: - description: |- - List of environment variables to set in the container. - Cannot be updated. - items: - description: EnvVar represents an environment - variable present in a Container. - properties: - name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. - type: string - value: - description: |- - Variable references $(VAR_NAME) are expanded - using the previously defined environment variables in the container and - any service environment variables. If a variable cannot be resolved, - the reference in the input string will be unchanged. Double $$ are reduced - to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. - "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, regardless of whether the variable - exists or not. - Defaults to "". - type: string - valueFrom: - description: Source for the environment variable's - value. Cannot be used if value is not empty. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema - the FieldPath is written in terms - of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to - select in the specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required - for volumes, optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to - select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret - in the pod's namespace - properties: - key: - description: The key of the secret - to select from. Must be a valid - secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - name - type: object - type: array - envFrom: - description: |- - List of sources to populate environment variables in the container. - The keys defined within a source must be a C_IDENTIFIER. All invalid keys - will be reported as an event when the container is starting. When a key exists in multiple - sources, the value associated with the last source will take precedence. - Values defined by an Env with a duplicate key will take precedence. - Cannot be updated. - items: - description: EnvFromSource represents the source - of a set of ConfigMaps - properties: - configMapRef: - description: The ConfigMap to select from - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap - must be defined - type: boolean - type: object - x-kubernetes-map-type: atomic - prefix: - description: An optional identifier to prepend - to each key in the ConfigMap. Must be a - C_IDENTIFIER. - type: string - secretRef: - description: The Secret to select from - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret - must be defined - type: boolean - type: object - x-kubernetes-map-type: atomic - type: object - type: array - image: - description: |- - Container image name. - More info: https://kubernetes.io/docs/concepts/containers/images - type: string - imagePullPolicy: - description: |- - Image pull policy. - One of Always, Never, IfNotPresent. - Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. - Cannot be updated. - More info: https://kubernetes.io/docs/concepts/containers/images#updating-images - type: string - lifecycle: - description: Lifecycle is not allowed for ephemeral - containers. - properties: - postStart: - description: |- - PostStart is called immediately after a container is created. If the handler fails, - the container is terminated and restarted according to its restart policy. - Other management of the container blocks until the hook completes. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks - properties: - exec: - description: Exec specifies the action to - take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - httpGet: - description: HTTPGet specifies the http - request to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated - headers. - items: - description: HTTPHeader describes - a custom header to be used in HTTP - probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field - value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. - properties: - seconds: - description: Seconds is the number of - seconds to sleep. - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - description: |- - Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept - for the backward compatibility. There are no validation of this field and - lifecycle hooks will fail in runtime when tcp handler is specified. - properties: - host: - description: 'Optional: Host name to - connect to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - preStop: - description: |- - PreStop is called immediately before a container is terminated due to an - API request or management event such as liveness/startup probe failure, - preemption, resource contention, etc. The handler is not called if the - container crashes or exits. The Pod's termination grace period countdown begins before the - PreStop hook is executed. Regardless of the outcome of the handler, the - container will eventually terminate within the Pod's termination grace - period (unless delayed by finalizers). Other management of the container blocks until the hook completes - or until the termination grace period is reached. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks - properties: - exec: - description: Exec specifies the action to - take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - httpGet: - description: HTTPGet specifies the http - request to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated - headers. - items: - description: HTTPHeader describes - a custom header to be used in HTTP - probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field - value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. - properties: - seconds: - description: Seconds is the number of - seconds to sleep. - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - description: |- - Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept - for the backward compatibility. There are no validation of this field and - lifecycle hooks will fail in runtime when tcp handler is specified. - properties: - host: - description: 'Optional: Host name to - connect to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - type: object - livenessProbe: - description: Probes are not allowed for ephemeral - containers. - properties: - exec: - description: Exec specifies the action to take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - failureThreshold: - description: |- - Minimum consecutive failures for the probe to be considered failed after having succeeded. - Defaults to 3. Minimum value is 1. - format: int32 - type: integer - grpc: - description: GRPC specifies an action involving - a GRPC port. - properties: - port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. - format: int32 - type: integer - service: - description: |- - Service is the name of the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - - - If this is not specified, the default behavior is defined by gRPC. - type: string - required: - - port - type: object - httpGet: - description: HTTPGet specifies the http request - to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. - items: - description: HTTPHeader describes a custom - header to be used in HTTP probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - initialDelaySeconds: - description: |- - Number of seconds after the container has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - periodSeconds: - description: |- - How often (in seconds) to perform the probe. - Default to 10 seconds. Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - Minimum consecutive successes for the probe to be considered successful after having failed. - Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. - format: int32 - type: integer - tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. - properties: - host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - description: |- - Optional duration in seconds the pod needs to terminate gracefully upon probe failure. - The grace period is the duration in seconds after the processes running in the pod are sent - a termination signal and the time when the processes are forcibly halted with a kill signal. - Set this value longer than the expected cleanup time for your process. - If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this - value overrides the value provided by the pod spec. - Value must be non-negative integer. The value zero indicates stop immediately via - the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. - format: int64 - type: integer - timeoutSeconds: - description: |- - Number of seconds after which the probe times out. - Defaults to 1 second. Minimum value is 1. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - type: object - name: - description: |- - Name of the ephemeral container specified as a DNS_LABEL. - This name must be unique among all containers, init containers and ephemeral containers. - type: string - ports: - description: Ports are not allowed for ephemeral - containers. - items: - description: ContainerPort represents a network - port in a single container. - properties: - containerPort: - description: |- - Number of port to expose on the pod's IP address. - This must be a valid port number, 0 < x < 65536. - format: int32 - type: integer - hostIP: - description: What host IP to bind the external - port to. - type: string - hostPort: - description: |- - Number of port to expose on the host. - If specified, this must be a valid port number, 0 < x < 65536. - If HostNetwork is specified, this must match ContainerPort. - Most containers do not need this. - format: int32 - type: integer - name: - description: |- - If specified, this must be an IANA_SVC_NAME and unique within the pod. Each - named port in a pod must have a unique name. Name for the port that can be - referred to by services. - type: string - protocol: - default: TCP - description: |- - Protocol for port. Must be UDP, TCP, or SCTP. - Defaults to "TCP". - type: string - required: - - containerPort - type: object - type: array - x-kubernetes-list-map-keys: - - containerPort - - protocol - x-kubernetes-list-type: map - readinessProbe: - description: Probes are not allowed for ephemeral - containers. - properties: - exec: - description: Exec specifies the action to take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - failureThreshold: - description: |- - Minimum consecutive failures for the probe to be considered failed after having succeeded. - Defaults to 3. Minimum value is 1. - format: int32 - type: integer - grpc: - description: GRPC specifies an action involving - a GRPC port. - properties: - port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. - format: int32 - type: integer - service: - description: |- - Service is the name of the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - - - If this is not specified, the default behavior is defined by gRPC. - type: string - required: - - port - type: object - httpGet: - description: HTTPGet specifies the http request - to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. - items: - description: HTTPHeader describes a custom - header to be used in HTTP probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - initialDelaySeconds: - description: |- - Number of seconds after the container has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - periodSeconds: - description: |- - How often (in seconds) to perform the probe. - Default to 10 seconds. Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - Minimum consecutive successes for the probe to be considered successful after having failed. - Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. - format: int32 - type: integer - tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. - properties: - host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - description: |- - Optional duration in seconds the pod needs to terminate gracefully upon probe failure. - The grace period is the duration in seconds after the processes running in the pod are sent - a termination signal and the time when the processes are forcibly halted with a kill signal. - Set this value longer than the expected cleanup time for your process. - If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this - value overrides the value provided by the pod spec. - Value must be non-negative integer. The value zero indicates stop immediately via - the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. - format: int64 - type: integer - timeoutSeconds: - description: |- - Number of seconds after which the probe times out. - Defaults to 1 second. Minimum value is 1. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - type: object - resizePolicy: - description: Resources resize policy for the container. - items: - description: ContainerResizePolicy represents - resource resize policy for the container. - properties: - resourceName: - description: |- - Name of the resource to which this resource resize policy applies. - Supported values: cpu, memory. - type: string - restartPolicy: - description: |- - Restart policy to apply when specified resource is resized. - If not specified, it defaults to NotRequired. - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic - resources: - description: |- - Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources - already allocated to the pod. - properties: - claims: - description: |- - Claims lists the names of resources, defined in spec.resourceClaims, - that are used by this container. - - - This is an alpha field and requires enabling the - DynamicResourceAllocation feature gate. - - - This field is immutable. It can only be set for containers. - items: - description: ResourceClaim references one - entry in PodSpec.ResourceClaims. - properties: - name: - description: |- - Name must match the name of one entry in pod.spec.resourceClaims of - the Pod where this field is used. It makes that resource available - inside a container. - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: |- - Limits describes the maximum amount of compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: |- - Requests describes the minimum amount of compute resources required. - If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, - otherwise to an implementation-defined value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - type: object - restartPolicy: - description: |- - Restart policy for the container to manage the restart behavior of each - container within a pod. - This may only be set for init containers. You cannot set this field on - ephemeral containers. - type: string - securityContext: - description: |- - Optional: SecurityContext defines the security options the ephemeral container should be run with. - If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. - properties: - allowPrivilegeEscalation: - description: |- - AllowPrivilegeEscalation controls whether a process can gain more - privileges than its parent process. This bool directly controls if - the no_new_privs flag will be set on the container process. - AllowPrivilegeEscalation is true always when the container is: - 1) run as Privileged - 2) has CAP_SYS_ADMIN - Note that this field cannot be set when spec.os.name is windows. - type: boolean - capabilities: - description: |- - The capabilities to add/drop when running containers. - Defaults to the default set of capabilities granted by the container runtime. - Note that this field cannot be set when spec.os.name is windows. - properties: - add: - description: Added capabilities - items: - description: Capability represent POSIX - capabilities type - type: string - type: array - drop: - description: Removed capabilities - items: - description: Capability represent POSIX - capabilities type - type: string - type: array - type: object - privileged: - description: |- - Run container in privileged mode. - Processes in privileged containers are essentially equivalent to root on the host. - Defaults to false. - Note that this field cannot be set when spec.os.name is windows. - type: boolean - procMount: - description: |- - procMount denotes the type of proc mount to use for the containers. - The default is DefaultProcMount which uses the container runtime defaults for - readonly paths and masked paths. - This requires the ProcMountType feature flag to be enabled. - Note that this field cannot be set when spec.os.name is windows. - type: string - readOnlyRootFilesystem: - description: |- - Whether this container has a read-only root filesystem. - Default is false. - Note that this field cannot be set when spec.os.name is windows. - type: boolean - runAsGroup: - description: |- - The GID to run the entrypoint of the container process. - Uses runtime default if unset. - May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is windows. - format: int64 - type: integer - runAsNonRoot: - description: |- - Indicates that the container must run as a non-root user. - If true, the Kubelet will validate the image at runtime to ensure that it - does not run as UID 0 (root) and fail to start the container if it does. - If unset or false, no such validation will be performed. - May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - type: boolean - runAsUser: - description: |- - The UID to run the entrypoint of the container process. - Defaults to user specified in image metadata if unspecified. - May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is windows. - format: int64 - type: integer - seLinuxOptions: - description: |- - The SELinux context to be applied to the container. - If unspecified, the container runtime will allocate a random SELinux context for each - container. May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is windows. - properties: - level: - description: Level is SELinux level label - that applies to the container. - type: string - role: - description: Role is a SELinux role label - that applies to the container. - type: string - type: - description: Type is a SELinux type label - that applies to the container. - type: string - user: - description: User is a SELinux user label - that applies to the container. - type: string - type: object - seccompProfile: - description: |- - The seccomp options to use by this container. If seccomp options are - provided at both the pod & container level, the container options - override the pod options. - Note that this field cannot be set when spec.os.name is windows. - properties: - localhostProfile: - description: |- - localhostProfile indicates a profile defined in a file on the node should be used. - The profile must be preconfigured on the node to work. - Must be a descending path, relative to the kubelet's configured seccomp profile location. - Must be set if type is "Localhost". Must NOT be set for any other type. - type: string - type: - description: |- - type indicates which kind of seccomp profile will be applied. - Valid options are: - - - Localhost - a profile defined in a file on the node should be used. - RuntimeDefault - the container runtime default profile should be used. - Unconfined - no profile should be applied. - type: string - required: - - type - type: object - windowsOptions: - description: |- - The Windows specific settings applied to all containers. - If unspecified, the options from the PodSecurityContext will be used. - If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is linux. - properties: - gmsaCredentialSpec: - description: |- - GMSACredentialSpec is where the GMSA admission webhook - (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the - GMSA credential spec named by the GMSACredentialSpecName field. - type: string - gmsaCredentialSpecName: - description: GMSACredentialSpecName is the - name of the GMSA credential spec to use. - type: string - hostProcess: - description: |- - HostProcess determines if a container should be run as a 'Host Process' container. - All of a Pod's containers must have the same effective HostProcess value - (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). - In addition, if HostProcess is true then HostNetwork must also be set to true. - type: boolean - runAsUserName: - description: |- - The UserName in Windows to run the entrypoint of the container process. - Defaults to the user specified in image metadata if unspecified. - May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - type: string - type: object - type: object - startupProbe: - description: Probes are not allowed for ephemeral - containers. - properties: - exec: - description: Exec specifies the action to take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - failureThreshold: - description: |- - Minimum consecutive failures for the probe to be considered failed after having succeeded. - Defaults to 3. Minimum value is 1. - format: int32 - type: integer - grpc: - description: GRPC specifies an action involving - a GRPC port. - properties: - port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. - format: int32 - type: integer - service: - description: |- - Service is the name of the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - - - If this is not specified, the default behavior is defined by gRPC. - type: string - required: - - port - type: object - httpGet: - description: HTTPGet specifies the http request - to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. - items: - description: HTTPHeader describes a custom - header to be used in HTTP probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - initialDelaySeconds: - description: |- - Number of seconds after the container has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - periodSeconds: - description: |- - How often (in seconds) to perform the probe. - Default to 10 seconds. Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - Minimum consecutive successes for the probe to be considered successful after having failed. - Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. - format: int32 - type: integer - tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. - properties: - host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - description: |- - Optional duration in seconds the pod needs to terminate gracefully upon probe failure. - The grace period is the duration in seconds after the processes running in the pod are sent - a termination signal and the time when the processes are forcibly halted with a kill signal. - Set this value longer than the expected cleanup time for your process. - If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this - value overrides the value provided by the pod spec. - Value must be non-negative integer. The value zero indicates stop immediately via - the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. - format: int64 - type: integer - timeoutSeconds: - description: |- - Number of seconds after which the probe times out. - Defaults to 1 second. Minimum value is 1. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - type: object - stdin: - description: |- - Whether this container should allocate a buffer for stdin in the container runtime. If this - is not set, reads from stdin in the container will always result in EOF. - Default is false. - type: boolean - stdinOnce: - description: |- - Whether the container runtime should close the stdin channel after it has been opened by - a single attach. When stdin is true the stdin stream will remain open across multiple attach - sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the - first client attaches to stdin, and then remains open and accepts data until the client disconnects, - at which time stdin is closed and remains closed until the container is restarted. If this - flag is false, a container processes that reads from stdin will never receive an EOF. - Default is false - type: boolean - targetContainerName: - description: |- - If set, the name of the container from PodSpec that this ephemeral container targets. - The ephemeral container will be run in the namespaces (IPC, PID, etc) of this container. - If not set then the ephemeral container uses the namespaces configured in the Pod spec. - - - The container runtime must implement support for this feature. If the runtime does not - support namespace targeting then the result of setting this field is undefined. - type: string - terminationMessagePath: - description: |- - Optional: Path at which the file to which the container's termination message - will be written is mounted into the container's filesystem. - Message written is intended to be brief final status, such as an assertion failure message. - Will be truncated by the node if greater than 4096 bytes. The total message length across - all containers will be limited to 12kb. - Defaults to /dev/termination-log. - Cannot be updated. - type: string - terminationMessagePolicy: - description: |- - Indicate how the termination message should be populated. File will use the contents of - terminationMessagePath to populate the container status message on both success and failure. - FallbackToLogsOnError will use the last chunk of container log output if the termination - message file is empty and the container exited with an error. - The log output is limited to 2048 bytes or 80 lines, whichever is smaller. - Defaults to File. - Cannot be updated. - type: string - tty: - description: |- - Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. - Default is false. - type: boolean - volumeDevices: - description: volumeDevices is the list of block - devices to be used by the container. - items: - description: volumeDevice describes a mapping - of a raw block device within a container. - properties: - devicePath: - description: devicePath is the path inside - of the container that the device will be - mapped to. - type: string - name: - description: name must match the name of a - persistentVolumeClaim in the pod - type: string - required: - - devicePath - - name - type: object - type: array - volumeMounts: - description: |- - Pod volumes to mount into the container's filesystem. Subpath mounts are not allowed for ephemeral containers. - Cannot be updated. - items: - description: VolumeMount describes a mounting - of a Volume within a container. - properties: - mountPath: - description: |- - Path within the container at which the volume should be mounted. Must - not contain ':'. - type: string - mountPropagation: - description: |- - mountPropagation determines how mounts are propagated from the host - to container and the other way around. - When not set, MountPropagationNone is used. - This field is beta in 1.10. - type: string - name: - description: This must match the Name of a - Volume. - type: string - readOnly: - description: |- - Mounted read-only if true, read-write otherwise (false or unspecified). - Defaults to false. - type: boolean - subPath: - description: |- - Path within the volume from which the container's volume should be mounted. - Defaults to "" (volume's root). - type: string - subPathExpr: - description: |- - Expanded path within the volume from which the container's volume should be mounted. - Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. - Defaults to "" (volume's root). - SubPathExpr and SubPath are mutually exclusive. - type: string - required: - - mountPath - - name - type: object - type: array - workingDir: - description: |- - Container's working directory. - If not specified, the container runtime's default will be used, which - might be configured in the container image. - Cannot be updated. - type: string - required: - - name - type: object - type: array - initContainers: - description: InitContainers - items: - description: A single application container that you - want to run within a pod. - properties: - args: - description: |- - Arguments to the entrypoint. - The container image's CMD is used if this is not provided. - Variable references $(VAR_NAME) are expanded using the container's environment. If a variable - cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced - to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will - produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless - of whether the variable exists or not. Cannot be updated. - More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell - items: - type: string - type: array - command: - description: |- - Entrypoint array. Not executed within a shell. - The container image's ENTRYPOINT is used if this is not provided. - Variable references $(VAR_NAME) are expanded using the container's environment. If a variable - cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced - to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will - produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless - of whether the variable exists or not. Cannot be updated. - More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell - items: - type: string - type: array - env: - description: |- - List of environment variables to set in the container. - Cannot be updated. - items: - description: EnvVar represents an environment - variable present in a Container. - properties: - name: - description: Name of the environment variable. - Must be a C_IDENTIFIER. - type: string - value: - description: |- - Variable references $(VAR_NAME) are expanded - using the previously defined environment variables in the container and - any service environment variables. If a variable cannot be resolved, - the reference in the input string will be unchanged. Double $$ are reduced - to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. - "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". - Escaped references will never be expanded, regardless of whether the variable - exists or not. - Defaults to "". - type: string - valueFrom: - description: Source for the environment variable's - value. Cannot be used if value is not empty. - properties: - configMapKeyRef: - description: Selects a key of a ConfigMap. - properties: - key: - description: The key to select. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - description: |- - Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, - spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. - properties: - apiVersion: - description: Version of the schema - the FieldPath is written in terms - of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to - select in the specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. - properties: - containerName: - description: 'Container name: required - for volumes, optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to - select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - description: Selects a key of a secret - in the pod's namespace - properties: - key: - description: The key of the secret - to select from. Must be a valid - secret key. - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret - or its key must be defined - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - name - type: object - type: array - envFrom: - description: |- - List of sources to populate environment variables in the container. - The keys defined within a source must be a C_IDENTIFIER. All invalid keys - will be reported as an event when the container is starting. When a key exists in multiple - sources, the value associated with the last source will take precedence. - Values defined by an Env with a duplicate key will take precedence. - Cannot be updated. - items: - description: EnvFromSource represents the source - of a set of ConfigMaps - properties: - configMapRef: - description: The ConfigMap to select from - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the ConfigMap - must be defined - type: boolean - type: object - x-kubernetes-map-type: atomic - prefix: - description: An optional identifier to prepend - to each key in the ConfigMap. Must be a - C_IDENTIFIER. - type: string - secretRef: - description: The Secret to select from - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: Specify whether the Secret - must be defined - type: boolean - type: object - x-kubernetes-map-type: atomic - type: object - type: array - image: - description: |- - Container image name. - More info: https://kubernetes.io/docs/concepts/containers/images - This field is optional to allow higher level config management to default or override - container images in workload controllers like Deployments and StatefulSets. - type: string - imagePullPolicy: - description: |- - Image pull policy. - One of Always, Never, IfNotPresent. - Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. - Cannot be updated. - More info: https://kubernetes.io/docs/concepts/containers/images#updating-images - type: string - lifecycle: - description: |- - Actions that the management system should take in response to container lifecycle events. - Cannot be updated. - properties: - postStart: - description: |- - PostStart is called immediately after a container is created. If the handler fails, - the container is terminated and restarted according to its restart policy. - Other management of the container blocks until the hook completes. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks - properties: - exec: - description: Exec specifies the action to - take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - httpGet: - description: HTTPGet specifies the http - request to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated - headers. - items: - description: HTTPHeader describes - a custom header to be used in HTTP - probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field - value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. - properties: - seconds: - description: Seconds is the number of - seconds to sleep. - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - description: |- - Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept - for the backward compatibility. There are no validation of this field and - lifecycle hooks will fail in runtime when tcp handler is specified. - properties: - host: - description: 'Optional: Host name to - connect to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - preStop: - description: |- - PreStop is called immediately before a container is terminated due to an - API request or management event such as liveness/startup probe failure, - preemption, resource contention, etc. The handler is not called if the - container crashes or exits. The Pod's termination grace period countdown begins before the - PreStop hook is executed. Regardless of the outcome of the handler, the - container will eventually terminate within the Pod's termination grace - period (unless delayed by finalizers). Other management of the container blocks until the hook completes - or until the termination grace period is reached. - More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks - properties: - exec: - description: Exec specifies the action to - take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - httpGet: - description: HTTPGet specifies the http - request to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in - the request. HTTP allows repeated - headers. - items: - description: HTTPHeader describes - a custom header to be used in HTTP - probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field - value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - sleep: - description: Sleep represents the duration - that the container should sleep before - being terminated. - properties: - seconds: - description: Seconds is the number of - seconds to sleep. - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - description: |- - Deprecated. TCPSocket is NOT supported as a LifecycleHandler and kept - for the backward compatibility. There are no validation of this field and - lifecycle hooks will fail in runtime when tcp handler is specified. - properties: - host: - description: 'Optional: Host name to - connect to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - type: object - livenessProbe: - description: |- - Periodic probe of container liveness. - Container will be restarted if the probe fails. - Cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - properties: - exec: - description: Exec specifies the action to take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - failureThreshold: - description: |- - Minimum consecutive failures for the probe to be considered failed after having succeeded. - Defaults to 3. Minimum value is 1. - format: int32 - type: integer - grpc: - description: GRPC specifies an action involving - a GRPC port. - properties: - port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. - format: int32 - type: integer - service: - description: |- - Service is the name of the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - - - If this is not specified, the default behavior is defined by gRPC. - type: string - required: - - port - type: object - httpGet: - description: HTTPGet specifies the http request - to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. - items: - description: HTTPHeader describes a custom - header to be used in HTTP probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - initialDelaySeconds: - description: |- - Number of seconds after the container has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - periodSeconds: - description: |- - How often (in seconds) to perform the probe. - Default to 10 seconds. Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - Minimum consecutive successes for the probe to be considered successful after having failed. - Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. - format: int32 - type: integer - tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. - properties: - host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - description: |- - Optional duration in seconds the pod needs to terminate gracefully upon probe failure. - The grace period is the duration in seconds after the processes running in the pod are sent - a termination signal and the time when the processes are forcibly halted with a kill signal. - Set this value longer than the expected cleanup time for your process. - If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this - value overrides the value provided by the pod spec. - Value must be non-negative integer. The value zero indicates stop immediately via - the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. - format: int64 - type: integer - timeoutSeconds: - description: |- - Number of seconds after which the probe times out. - Defaults to 1 second. Minimum value is 1. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - type: object - name: - description: |- - Name of the container specified as a DNS_LABEL. - Each container in a pod must have a unique name (DNS_LABEL). - Cannot be updated. - type: string - ports: - description: |- - List of ports to expose from the container. Not specifying a port here - DOES NOT prevent that port from being exposed. Any port which is - listening on the default "0.0.0.0" address inside a container will be - accessible from the network. - Modifying this array with strategic merge patch may corrupt the data. - For more information See https://github.com/kubernetes/kubernetes/issues/108255. - Cannot be updated. - items: - description: ContainerPort represents a network - port in a single container. - properties: - containerPort: - description: |- - Number of port to expose on the pod's IP address. - This must be a valid port number, 0 < x < 65536. - format: int32 - type: integer - hostIP: - description: What host IP to bind the external - port to. - type: string - hostPort: - description: |- - Number of port to expose on the host. - If specified, this must be a valid port number, 0 < x < 65536. - If HostNetwork is specified, this must match ContainerPort. - Most containers do not need this. - format: int32 - type: integer - name: - description: |- - If specified, this must be an IANA_SVC_NAME and unique within the pod. Each - named port in a pod must have a unique name. Name for the port that can be - referred to by services. - type: string - protocol: - default: TCP - description: |- - Protocol for port. Must be UDP, TCP, or SCTP. - Defaults to "TCP". - type: string - required: - - containerPort - type: object - type: array - x-kubernetes-list-map-keys: - - containerPort - - protocol - x-kubernetes-list-type: map - readinessProbe: - description: |- - Periodic probe of container service readiness. - Container will be removed from service endpoints if the probe fails. - Cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - properties: - exec: - description: Exec specifies the action to take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - failureThreshold: - description: |- - Minimum consecutive failures for the probe to be considered failed after having succeeded. - Defaults to 3. Minimum value is 1. - format: int32 - type: integer - grpc: - description: GRPC specifies an action involving - a GRPC port. - properties: - port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. - format: int32 - type: integer - service: - description: |- - Service is the name of the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - - - If this is not specified, the default behavior is defined by gRPC. - type: string - required: - - port - type: object - httpGet: - description: HTTPGet specifies the http request - to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. - items: - description: HTTPHeader describes a custom - header to be used in HTTP probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - initialDelaySeconds: - description: |- - Number of seconds after the container has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - periodSeconds: - description: |- - How often (in seconds) to perform the probe. - Default to 10 seconds. Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - Minimum consecutive successes for the probe to be considered successful after having failed. - Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. - format: int32 - type: integer - tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. - properties: - host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - description: |- - Optional duration in seconds the pod needs to terminate gracefully upon probe failure. - The grace period is the duration in seconds after the processes running in the pod are sent - a termination signal and the time when the processes are forcibly halted with a kill signal. - Set this value longer than the expected cleanup time for your process. - If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this - value overrides the value provided by the pod spec. - Value must be non-negative integer. The value zero indicates stop immediately via - the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. - format: int64 - type: integer - timeoutSeconds: - description: |- - Number of seconds after which the probe times out. - Defaults to 1 second. Minimum value is 1. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - type: object - resizePolicy: - description: Resources resize policy for the container. - items: - description: ContainerResizePolicy represents - resource resize policy for the container. - properties: - resourceName: - description: |- - Name of the resource to which this resource resize policy applies. - Supported values: cpu, memory. - type: string - restartPolicy: - description: |- - Restart policy to apply when specified resource is resized. - If not specified, it defaults to NotRequired. - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic - resources: - description: |- - Compute Resources required by this container. - Cannot be updated. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - properties: - claims: - description: |- - Claims lists the names of resources, defined in spec.resourceClaims, - that are used by this container. - - - This is an alpha field and requires enabling the - DynamicResourceAllocation feature gate. - - - This field is immutable. It can only be set for containers. - items: - description: ResourceClaim references one - entry in PodSpec.ResourceClaims. - properties: - name: - description: |- - Name must match the name of one entry in pod.spec.resourceClaims of - the Pod where this field is used. It makes that resource available - inside a container. - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: |- - Limits describes the maximum amount of compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: |- - Requests describes the minimum amount of compute resources required. - If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, - otherwise to an implementation-defined value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - type: object - restartPolicy: - description: |- - RestartPolicy defines the restart behavior of individual containers in a pod. - This field may only be set for init containers, and the only allowed value is "Always". - For non-init containers or when this field is not specified, - the restart behavior is defined by the Pod's restart policy and the container type. - Setting the RestartPolicy as "Always" for the init container will have the following effect: - this init container will be continually restarted on - exit until all regular containers have terminated. Once all regular - containers have completed, all init containers with restartPolicy "Always" - will be shut down. This lifecycle differs from normal init containers and - is often referred to as a "sidecar" container. Although this init - container still starts in the init container sequence, it does not wait - for the container to complete before proceeding to the next init - container. Instead, the next init container starts immediately after this - init container is started, or after any startupProbe has successfully - completed. - type: string - securityContext: - description: |- - SecurityContext defines the security options the container should be run with. - If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. - More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ - properties: - allowPrivilegeEscalation: - description: |- - AllowPrivilegeEscalation controls whether a process can gain more - privileges than its parent process. This bool directly controls if - the no_new_privs flag will be set on the container process. - AllowPrivilegeEscalation is true always when the container is: - 1) run as Privileged - 2) has CAP_SYS_ADMIN - Note that this field cannot be set when spec.os.name is windows. - type: boolean - capabilities: - description: |- - The capabilities to add/drop when running containers. - Defaults to the default set of capabilities granted by the container runtime. - Note that this field cannot be set when spec.os.name is windows. - properties: - add: - description: Added capabilities - items: - description: Capability represent POSIX - capabilities type - type: string - type: array - drop: - description: Removed capabilities - items: - description: Capability represent POSIX - capabilities type - type: string - type: array - type: object - privileged: - description: |- - Run container in privileged mode. - Processes in privileged containers are essentially equivalent to root on the host. - Defaults to false. - Note that this field cannot be set when spec.os.name is windows. - type: boolean - procMount: - description: |- - procMount denotes the type of proc mount to use for the containers. - The default is DefaultProcMount which uses the container runtime defaults for - readonly paths and masked paths. - This requires the ProcMountType feature flag to be enabled. - Note that this field cannot be set when spec.os.name is windows. - type: string - readOnlyRootFilesystem: - description: |- - Whether this container has a read-only root filesystem. - Default is false. - Note that this field cannot be set when spec.os.name is windows. - type: boolean - runAsGroup: - description: |- - The GID to run the entrypoint of the container process. - Uses runtime default if unset. - May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is windows. - format: int64 - type: integer - runAsNonRoot: - description: |- - Indicates that the container must run as a non-root user. - If true, the Kubelet will validate the image at runtime to ensure that it - does not run as UID 0 (root) and fail to start the container if it does. - If unset or false, no such validation will be performed. - May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - type: boolean - runAsUser: - description: |- - The UID to run the entrypoint of the container process. - Defaults to user specified in image metadata if unspecified. - May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is windows. - format: int64 - type: integer - seLinuxOptions: - description: |- - The SELinux context to be applied to the container. - If unspecified, the container runtime will allocate a random SELinux context for each - container. May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is windows. - properties: - level: - description: Level is SELinux level label - that applies to the container. - type: string - role: - description: Role is a SELinux role label - that applies to the container. - type: string - type: - description: Type is a SELinux type label - that applies to the container. - type: string - user: - description: User is a SELinux user label - that applies to the container. - type: string - type: object - seccompProfile: - description: |- - The seccomp options to use by this container. If seccomp options are - provided at both the pod & container level, the container options - override the pod options. - Note that this field cannot be set when spec.os.name is windows. - properties: - localhostProfile: - description: |- - localhostProfile indicates a profile defined in a file on the node should be used. - The profile must be preconfigured on the node to work. - Must be a descending path, relative to the kubelet's configured seccomp profile location. - Must be set if type is "Localhost". Must NOT be set for any other type. - type: string - type: - description: |- - type indicates which kind of seccomp profile will be applied. - Valid options are: - - - Localhost - a profile defined in a file on the node should be used. - RuntimeDefault - the container runtime default profile should be used. - Unconfined - no profile should be applied. - type: string - required: - - type - type: object - windowsOptions: - description: |- - The Windows specific settings applied to all containers. - If unspecified, the options from the PodSecurityContext will be used. - If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is linux. - properties: - gmsaCredentialSpec: - description: |- - GMSACredentialSpec is where the GMSA admission webhook - (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the - GMSA credential spec named by the GMSACredentialSpecName field. - type: string - gmsaCredentialSpecName: - description: GMSACredentialSpecName is the - name of the GMSA credential spec to use. - type: string - hostProcess: - description: |- - HostProcess determines if a container should be run as a 'Host Process' container. - All of a Pod's containers must have the same effective HostProcess value - (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). - In addition, if HostProcess is true then HostNetwork must also be set to true. - type: boolean - runAsUserName: - description: |- - The UserName in Windows to run the entrypoint of the container process. - Defaults to the user specified in image metadata if unspecified. - May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - type: string - type: object - type: object - startupProbe: - description: |- - StartupProbe indicates that the Pod has successfully initialized. - If specified, no other probes are executed until this completes successfully. - If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. - This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, - when it might take a long time to load data or warm a cache, than during steady-state operation. - This cannot be updated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - properties: - exec: - description: Exec specifies the action to take. - properties: - command: - description: |- - Command is the command line to execute inside the container, the working directory for the - command is root ('/') in the container's filesystem. The command is simply exec'd, it is - not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use - a shell, you need to explicitly call out to that shell. - Exit status of 0 is treated as live/healthy and non-zero is unhealthy. - items: - type: string - type: array - type: object - failureThreshold: - description: |- - Minimum consecutive failures for the probe to be considered failed after having succeeded. - Defaults to 3. Minimum value is 1. - format: int32 - type: integer - grpc: - description: GRPC specifies an action involving - a GRPC port. - properties: - port: - description: Port number of the gRPC service. - Number must be in the range 1 to 65535. - format: int32 - type: integer - service: - description: |- - Service is the name of the service to place in the gRPC HealthCheckRequest - (see https://github.com/grpc/grpc/blob/master/doc/health-checking.md). - - - If this is not specified, the default behavior is defined by gRPC. - type: string - required: - - port - type: object - httpGet: - description: HTTPGet specifies the http request - to perform. - properties: - host: - description: |- - Host name to connect to, defaults to the pod IP. You probably want to set - "Host" in httpHeaders instead. - type: string - httpHeaders: - description: Custom headers to set in the - request. HTTP allows repeated headers. - items: - description: HTTPHeader describes a custom - header to be used in HTTP probes - properties: - name: - description: |- - The header field name. - This will be canonicalized upon output, so case-variant names will be understood as the same header. - type: string - value: - description: The header field value - type: string - required: - - name - - value - type: object - type: array - path: - description: Path to access on the HTTP - server. - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Name or number of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - scheme: - description: |- - Scheme to use for connecting to the host. - Defaults to HTTP. - type: string - required: - - port - type: object - initialDelaySeconds: - description: |- - Number of seconds after the container has started before liveness probes are initiated. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - periodSeconds: - description: |- - How often (in seconds) to perform the probe. - Default to 10 seconds. Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - Minimum consecutive successes for the probe to be considered successful after having failed. - Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1. - format: int32 - type: integer - tcpSocket: - description: TCPSocket specifies an action involving - a TCP port. - properties: - host: - description: 'Optional: Host name to connect - to, defaults to the pod IP.' - type: string - port: - anyOf: - - type: integer - - type: string - description: |- - Number or name of the port to access on the container. - Number must be in the range 1 to 65535. - Name must be an IANA_SVC_NAME. - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - description: |- - Optional duration in seconds the pod needs to terminate gracefully upon probe failure. - The grace period is the duration in seconds after the processes running in the pod are sent - a termination signal and the time when the processes are forcibly halted with a kill signal. - Set this value longer than the expected cleanup time for your process. - If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this - value overrides the value provided by the pod spec. - Value must be non-negative integer. The value zero indicates stop immediately via - the kill signal (no opportunity to shut down). - This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. - Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset. - format: int64 - type: integer - timeoutSeconds: - description: |- - Number of seconds after which the probe times out. - Defaults to 1 second. Minimum value is 1. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes - format: int32 - type: integer - type: object - stdin: - description: |- - Whether this container should allocate a buffer for stdin in the container runtime. If this - is not set, reads from stdin in the container will always result in EOF. - Default is false. - type: boolean - stdinOnce: - description: |- - Whether the container runtime should close the stdin channel after it has been opened by - a single attach. When stdin is true the stdin stream will remain open across multiple attach - sessions. If stdinOnce is set to true, stdin is opened on container start, is empty until the - first client attaches to stdin, and then remains open and accepts data until the client disconnects, - at which time stdin is closed and remains closed until the container is restarted. If this - flag is false, a container processes that reads from stdin will never receive an EOF. - Default is false - type: boolean - terminationMessagePath: - description: |- - Optional: Path at which the file to which the container's termination message - will be written is mounted into the container's filesystem. - Message written is intended to be brief final status, such as an assertion failure message. - Will be truncated by the node if greater than 4096 bytes. The total message length across - all containers will be limited to 12kb. - Defaults to /dev/termination-log. - Cannot be updated. - type: string - terminationMessagePolicy: - description: |- - Indicate how the termination message should be populated. File will use the contents of - terminationMessagePath to populate the container status message on both success and failure. - FallbackToLogsOnError will use the last chunk of container log output if the termination - message file is empty and the container exited with an error. - The log output is limited to 2048 bytes or 80 lines, whichever is smaller. - Defaults to File. - Cannot be updated. - type: string - tty: - description: |- - Whether this container should allocate a TTY for itself, also requires 'stdin' to be true. - Default is false. - type: boolean - volumeDevices: - description: volumeDevices is the list of block - devices to be used by the container. - items: - description: volumeDevice describes a mapping - of a raw block device within a container. - properties: - devicePath: - description: devicePath is the path inside - of the container that the device will be - mapped to. - type: string - name: - description: name must match the name of a - persistentVolumeClaim in the pod - type: string - required: - - devicePath - - name - type: object - type: array - volumeMounts: - description: |- - Pod volumes to mount into the container's filesystem. - Cannot be updated. - items: - description: VolumeMount describes a mounting - of a Volume within a container. - properties: - mountPath: - description: |- - Path within the container at which the volume should be mounted. Must - not contain ':'. - type: string - mountPropagation: - description: |- - mountPropagation determines how mounts are propagated from the host - to container and the other way around. - When not set, MountPropagationNone is used. - This field is beta in 1.10. - type: string - name: - description: This must match the Name of a - Volume. - type: string - readOnly: - description: |- - Mounted read-only if true, read-write otherwise (false or unspecified). - Defaults to false. - type: boolean - subPath: - description: |- - Path within the volume from which the container's volume should be mounted. - Defaults to "" (volume's root). - type: string - subPathExpr: - description: |- - Expanded path within the volume from which the container's volume should be mounted. - Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. - Defaults to "" (volume's root). - SubPathExpr and SubPath are mutually exclusive. - type: string - required: - - mountPath - - name - type: object - type: array - workingDir: - description: |- - Container's working directory. - If not specified, the container runtime's default will be used, which - might be configured in the container image. - Cannot be updated. - type: string - required: - - name - type: object - type: array - nodeSelector: - additionalProperties: - type: string - description: NodeSelector - type: object - restartPolicy: - description: RestartPolicy - type: string - securityContext: - description: PodSecurityContext - properties: - fsGroup: - description: |- - A special supplemental group that applies to all containers in a pod. - Some volume types allow the Kubelet to change the ownership of that volume - to be owned by the pod: - - - 1. The owning GID will be the FSGroup - 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) - 3. The permission bits are OR'd with rw-rw---- - - - If unset, the Kubelet will not modify the ownership and permissions of any volume. - Note that this field cannot be set when spec.os.name is windows. - format: int64 - type: integer - fsGroupChangePolicy: - description: |- - fsGroupChangePolicy defines behavior of changing ownership and permission of the volume - before being exposed inside Pod. This field will only apply to - volume types which support fsGroup based ownership(and permissions). - It will have no effect on ephemeral volume types such as: secret, configmaps - and emptydir. - Valid values are "OnRootMismatch" and "Always". If not specified, "Always" is used. - Note that this field cannot be set when spec.os.name is windows. - type: string - runAsGroup: - description: |- - The GID to run the entrypoint of the container process. - Uses runtime default if unset. - May also be set in SecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence - for that container. - Note that this field cannot be set when spec.os.name is windows. - format: int64 - type: integer - runAsNonRoot: - description: |- - Indicates that the container must run as a non-root user. - If true, the Kubelet will validate the image at runtime to ensure that it - does not run as UID 0 (root) and fail to start the container if it does. - If unset or false, no such validation will be performed. - May also be set in SecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - type: boolean - runAsUser: - description: |- - The UID to run the entrypoint of the container process. - Defaults to user specified in image metadata if unspecified. - May also be set in SecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence - for that container. - Note that this field cannot be set when spec.os.name is windows. - format: int64 - type: integer - seLinuxOptions: - description: |- - The SELinux context to be applied to all containers. - If unspecified, the container runtime will allocate a random SELinux context for each - container. May also be set in SecurityContext. If set in - both SecurityContext and PodSecurityContext, the value specified in SecurityContext - takes precedence for that container. - Note that this field cannot be set when spec.os.name is windows. - properties: - level: - description: Level is SELinux level label that - applies to the container. - type: string - role: - description: Role is a SELinux role label that - applies to the container. - type: string - type: - description: Type is a SELinux type label that - applies to the container. - type: string - user: - description: User is a SELinux user label that - applies to the container. - type: string - type: object - seccompProfile: - description: |- - The seccomp options to use by the containers in this pod. - Note that this field cannot be set when spec.os.name is windows. - properties: - localhostProfile: - description: |- - localhostProfile indicates a profile defined in a file on the node should be used. - The profile must be preconfigured on the node to work. - Must be a descending path, relative to the kubelet's configured seccomp profile location. - Must be set if type is "Localhost". Must NOT be set for any other type. - type: string - type: - description: |- - type indicates which kind of seccomp profile will be applied. - Valid options are: - - - Localhost - a profile defined in a file on the node should be used. - RuntimeDefault - the container runtime default profile should be used. - Unconfined - no profile should be applied. - type: string - required: - - type - type: object - supplementalGroups: - description: |- - A list of groups applied to the first process run in each container, in addition - to the container's primary GID, the fsGroup (if specified), and group memberships - defined in the container image for the uid of the container process. If unspecified, - no additional groups are added to any container. Note that group memberships - defined in the container image for the uid of the container process are still effective, - even if they are not included in this list. - Note that this field cannot be set when spec.os.name is windows. - items: - format: int64 - type: integer - type: array - sysctls: - description: |- - Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported - sysctls (by the container runtime) might fail to launch. - Note that this field cannot be set when spec.os.name is windows. - items: - description: Sysctl defines a kernel parameter to - be set - properties: - name: - description: Name of a property to set - type: string - value: - description: Value of a property to set - type: string - required: - - name - - value - type: object - type: array - windowsOptions: - description: |- - The Windows specific settings applied to all containers. - If unspecified, the options within a container's SecurityContext will be used. - If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence. - Note that this field cannot be set when spec.os.name is linux. - properties: - gmsaCredentialSpec: - description: |- - GMSACredentialSpec is where the GMSA admission webhook - (https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the - GMSA credential spec named by the GMSACredentialSpecName field. - type: string - gmsaCredentialSpecName: - description: GMSACredentialSpecName is the name - of the GMSA credential spec to use. - type: string - hostProcess: - description: |- - HostProcess determines if a container should be run as a 'Host Process' container. - All of a Pod's containers must have the same effective HostProcess value - (it is not allowed to have a mix of HostProcess containers and non-HostProcess containers). - In addition, if HostProcess is true then HostNetwork must also be set to true. - type: boolean - runAsUserName: - description: |- - The UserName in Windows to run the entrypoint of the container process. - Defaults to the user specified in image metadata if unspecified. - May also be set in PodSecurityContext. If set in both SecurityContext and - PodSecurityContext, the value specified in SecurityContext takes precedence. - type: string - type: object - type: object - terminationGracePeriodSeconds: - description: TerminationGracePeriodSeconds - format: int64 - type: integer - topologySpreadConstraints: - description: TopologySpreadConstraints - items: - description: TopologySpreadConstraint specifies how - to spread matching pods among the given topology. - properties: - labelSelector: - description: |- - LabelSelector is used to find matching pods. - Pods that match this label selector are counted to determine the number of pods - in their corresponding topology domain. - properties: - matchExpressions: - description: matchExpressions is a list of label - selector requirements. The requirements are - ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that - the selector applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - description: |- - MatchLabelKeys is a set of pod label keys to select the pods over which - spreading will be calculated. The keys are used to lookup values from the - incoming pod labels, those key-value labels are ANDed with labelSelector - to select the group of existing pods over which spreading will be calculated - for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. - MatchLabelKeys cannot be set when LabelSelector isn't set. - Keys that don't exist in the incoming pod labels will - be ignored. A null or empty list means only match against labelSelector. - - - This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default). - items: - type: string - type: array - x-kubernetes-list-type: atomic - maxSkew: - description: |- - MaxSkew describes the degree to which pods may be unevenly distributed. - When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference - between the number of matching pods in the target topology and the global minimum. - The global minimum is the minimum number of matching pods in an eligible domain - or zero if the number of eligible domains is less than MinDomains. - For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same - labelSelector spread as 2/2/1: - In this case, the global minimum is 1. - | zone1 | zone2 | zone3 | - | P P | P P | P | - - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; - scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) - violate MaxSkew(1). - - if MaxSkew is 2, incoming pod can be scheduled onto any zone. - When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence - to topologies that satisfy it. - It's a required field. Default value is 1 and 0 is not allowed. - format: int32 - type: integer - minDomains: - description: |- - MinDomains indicates a minimum number of eligible domains. - When the number of eligible domains with matching topology keys is less than minDomains, - Pod Topology Spread treats "global minimum" as 0, and then the calculation of Skew is performed. - And when the number of eligible domains with matching topology keys equals or greater than minDomains, - this value has no effect on scheduling. - As a result, when the number of eligible domains is less than minDomains, - scheduler won't schedule more than maxSkew Pods to those domains. - If value is nil, the constraint behaves as if MinDomains is equal to 1. - Valid values are integers greater than 0. - When value is not nil, WhenUnsatisfiable must be DoNotSchedule. - - - For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same - labelSelector spread as 2/2/2: - | zone1 | zone2 | zone3 | - | P P | P P | P P | - The number of domains is less than 5(MinDomains), so "global minimum" is treated as 0. - In this situation, new pod with the same labelSelector cannot be scheduled, - because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, - it will violate MaxSkew. - - - This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default). - format: int32 - type: integer - nodeAffinityPolicy: - description: |- - NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector - when calculating pod topology spread skew. Options are: - - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. - - - If this value is nil, the behavior is equivalent to the Honor policy. - This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. - type: string - nodeTaintsPolicy: - description: |- - NodeTaintsPolicy indicates how we will treat node taints when calculating - pod topology spread skew. Options are: - - Honor: nodes without taints, along with tainted nodes for which the incoming pod - has a toleration, are included. - - Ignore: node taints are ignored. All nodes are included. - - - If this value is nil, the behavior is equivalent to the Ignore policy. - This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. - type: string - topologyKey: - description: |- - TopologyKey is the key of node labels. Nodes that have a label with this key - and identical values are considered to be in the same topology. - We consider each as a "bucket", and try to put balanced number - of pods into each bucket. - We define a domain as a particular instance of a topology. - Also, we define an eligible domain as a domain whose nodes meet the requirements of - nodeAffinityPolicy and nodeTaintsPolicy. - e.g. If TopologyKey is "kubernetes.io/hostname", each Node is a domain of that topology. - And, if TopologyKey is "topology.kubernetes.io/zone", each zone is a domain of that topology. - It's a required field. - type: string - whenUnsatisfiable: - description: |- - WhenUnsatisfiable indicates how to deal with a pod if it doesn't satisfy - the spread constraint. - - DoNotSchedule (default) tells the scheduler not to schedule it. - - ScheduleAnyway tells the scheduler to schedule the pod in any location, - but giving higher precedence to topologies that would help reduce the - skew. - A constraint is considered "Unsatisfiable" for an incoming pod - if and only if every possible node assignment for that pod would violate - "MaxSkew" on some topology. - For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same - labelSelector spread as 3/1/1: - | zone1 | zone2 | zone3 | - | P P P | P | P | - If WhenUnsatisfiable is set to DoNotSchedule, incoming pod can only be scheduled - to zone2(zone3) to become 3/2/1(3/1/2) as ActualSkew(2-1) on zone2(zone3) satisfies - MaxSkew(1). In other words, the cluster can still be imbalanced, but scheduler - won't make it *more* imbalanced. - It's a required field. - type: string - required: - - maxSkew - - topologyKey - - whenUnsatisfiable - type: object - type: array - volumes: - description: Volumes - items: - description: Volume represents a named volume in a pod - that may be accessed by any container in the pod. - properties: - awsElasticBlockStore: - description: |- - awsElasticBlockStore represents an AWS Disk resource that is attached to a - kubelet's host machine and then exposed to the pod. - More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - properties: - fsType: - description: |- - fsType is the filesystem type of the volume that you want to mount. - Tip: Ensure that the filesystem type is supported by the host operating system. - Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - TODO: how do we prevent errors in the filesystem from compromising the machine - type: string - partition: - description: |- - partition is the partition in the volume that you want to mount. - If omitted, the default is to mount by volume name. - Examples: For volume /dev/sda1, you specify the partition as "1". - Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). - format: int32 - type: integer - readOnly: - description: |- - readOnly value true will force the readOnly setting in VolumeMounts. - More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - type: boolean - volumeID: - description: |- - volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). - More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore - type: string - required: - - volumeID - type: object - azureDisk: - description: azureDisk represents an Azure Data - Disk mount on the host and bind mount to the pod. - properties: - cachingMode: - description: 'cachingMode is the Host Caching - mode: None, Read Only, Read Write.' - type: string - diskName: - description: diskName is the Name of the data - disk in the blob storage - type: string - diskURI: - description: diskURI is the URI of data disk - in the blob storage - type: string - fsType: - description: |- - fsType is Filesystem type to mount. - Must be a filesystem type supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - type: string - kind: - description: 'kind expected values are Shared: - multiple blob disks per storage account Dedicated: - single blob disk per storage account Managed: - azure managed data disk (only in managed availability - set). defaults to shared' - type: string - readOnly: - description: |- - readOnly Defaults to false (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. - type: boolean - required: - - diskName - - diskURI - type: object - azureFile: - description: azureFile represents an Azure File - Service mount on the host and bind mount to the - pod. - properties: - readOnly: - description: |- - readOnly defaults to false (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. - type: boolean - secretName: - description: secretName is the name of secret - that contains Azure Storage Account Name and - Key - type: string - shareName: - description: shareName is the azure share Name - type: string - required: - - secretName - - shareName - type: object - cephfs: - description: cephFS represents a Ceph FS mount on - the host that shares a pod's lifetime - properties: - monitors: - description: |- - monitors is Required: Monitors is a collection of Ceph monitors - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it - items: - type: string - type: array - path: - description: 'path is Optional: Used as the - mounted root, rather than the full Ceph tree, - default is /' - type: string - readOnly: - description: |- - readOnly is Optional: Defaults to false (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it - type: boolean - secretFile: - description: |- - secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it - type: string - secretRef: - description: |- - secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - user: - description: |- - user is optional: User is the rados user name, default is admin - More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it - type: string - required: - - monitors - type: object - cinder: - description: |- - cinder represents a cinder volume attached and mounted on kubelets host machine. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md - properties: - fsType: - description: |- - fsType is the filesystem type to mount. - Must be a filesystem type supported by the host operating system. - Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md - type: string - readOnly: - description: |- - readOnly defaults to false (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md - type: boolean - secretRef: - description: |- - secretRef is optional: points to a secret object containing parameters used to connect - to OpenStack. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - volumeID: - description: |- - volumeID used to identify the volume in cinder. - More info: https://examples.k8s.io/mysql-cinder-pd/README.md - type: string - required: - - volumeID - type: object - configMap: - description: configMap represents a configMap that - should populate this volume - properties: - defaultMode: - description: |- - defaultMode is optional: mode bits used to set permissions on created files by default. - Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. - YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. - Defaults to 0644. - Directories within the path are not affected by this setting. - This might be in conflict with other options that affect the file - mode, like fsGroup, and the result can be other mode bits set. - format: int32 - type: integer - items: - description: |- - items if unspecified, each key-value pair in the Data field of the referenced - ConfigMap will be projected into the volume as a file whose name is the - key and content is the value. If specified, the listed keys will be - projected into the specified paths, and unlisted keys will not be - present. If a key is specified which is not present in the ConfigMap, - the volume setup will error unless it is marked optional. Paths must be - relative and may not contain the '..' path or start with '..'. - items: - description: Maps a string key to a path within - a volume. - properties: - key: - description: key is the key to project. - type: string - mode: - description: |- - mode is Optional: mode bits used to set permissions on this file. - Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. - YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. - If not specified, the volume defaultMode will be used. - This might be in conflict with other options that affect the file - mode, like fsGroup, and the result can be other mode bits set. - format: int32 - type: integer - path: - description: |- - path is the relative path of the file to map the key to. - May not be an absolute path. - May not contain the path element '..'. - May not start with the string '..'. - type: string - required: - - key - - path - type: object - type: array - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: optional specify whether the ConfigMap - or its keys must be defined - type: boolean - type: object - x-kubernetes-map-type: atomic - csi: - description: csi (Container Storage Interface) represents - ephemeral storage that is handled by certain external - CSI drivers (Beta feature). - properties: - driver: - description: |- - driver is the name of the CSI driver that handles this volume. - Consult with your admin for the correct name as registered in the cluster. - type: string - fsType: - description: |- - fsType to mount. Ex. "ext4", "xfs", "ntfs". - If not provided, the empty value is passed to the associated CSI driver - which will determine the default filesystem to apply. - type: string - nodePublishSecretRef: - description: |- - nodePublishSecretRef is a reference to the secret object containing - sensitive information to pass to the CSI driver to complete the CSI - NodePublishVolume and NodeUnpublishVolume calls. - This field is optional, and may be empty if no secret is required. If the - secret object contains more than one secret, all secret references are passed. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - readOnly: - description: |- - readOnly specifies a read-only configuration for the volume. - Defaults to false (read/write). - type: boolean - volumeAttributes: - additionalProperties: - type: string - description: |- - volumeAttributes stores driver-specific properties that are passed to the CSI - driver. Consult your driver's documentation for supported values. - type: object - required: - - driver - type: object - downwardAPI: - description: downwardAPI represents downward API - about the pod that should populate this volume - properties: - defaultMode: - description: |- - Optional: mode bits to use on created files by default. Must be a - Optional: mode bits used to set permissions on created files by default. - Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. - YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. - Defaults to 0644. - Directories within the path are not affected by this setting. - This might be in conflict with other options that affect the file - mode, like fsGroup, and the result can be other mode bits set. - format: int32 - type: integer - items: - description: Items is a list of downward API - volume file - items: - description: DownwardAPIVolumeFile represents - information to create the file containing - the pod field - properties: - fieldRef: - description: 'Required: Selects a field - of the pod: only annotations, labels, - name and namespace are supported.' - properties: - apiVersion: - description: Version of the schema - the FieldPath is written in terms - of, defaults to "v1". - type: string - fieldPath: - description: Path of the field to - select in the specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - mode: - description: |- - Optional: mode bits used to set permissions on this file, must be an octal value - between 0000 and 0777 or a decimal value between 0 and 511. - YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. - If not specified, the volume defaultMode will be used. - This might be in conflict with other options that affect the file - mode, like fsGroup, and the result can be other mode bits set. - format: int32 - type: integer - path: - description: 'Required: Path is the relative - path name of the file to be created. - Must not be absolute or contain the - ''..'' path. Must be utf-8 encoded. - The first item of the relative path - must not start with ''..''' - type: string - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported. - properties: - containerName: - description: 'Container name: required - for volumes, optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the output - format of the exposed resources, - defaults to "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: resource to - select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - required: - - path - type: object - type: array - type: object - emptyDir: - description: |- - emptyDir represents a temporary directory that shares a pod's lifetime. - More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir - properties: - medium: - description: |- - medium represents what type of storage medium should back this directory. - The default is "" which means to use the node's default medium. - Must be an empty string (default) or Memory. - More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir - type: string - sizeLimit: - anyOf: - - type: integer - - type: string - description: |- - sizeLimit is the total amount of local storage required for this EmptyDir volume. - The size limit is also applicable for memory medium. - The maximum usage on memory medium EmptyDir would be the minimum value between - the SizeLimit specified here and the sum of memory limits of all containers in a pod. - The default is nil which means that the limit is undefined. - More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - ephemeral: - description: |- - ephemeral represents a volume that is handled by a cluster storage driver. - The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, - and deleted when the pod is removed. - - - Use this if: - a) the volume is only needed while the pod runs, - b) features of normal volumes like restoring from snapshot or capacity - tracking are needed, - c) the storage driver is specified through a storage class, and - d) the storage driver supports dynamic volume provisioning through - a PersistentVolumeClaim (see EphemeralVolumeSource for more - information on the connection between this volume type - and PersistentVolumeClaim). - - - Use PersistentVolumeClaim or one of the vendor-specific - APIs for volumes that persist for longer than the lifecycle - of an individual pod. - - - Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to - be used that way - see the documentation of the driver for - more information. - - - A pod can use both types of ephemeral volumes and - persistent volumes at the same time. - properties: - volumeClaimTemplate: - description: |- - Will be used to create a stand-alone PVC to provision the volume. - The pod in which this EphemeralVolumeSource is embedded will be the - owner of the PVC, i.e. the PVC will be deleted together with the - pod. The name of the PVC will be `-` where - `` is the name from the `PodSpec.Volumes` array - entry. Pod validation will reject the pod if the concatenated name - is not valid for a PVC (for example, too long). - - - An existing PVC with that name that is not owned by the pod - will *not* be used for the pod to avoid using an unrelated - volume by mistake. Starting the pod is then blocked until - the unrelated PVC is removed. If such a pre-created PVC is - meant to be used by the pod, the PVC has to updated with an - owner reference to the pod once the pod exists. Normally - this should not be necessary, but it may be useful when - manually reconstructing a broken cluster. - - - This field is read-only and no changes will be made by Kubernetes - to the PVC after it has been created. - - - Required, must not be nil. - properties: - metadata: - description: |- - May contain labels and annotations that will be copied into the PVC - when creating it. No other fields are allowed and will be rejected during - validation. - type: object - spec: - description: |- - The specification for the PersistentVolumeClaim. The entire content is - copied unchanged into the PVC that gets created from this - template. The same fields as in a PersistentVolumeClaim - are also valid here. - properties: - accessModes: - description: |- - accessModes contains the desired access modes the volume should have. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1 - items: - type: string - type: array - dataSource: - description: |- - dataSource field can be used to specify either: - * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) - * An existing PVC (PersistentVolumeClaim) - If the provisioner or an external controller can support the specified data source, - it will create a new volume based on the contents of the specified data source. - When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, - and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. - If the namespace is specified, then dataSourceRef will not be copied to dataSource. - properties: - apiGroup: - description: |- - APIGroup is the group for the resource being referenced. - If APIGroup is not specified, the specified Kind must be in the core API group. - For any other third-party types, APIGroup is required. - type: string - kind: - description: Kind is the type of - resource being referenced - type: string - name: - description: Name is the name of - resource being referenced - type: string - required: - - kind - - name - type: object - x-kubernetes-map-type: atomic - dataSourceRef: - description: |- - dataSourceRef specifies the object from which to populate the volume with data, if a non-empty - volume is desired. This may be any object from a non-empty API group (non - core object) or a PersistentVolumeClaim object. - When this field is specified, volume binding will only succeed if the type of - the specified object matches some installed volume populator or dynamic - provisioner. - This field will replace the functionality of the dataSource field and as such - if both fields are non-empty, they must have the same value. For backwards - compatibility, when namespace isn't specified in dataSourceRef, - both fields (dataSource and dataSourceRef) will be set to the same - value automatically if one of them is empty and the other is non-empty. - When namespace is specified in dataSourceRef, - dataSource isn't set to the same value and must be empty. - There are three important differences between dataSource and dataSourceRef: - * While dataSource only allows two specific types of objects, dataSourceRef - allows any non-core object, as well as PersistentVolumeClaim objects. - * While dataSource ignores disallowed values (dropping them), dataSourceRef - preserves all values, and generates an error if a disallowed value is - specified. - * While dataSource only allows local objects, dataSourceRef allows objects - in any namespaces. - (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. - (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. - properties: - apiGroup: - description: |- - APIGroup is the group for the resource being referenced. - If APIGroup is not specified, the specified Kind must be in the core API group. - For any other third-party types, APIGroup is required. - type: string - kind: - description: Kind is the type of - resource being referenced - type: string - name: - description: Name is the name of - resource being referenced - type: string - namespace: - description: |- - Namespace is the namespace of resource being referenced - Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. - (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled. - type: string - required: - - kind - - name - type: object - resources: - description: |- - resources represents the minimum resources the volume should have. - If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements - that are lower than previous value but must still be higher than capacity recorded in the - status field of the claim. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: |- - Limits describes the maximum amount of compute resources allowed. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - description: |- - Requests describes the minimum amount of compute resources required. - If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, - otherwise to an implementation-defined value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - type: object - type: object - selector: - description: selector is a label query - over volumes to consider for binding. - properties: - matchExpressions: - description: matchExpressions is - a list of label selector requirements. - The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label - key that the selector applies - to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: - description: |- - storageClassName is the name of the StorageClass required by the claim. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 - type: string - volumeAttributesClassName: - description: |- - volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. - If specified, the CSI driver will create or update the volume with the attributes defined - in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, - it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass - will be applied to the claim but it's not allowed to reset this field to empty string once it is set. - If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass - will be set by the persistentvolume controller if it exists. - If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be - set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource - exists. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass - (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled. - type: string - volumeMode: - description: |- - volumeMode defines what type of volume is required by the claim. - Value of Filesystem is implied when not included in claim spec. - type: string - volumeName: - description: volumeName is the binding - reference to the PersistentVolume - backing this claim. - type: string - type: object - required: - - spec - type: object - type: object - fc: - description: fc represents a Fibre Channel resource - that is attached to a kubelet's host machine and - then exposed to the pod. - properties: - fsType: - description: |- - fsType is the filesystem type to mount. - Must be a filesystem type supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - TODO: how do we prevent errors in the filesystem from compromising the machine - type: string - lun: - description: 'lun is Optional: FC target lun - number' - format: int32 - type: integer - readOnly: - description: |- - readOnly is Optional: Defaults to false (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. - type: boolean - targetWWNs: - description: 'targetWWNs is Optional: FC target - worldwide names (WWNs)' - items: - type: string - type: array - wwids: - description: |- - wwids Optional: FC volume world wide identifiers (wwids) - Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously. - items: - type: string - type: array - type: object - flexVolume: - description: |- - flexVolume represents a generic volume resource that is - provisioned/attached using an exec based plugin. - properties: - driver: - description: driver is the name of the driver - to use for this volume. - type: string - fsType: - description: |- - fsType is the filesystem type to mount. - Must be a filesystem type supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. - type: string - options: - additionalProperties: - type: string - description: 'options is Optional: this field - holds extra command options if any.' - type: object - readOnly: - description: |- - readOnly is Optional: defaults to false (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. - type: boolean - secretRef: - description: |- - secretRef is Optional: secretRef is reference to the secret object containing - sensitive information to pass to the plugin scripts. This may be - empty if no secret object is specified. If the secret object - contains more than one secret, all secrets are passed to the plugin - scripts. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - required: - - driver - type: object - flocker: - description: flocker represents a Flocker volume - attached to a kubelet's host machine. This depends - on the Flocker control service being running - properties: - datasetName: - description: |- - datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker - should be considered as deprecated - type: string - datasetUUID: - description: datasetUUID is the UUID of the - dataset. This is unique identifier of a Flocker - dataset - type: string - type: object - gcePersistentDisk: - description: |- - gcePersistentDisk represents a GCE Disk resource that is attached to a - kubelet's host machine and then exposed to the pod. - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - properties: - fsType: - description: |- - fsType is filesystem type of the volume that you want to mount. - Tip: Ensure that the filesystem type is supported by the host operating system. - Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - TODO: how do we prevent errors in the filesystem from compromising the machine - type: string - partition: - description: |- - partition is the partition in the volume that you want to mount. - If omitted, the default is to mount by volume name. - Examples: For volume /dev/sda1, you specify the partition as "1". - Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - format: int32 - type: integer - pdName: - description: |- - pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - type: string - readOnly: - description: |- - readOnly here will force the ReadOnly setting in VolumeMounts. - Defaults to false. - More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk - type: boolean - required: - - pdName - type: object - gitRepo: - description: |- - gitRepo represents a git repository at a particular revision. - DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an - EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir - into the Pod's container. - properties: - directory: - description: |- - directory is the target directory name. - Must not contain or start with '..'. If '.' is supplied, the volume directory will be the - git repository. Otherwise, if specified, the volume will contain the git repository in - the subdirectory with the given name. - type: string - repository: - description: repository is the URL - type: string - revision: - description: revision is the commit hash for - the specified revision. - type: string - required: - - repository - type: object - glusterfs: - description: |- - glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. - More info: https://examples.k8s.io/volumes/glusterfs/README.md - properties: - endpoints: - description: |- - endpoints is the endpoint name that details Glusterfs topology. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod - type: string - path: - description: |- - path is the Glusterfs volume path. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod - type: string - readOnly: - description: |- - readOnly here will force the Glusterfs volume to be mounted with read-only permissions. - Defaults to false. - More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod - type: boolean - required: - - endpoints - - path - type: object - hostPath: - description: |- - hostPath represents a pre-existing file or directory on the host - machine that is directly exposed to the container. This is generally - used for system agents or other privileged things that are allowed - to see the host machine. Most containers will NOT need this. - More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - --- - TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not - mount host directories as read/write. - properties: - path: - description: |- - path of the directory on the host. - If the path is a symlink, it will follow the link to the real path. - More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - type: string - type: - description: |- - type for HostPath Volume - Defaults to "" - More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath - type: string - required: - - path - type: object - iscsi: - description: |- - iscsi represents an ISCSI Disk resource that is attached to a - kubelet's host machine and then exposed to the pod. - More info: https://examples.k8s.io/volumes/iscsi/README.md - properties: - chapAuthDiscovery: - description: chapAuthDiscovery defines whether - support iSCSI Discovery CHAP authentication - type: boolean - chapAuthSession: - description: chapAuthSession defines whether - support iSCSI Session CHAP authentication - type: boolean - fsType: - description: |- - fsType is the filesystem type of the volume that you want to mount. - Tip: Ensure that the filesystem type is supported by the host operating system. - Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi - TODO: how do we prevent errors in the filesystem from compromising the machine - type: string - initiatorName: - description: |- - initiatorName is the custom iSCSI Initiator Name. - If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface - : will be created for the connection. - type: string - iqn: - description: iqn is the target iSCSI Qualified - Name. - type: string - iscsiInterface: - description: |- - iscsiInterface is the interface Name that uses an iSCSI transport. - Defaults to 'default' (tcp). - type: string - lun: - description: lun represents iSCSI Target Lun - number. - format: int32 - type: integer - portals: - description: |- - portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port - is other than default (typically TCP ports 860 and 3260). - items: - type: string - type: array - readOnly: - description: |- - readOnly here will force the ReadOnly setting in VolumeMounts. - Defaults to false. - type: boolean - secretRef: - description: secretRef is the CHAP Secret for - iSCSI target and initiator authentication - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - targetPortal: - description: |- - targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port - is other than default (typically TCP ports 860 and 3260). - type: string - required: - - iqn - - lun - - targetPortal - type: object - name: - description: |- - name of the volume. - Must be a DNS_LABEL and unique within the pod. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - nfs: - description: |- - nfs represents an NFS mount on the host that shares a pod's lifetime - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs - properties: - path: - description: |- - path that is exported by the NFS server. - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs - type: string - readOnly: - description: |- - readOnly here will force the NFS export to be mounted with read-only permissions. - Defaults to false. - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs - type: boolean - server: - description: |- - server is the hostname or IP address of the NFS server. - More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs - type: string - required: - - path - - server - type: object - persistentVolumeClaim: - description: |- - persistentVolumeClaimVolumeSource represents a reference to a - PersistentVolumeClaim in the same namespace. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims - properties: - claimName: - description: |- - claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. - More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims - type: string - readOnly: - description: |- - readOnly Will force the ReadOnly setting in VolumeMounts. - Default false. - type: boolean - required: - - claimName - type: object - photonPersistentDisk: - description: photonPersistentDisk represents a PhotonController - persistent disk attached and mounted on kubelets - host machine - properties: - fsType: - description: |- - fsType is the filesystem type to mount. - Must be a filesystem type supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - type: string - pdID: - description: pdID is the ID that identifies - Photon Controller persistent disk - type: string - required: - - pdID - type: object - portworxVolume: - description: portworxVolume represents a portworx - volume attached and mounted on kubelets host machine - properties: - fsType: - description: |- - fSType represents the filesystem type to mount - Must be a filesystem type supported by the host operating system. - Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified. - type: string - readOnly: - description: |- - readOnly defaults to false (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. - type: boolean - volumeID: - description: volumeID uniquely identifies a - Portworx volume - type: string - required: - - volumeID - type: object - projected: - description: projected items for all in one resources - secrets, configmaps, and downward API - properties: - defaultMode: - description: |- - defaultMode are the mode bits used to set permissions on created files by default. - Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. - YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. - Directories within the path are not affected by this setting. - This might be in conflict with other options that affect the file - mode, like fsGroup, and the result can be other mode bits set. - format: int32 - type: integer - sources: - description: sources is the list of volume projections - items: - description: Projection that may be projected - along with other supported volume types - properties: - clusterTrustBundle: - description: |- - ClusterTrustBundle allows a pod to access the `.spec.trustBundle` field - of ClusterTrustBundle objects in an auto-updating file. - - - Alpha, gated by the ClusterTrustBundleProjection feature gate. - - - ClusterTrustBundle objects can either be selected by name, or by the - combination of signer name and a label selector. - - - Kubelet performs aggressive normalization of the PEM contents written - into the pod filesystem. Esoteric PEM features such as inter-block - comments and block headers are stripped. Certificates are deduplicated. - The ordering of certificates within the file is arbitrary, and Kubelet - may change the order over time. - properties: - labelSelector: - description: |- - Select all ClusterTrustBundles that match this label selector. Only has - effect if signerName is set. Mutually-exclusive with name. If unset, - interpreted as "match nothing". If set but empty, interpreted as "match - everything". - properties: - matchExpressions: - description: matchExpressions - is a list of label selector - requirements. The requirements - are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the - label key that the selector - applies to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - required: - - key - - operator - type: object - type: array - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - name: - description: |- - Select a single ClusterTrustBundle by object name. Mutually-exclusive - with signerName and labelSelector. - type: string - optional: - description: |- - If true, don't block pod startup if the referenced ClusterTrustBundle(s) - aren't available. If using name, then the named ClusterTrustBundle is - allowed not to exist. If using signerName, then the combination of - signerName and labelSelector is allowed to match zero - ClusterTrustBundles. - type: boolean - path: - description: Relative path from the - volume root to write the bundle. - type: string - signerName: - description: |- - Select all ClusterTrustBundles that match this signer name. - Mutually-exclusive with name. The contents of all selected - ClusterTrustBundles will be unified and deduplicated. - type: string - required: - - path - type: object - configMap: - description: configMap information about - the configMap data to project - properties: - items: - description: |- - items if unspecified, each key-value pair in the Data field of the referenced - ConfigMap will be projected into the volume as a file whose name is the - key and content is the value. If specified, the listed keys will be - projected into the specified paths, and unlisted keys will not be - present. If a key is specified which is not present in the ConfigMap, - the volume setup will error unless it is marked optional. Paths must be - relative and may not contain the '..' path or start with '..'. - items: - description: Maps a string key to - a path within a volume. - properties: - key: - description: key is the key - to project. - type: string - mode: - description: |- - mode is Optional: mode bits used to set permissions on this file. - Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. - YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. - If not specified, the volume defaultMode will be used. - This might be in conflict with other options that affect the file - mode, like fsGroup, and the result can be other mode bits set. - format: int32 - type: integer - path: - description: |- - path is the relative path of the file to map the key to. - May not be an absolute path. - May not contain the path element '..'. - May not start with the string '..'. - type: string - required: - - key - - path - type: object - type: array - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: optional specify whether - the ConfigMap or its keys must be - defined - type: boolean - type: object - x-kubernetes-map-type: atomic - downwardAPI: - description: downwardAPI information about - the downwardAPI data to project - properties: - items: - description: Items is a list of DownwardAPIVolume - file - items: - description: DownwardAPIVolumeFile - represents information to create - the file containing the pod field - properties: - fieldRef: - description: 'Required: Selects - a field of the pod: only annotations, - labels, name and namespace - are supported.' - properties: - apiVersion: - description: Version of - the schema the FieldPath - is written in terms of, - defaults to "v1". - type: string - fieldPath: - description: Path of the - field to select in the - specified API version. - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - mode: - description: |- - Optional: mode bits used to set permissions on this file, must be an octal value - between 0000 and 0777 or a decimal value between 0 and 511. - YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. - If not specified, the volume defaultMode will be used. - This might be in conflict with other options that affect the file - mode, like fsGroup, and the result can be other mode bits set. - format: int32 - type: integer - path: - description: 'Required: Path - is the relative path name - of the file to be created. - Must not be absolute or contain - the ''..'' path. Must be utf-8 - encoded. The first item of - the relative path must not - start with ''..''' - type: string - resourceFieldRef: - description: |- - Selects a resource of the container: only resources limits and requests - (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported. - properties: - containerName: - description: 'Container - name: required for volumes, - optional for env vars' - type: string - divisor: - anyOf: - - type: integer - - type: string - description: Specifies the - output format of the exposed - resources, defaults to - "1" - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - description: 'Required: - resource to select' - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - required: - - path - type: object - type: array - type: object - secret: - description: secret information about - the secret data to project - properties: - items: - description: |- - items if unspecified, each key-value pair in the Data field of the referenced - Secret will be projected into the volume as a file whose name is the - key and content is the value. If specified, the listed keys will be - projected into the specified paths, and unlisted keys will not be - present. If a key is specified which is not present in the Secret, - the volume setup will error unless it is marked optional. Paths must be - relative and may not contain the '..' path or start with '..'. - items: - description: Maps a string key to - a path within a volume. - properties: - key: - description: key is the key - to project. - type: string - mode: - description: |- - mode is Optional: mode bits used to set permissions on this file. - Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. - YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. - If not specified, the volume defaultMode will be used. - This might be in conflict with other options that affect the file - mode, like fsGroup, and the result can be other mode bits set. - format: int32 - type: integer - path: - description: |- - path is the relative path of the file to map the key to. - May not be an absolute path. - May not contain the path element '..'. - May not start with the string '..'. - type: string - required: - - key - - path - type: object - type: array - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - optional: - description: optional field specify - whether the Secret or its key must - be defined - type: boolean - type: object - x-kubernetes-map-type: atomic - serviceAccountToken: - description: serviceAccountToken is information - about the serviceAccountToken data to - project - properties: - audience: - description: |- - audience is the intended audience of the token. A recipient of a token - must identify itself with an identifier specified in the audience of the - token, and otherwise should reject the token. The audience defaults to the - identifier of the apiserver. - type: string - expirationSeconds: - description: |- - expirationSeconds is the requested duration of validity of the service - account token. As the token approaches expiration, the kubelet volume - plugin will proactively rotate the service account token. The kubelet will - start trying to rotate the token if the token is older than 80 percent of - its time to live or if the token is older than 24 hours.Defaults to 1 hour - and must be at least 10 minutes. - format: int64 - type: integer - path: - description: |- - path is the path relative to the mount point of the file to project the - token into. - type: string - required: - - path - type: object - type: object - type: array - type: object - quobyte: - description: quobyte represents a Quobyte mount - on the host that shares a pod's lifetime - properties: - group: - description: |- - group to map volume access to - Default is no group - type: string - readOnly: - description: |- - readOnly here will force the Quobyte volume to be mounted with read-only permissions. - Defaults to false. - type: boolean - registry: - description: |- - registry represents a single or multiple Quobyte Registry services - specified as a string as host:port pair (multiple entries are separated with commas) - which acts as the central registry for volumes - type: string - tenant: - description: |- - tenant owning the given Quobyte volume in the Backend - Used with dynamically provisioned Quobyte volumes, value is set by the plugin - type: string - user: - description: |- - user to map volume access to - Defaults to serivceaccount user - type: string - volume: - description: volume is a string that references - an already created Quobyte volume by name. - type: string - required: - - registry - - volume - type: object - rbd: - description: |- - rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. - More info: https://examples.k8s.io/volumes/rbd/README.md - properties: - fsType: - description: |- - fsType is the filesystem type of the volume that you want to mount. - Tip: Ensure that the filesystem type is supported by the host operating system. - Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd - TODO: how do we prevent errors in the filesystem from compromising the machine - type: string - image: - description: |- - image is the rados image name. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it - type: string - keyring: - description: |- - keyring is the path to key ring for RBDUser. - Default is /etc/ceph/keyring. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it - type: string - monitors: - description: |- - monitors is a collection of Ceph monitors. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it - items: - type: string - type: array - pool: - description: |- - pool is the rados pool name. - Default is rbd. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it - type: string - readOnly: - description: |- - readOnly here will force the ReadOnly setting in VolumeMounts. - Defaults to false. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it - type: boolean - secretRef: - description: |- - secretRef is name of the authentication secret for RBDUser. If provided - overrides keyring. - Default is nil. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - user: - description: |- - user is the rados user name. - Default is admin. - More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it - type: string - required: - - image - - monitors - type: object - scaleIO: - description: scaleIO represents a ScaleIO persistent - volume attached and mounted on Kubernetes nodes. - properties: - fsType: - description: |- - fsType is the filesystem type to mount. - Must be a filesystem type supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". - Default is "xfs". - type: string - gateway: - description: gateway is the host address of - the ScaleIO API Gateway. - type: string - protectionDomain: - description: protectionDomain is the name of - the ScaleIO Protection Domain for the configured - storage. - type: string - readOnly: - description: |- - readOnly Defaults to false (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. - type: boolean - secretRef: - description: |- - secretRef references to the secret for ScaleIO user and other - sensitive information. If this is not provided, Login operation will fail. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - sslEnabled: - description: sslEnabled Flag enable/disable - SSL communication with Gateway, default false - type: boolean - storageMode: - description: |- - storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. - Default is ThinProvisioned. - type: string - storagePool: - description: storagePool is the ScaleIO Storage - Pool associated with the protection domain. - type: string - system: - description: system is the name of the storage - system as configured in ScaleIO. - type: string - volumeName: - description: |- - volumeName is the name of a volume already created in the ScaleIO system - that is associated with this volume source. - type: string - required: - - gateway - - secretRef - - system - type: object - secret: - description: |- - secret represents a secret that should populate this volume. - More info: https://kubernetes.io/docs/concepts/storage/volumes#secret - properties: - defaultMode: - description: |- - defaultMode is Optional: mode bits used to set permissions on created files by default. - Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. - YAML accepts both octal and decimal values, JSON requires decimal values - for mode bits. Defaults to 0644. - Directories within the path are not affected by this setting. - This might be in conflict with other options that affect the file - mode, like fsGroup, and the result can be other mode bits set. - format: int32 - type: integer - items: - description: |- - items If unspecified, each key-value pair in the Data field of the referenced - Secret will be projected into the volume as a file whose name is the - key and content is the value. If specified, the listed keys will be - projected into the specified paths, and unlisted keys will not be - present. If a key is specified which is not present in the Secret, - the volume setup will error unless it is marked optional. Paths must be - relative and may not contain the '..' path or start with '..'. - items: - description: Maps a string key to a path within - a volume. - properties: - key: - description: key is the key to project. - type: string - mode: - description: |- - mode is Optional: mode bits used to set permissions on this file. - Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. - YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. - If not specified, the volume defaultMode will be used. - This might be in conflict with other options that affect the file - mode, like fsGroup, and the result can be other mode bits set. - format: int32 - type: integer - path: - description: |- - path is the relative path of the file to map the key to. - May not be an absolute path. - May not contain the path element '..'. - May not start with the string '..'. - type: string - required: - - key - - path - type: object - type: array - optional: - description: optional field specify whether - the Secret or its keys must be defined - type: boolean - secretName: - description: |- - secretName is the name of the secret in the pod's namespace to use. - More info: https://kubernetes.io/docs/concepts/storage/volumes#secret - type: string - type: object - storageos: - description: storageOS represents a StorageOS volume - attached and mounted on Kubernetes nodes. - properties: - fsType: - description: |- - fsType is the filesystem type to mount. - Must be a filesystem type supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - type: string - readOnly: - description: |- - readOnly defaults to false (read/write). ReadOnly here will force - the ReadOnly setting in VolumeMounts. - type: boolean - secretRef: - description: |- - secretRef specifies the secret to use for obtaining the StorageOS API - credentials. If not specified, default values will be attempted. - properties: - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - TODO: Add other useful fields. apiVersion, kind, uid? - type: string - type: object - x-kubernetes-map-type: atomic - volumeName: - description: |- - volumeName is the human-readable name of the StorageOS volume. Volume - names are only unique within a namespace. - type: string - volumeNamespace: - description: |- - volumeNamespace specifies the scope of the volume within StorageOS. If no - namespace is specified then the Pod's namespace will be used. This allows the - Kubernetes name scoping to be mirrored within StorageOS for tighter integration. - Set VolumeName to any name to override the default behaviour. - Set to "default" if you are not using namespaces within StorageOS. - Namespaces that do not pre-exist within StorageOS will be created. - type: string - type: object - vsphereVolume: - description: vsphereVolume represents a vSphere - volume attached and mounted on kubelets host machine - properties: - fsType: - description: |- - fsType is filesystem type to mount. - Must be a filesystem type supported by the host operating system. - Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. - type: string - storagePolicyID: - description: storagePolicyID is the storage - Policy Based Management (SPBM) profile ID - associated with the StoragePolicyName. - type: string - storagePolicyName: - description: storagePolicyName is the storage - Policy Based Management (SPBM) profile name. - type: string - volumePath: - description: volumePath is the path that identifies - vSphere volume vmdk - type: string - required: - - volumePath - type: object - required: - - name - type: object - type: array - required: - - containers - type: object - type: object - traits: - description: the traits needed to run this Integration - properties: - 3scale: - description: 'Deprecated: for backward compatibility.' - properties: - configuration: - description: TraitConfiguration parameters configuration - type: object - x-kubernetes-preserve-unknown-fields: true - required: - - configuration - type: object - addons: - additionalProperties: - description: AddonTrait represents the configuration of - an addon trait. - type: object - x-kubernetes-preserve-unknown-fields: true - description: The extension point with addon traits - type: object - affinity: - description: The configuration of Affinity trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - nodeAffinityLabels: - description: Defines a set of nodes the integration pod(s) - are eligible to be scheduled on, based on labels on - the node. - items: - type: string - type: array - podAffinity: - description: Always co-locates multiple replicas of the - integration in the same node (default `false`). - type: boolean - podAffinityLabels: - 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. - items: - type: string - type: array - podAntiAffinity: - description: Never co-locates multiple replicas of the - integration in the same node (default `false`). - type: boolean - podAntiAffinityLabels: - 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. - items: - type: string - type: array - type: object - builder: - description: The configuration of Builder trait - properties: - annotations: - additionalProperties: - type: string - description: When using `pod` strategy, annotation to - use for the builder pod. - type: object - baseImage: - description: |- - Specify a base image. In order to have the application working properly it must be a container image which has a Java JDK - installed and ready to use on path (ie `/usr/bin/java`). - type: string - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: 'Deprecated: no longer in use.' - type: boolean - incrementalImageBuild: - description: Use the incremental image build option, to - reuse existing containers (default `true`) - type: boolean - limitCPU: - description: |- - When using `pod` strategy, the maximum amount of CPU required by the pod builder. - Deprecated: use TasksRequestCPU instead with task name `builder`. - type: string - limitMemory: - description: |- - When using `pod` strategy, the maximum amount of memory required by the pod builder. - Deprecated: use TasksRequestCPU instead with task name `builder`. - type: string - mavenProfiles: - description: |- - A list of references pointing to configmaps/secrets that contains a maven profile. - This configmap/secret is a resource of the IntegrationKit created, therefore it needs to be present in the namespace where the operator is going to create the IntegrationKit. - The content of the maven profile is expected to be a text containing a valid maven profile starting with `` and ending with `` that will be integrated as an inline profile in the POM. - Syntax: [configmap|secret]:name[/key], where name represents the resource name, key optionally represents the resource key to be filtered (default key value = profile.xml). - items: - type: string - type: array - nodeSelector: - additionalProperties: - type: string - description: Defines a set of nodes the builder pod is - eligible to be scheduled on, based on labels on the - node. - type: object - orderStrategy: - description: The build order strategy to use, either `dependencies`, - `fifo` or `sequential` (default is the platform default) - enum: - - dependencies - - fifo - - sequential - type: string - platforms: - description: The list of manifest platforms to use to - build a container image (default `linux/amd64`). - items: - type: string - type: array - properties: - description: A list of properties to be provided to the - build task - items: - type: string - type: array - requestCPU: - description: |- - When using `pod` strategy, the minimum amount of CPU required by the pod builder. - Deprecated: use TasksRequestCPU instead with task name `builder`. - type: string - requestMemory: - description: |- - When using `pod` strategy, the minimum amount of memory required by the pod builder. - Deprecated: use TasksRequestCPU instead with task name `builder`. - type: string - strategy: - description: The strategy to use, either `pod` or `routine` - (default `routine`) - enum: - - pod - - routine - type: string - tasks: - description: A list of tasks to be executed (available - only when using `pod` strategy) with format `;;`. - items: - type: string - type: array - tasksFilter: - description: |- - A list of tasks sorted by the order of execution in a csv format, ie, `,,...`. - Mind that you must include also the operator tasks (`builder`, `quarkus-native`, `package`, `jib`, `s2i`) - if you need to execute them. Useful only with `pod` strategy. - type: string - tasksLimitCPU: - description: A list of limit cpu configuration for the - specific task with format `:`. - items: - type: string - type: array - tasksLimitMemory: - description: A list of limit memory configuration for - the specific task with format `:`. - items: - type: string - type: array - tasksRequestCPU: - description: A list of request cpu configuration for the - specific task with format `:`. - items: - type: string - type: array - tasksRequestMemory: - description: A list of request memory configuration for - the specific task with format `:`. - items: - type: string - type: array - verbose: - description: |- - Enable verbose logging on build components that support it (e.g. Kaniko build pod). - Deprecated no longer in use - type: boolean - type: object - camel: - description: The configuration of Camel trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: 'Deprecated: no longer in use.' - type: boolean - properties: - description: A list of properties to be provided to the - Integration runtime - items: - type: string - type: array - runtimeVersion: - description: |- - The camel-k-runtime version to use for the integration. It overrides the default version set in the Integration Platform. - You can use a fixed version (for example "3.2.3") or a semantic version (for example "3.x") which will try to resolve - to the best matching Catalog existing on the cluster. - type: string - type: object - container: - description: The configuration of Container trait - properties: - allowPrivilegeEscalation: - description: Security Context AllowPrivilegeEscalation - configuration (default false). - type: boolean - auto: - description: To automatically enable the trait - type: boolean - capabilitiesAdd: - description: Security Context Capabilities Add configuration - (default none). - items: - description: Capability represent POSIX capabilities - type - type: string - type: array - capabilitiesDrop: - description: Security Context Capabilities Drop configuration - (default ALL). - items: - description: Capability represent POSIX capabilities - type - type: string - type: array - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: 'Deprecated: no longer in use.' - type: boolean - expose: - description: Can be used to enable/disable exposure via - kubernetes Service. - type: boolean - image: - description: |- - The main container image to use for the Integration. When using this parameter the operator will create a synthetic IntegrationKit which - won't be able to execute traits requiring CamelCatalog. If the container image you're using is coming from an IntegrationKit, use instead - Integration `.spec.integrationKit` parameter. If you're moving the Integration across environments, you will also need to create an "external" IntegrationKit. - type: string - imagePullPolicy: - description: 'The pull policy: Always|Never|IfNotPresent' - enum: - - Always - - Never - - IfNotPresent - type: string - limitCPU: - description: The maximum amount of CPU to be provided - (default 500 millicores). - type: string - limitMemory: - description: The maximum amount of memory to be provided - (default 512 Mi). - type: string - name: - description: The main container name. It's named `integration` - by default. - type: string - port: - description: To configure a different port exposed by - the container (default `8080`). - format: int32 - type: integer - portName: - 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. - type: string - requestCPU: - description: The minimum amount of CPU required (default - 125 millicores). - type: string - requestMemory: - description: The minimum amount of memory required (default - 128 Mi). - type: string - runAsNonRoot: - description: Security Context RunAsNonRoot configuration - (default false). - type: boolean - runAsUser: - description: 'Security Context RunAsUser configuration - (default none): this value is automatically retrieved - in Openshift clusters when not explicitly set.' - format: int64 - type: integer - seccompProfileType: - description: Security Context SeccompProfileType configuration - (default RuntimeDefault). - enum: - - Unconfined - - RuntimeDefault - type: string - servicePort: - description: To configure under which service port the - container port is to be exposed (default `80`). - format: int32 - type: integer - servicePortName: - description: To configure under which service port name - the container port is to be exposed (default `http`). - type: string - type: object - cron: - description: The configuration of Cron trait - properties: - activeDeadlineSeconds: - 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. - format: int64 - type: integer - auto: - 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). - type: boolean - backoffLimit: - description: |- - Specifies the number of retries before marking the job failed. - It defaults to 2. - format: int32 - type: integer - components: - 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. - Supported components are currently: `cron`, `timer` and `quartz`. - type: string - concurrencyPolicy: - 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 - enum: - - Allow - - Forbid - - Replace - type: string - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - fallback: - description: |- - Use the default Camel implementation of the `cron` endpoint (`quartz`) instead of trying to materialize the integration - as Kubernetes CronJob. - type: boolean - schedule: - 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. - type: string - startingDeadlineSeconds: - 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. - format: int64 - type: integer - timeZone: - description: The timezone that the CronJob will run on - type: string - type: object - dependencies: - description: The configuration of Dependencies trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: 'Deprecated: no longer in use.' - type: boolean - type: object - deployer: - description: The configuration of Deployer trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: 'Deprecated: no longer in use.' - type: boolean - kind: - description: Allows to explicitly select the desired deployment - kind between `deployment`, `cron-job` or `knative-service` - when creating the resources for running the integration. - enum: - - deployment - - cron-job - - knative-service - type: string - useSSA: - description: |- - Deprecated: won't be able to enforce client side update in the future. - 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. - type: boolean - type: object - deployment: - description: The configuration of Deployment trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: 'Deprecated: no longer in use.' - type: boolean - progressDeadlineSeconds: - description: |- - The maximum time in seconds for the deployment to make progress before it - is considered to be failed. It defaults to `60s`. - format: int32 - type: integer - rollingUpdateMaxSurge: - anyOf: - - type: integer - - type: string - 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%`. - x-kubernetes-int-or-string: true - rollingUpdateMaxUnavailable: - anyOf: - - type: integer - - type: string - 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%`. - x-kubernetes-int-or-string: true - strategy: - description: The deployment strategy to use to replace - existing pods with new ones. - enum: - - Recreate - - RollingUpdate - type: string - type: object - environment: - description: The configuration of Environment trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - containerMeta: - description: Enables injection of `NAMESPACE` and `POD_NAME` - environment variables (default `true`) - type: boolean - enabled: - description: 'Deprecated: no longer in use.' - type: boolean - httpProxy: - description: Propagates the `HTTP_PROXY`, `HTTPS_PROXY` - and `NO_PROXY` environment variables (default `true`) - type: boolean - vars: - description: |- - A list of environment variables to be added to the integration container. - The syntax is either VAR=VALUE or VAR=[configmap|secret]:name/key, where name represents the resource name, - and key represents the resource key to be mapped as and environment variable. - These take precedence over any previously defined environment variables. - items: - type: string - type: array - type: object - error-handler: - description: The configuration of Error Handler trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: 'Deprecated: no longer in use.' - type: boolean - ref: - description: The error handler ref name provided or found - in application properties - type: string - type: object - gc: - description: The configuration of GC trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - discoveryCache: - description: |- - Discovery client cache to be used, either `disabled`, `disk` or `memory` (default `memory`). - Deprecated: to be removed from trait configuration. - enum: - - disabled - - disk - - memory - type: string - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - type: object - health: - description: The configuration of Health trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - livenessFailureThreshold: - description: Minimum consecutive failures for the liveness - probe to be considered failed after having succeeded. - format: int32 - type: integer - livenessInitialDelay: - description: Number of seconds after the container has - started before the liveness probe is initiated. - format: int32 - type: integer - livenessPeriod: - description: How often to perform the liveness probe. - format: int32 - type: integer - livenessProbe: - description: The liveness probe path to use (default provided - by the Catalog runtime used). - type: string - livenessProbeEnabled: - description: Configures the liveness probe for the integration - container (default `false`). - type: boolean - livenessScheme: - description: Scheme to use when connecting to the liveness - probe (default `HTTP`). - type: string - livenessSuccessThreshold: - description: Minimum consecutive successes for the liveness - probe to be considered successful after having failed. - format: int32 - type: integer - livenessTimeout: - description: Number of seconds after which the liveness - probe times out. - format: int32 - type: integer - readinessFailureThreshold: - description: Minimum consecutive failures for the readiness - probe to be considered failed after having succeeded. - format: int32 - type: integer - readinessInitialDelay: - description: Number of seconds after the container has - started before the readiness probe is initiated. - format: int32 - type: integer - readinessPeriod: - description: How often to perform the readiness probe. - format: int32 - type: integer - readinessProbe: - description: The readiness probe path to use (default - provided by the Catalog runtime used). - type: string - readinessProbeEnabled: - description: Configures the readiness probe for the integration - container (default `true`). - type: boolean - readinessScheme: - description: Scheme to use when connecting to the readiness - probe (default `HTTP`). - type: string - readinessSuccessThreshold: - description: Minimum consecutive successes for the readiness - probe to be considered successful after having failed. - format: int32 - type: integer - readinessTimeout: - description: Number of seconds after which the readiness - probe times out. - format: int32 - type: integer - startupFailureThreshold: - description: Minimum consecutive failures for the startup - probe to be considered failed after having succeeded. - format: int32 - type: integer - startupInitialDelay: - description: Number of seconds after the container has - started before the startup probe is initiated. - format: int32 - type: integer - startupPeriod: - description: How often to perform the startup probe. - format: int32 - type: integer - startupProbe: - description: The startup probe path to use (default provided - by the Catalog runtime used). - type: string - startupProbeEnabled: - description: Configures the startup probe for the integration - container (default `false`). - type: boolean - startupScheme: - description: Scheme to use when connecting to the startup - probe (default `HTTP`). - type: string - startupSuccessThreshold: - description: Minimum consecutive successes for the startup - probe to be considered successful after having failed. - format: int32 - type: integer - startupTimeout: - description: Number of seconds after which the startup - probe times out. - format: int32 - type: integer - type: object - ingress: - description: The configuration of Ingress trait - properties: - annotations: - additionalProperties: - type: 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 - type: object - auto: - description: To automatically add an ingress whenever - the integration uses an HTTP endpoint consumer. - type: boolean - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - host: - description: To configure the host exposed by the ingress. - type: string - ingressClassName: - description: |- - The Ingress class name as defined by the Ingress spec - See https://kubernetes.io/docs/concepts/services-networking/ingress/ - type: string - path: - description: To configure the path exposed by the ingress - (default `/`). - type: string - pathType: - description: |- - To configure the path type exposed by the ingress. - One of `Exact`, `Prefix`, `ImplementationSpecific` (default to `Prefix`). - enum: - - Exact - - Prefix - - ImplementationSpecific - type: string - tlsHosts: - description: To configure tls hosts - items: - type: string - type: array - tlsSecretName: - description: To configure tls secret name - type: string - type: object - istio: - description: The configuration of Istio trait - properties: - allow: - 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). - type: string - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - inject: - 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. - type: boolean - type: object - jolokia: - description: The configuration of Jolokia trait - properties: - CACert: - 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). - type: string - clientPrincipal: - 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). - items: - type: string - type: array - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - discoveryEnabled: - description: Listen for multicast requests (default `false`) - type: boolean - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - extendedClientCheck: - 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). - type: boolean - host: - 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 `"*"`). - type: string - options: - description: |- - A list of additional Jolokia options as defined - in https://jolokia.org/reference/html/agents.html#agent-jvm-config[JVM agent configuration options] - items: - type: string - type: array - password: - description: The password used for authentication, applicable - when the `user` option is set. - type: string - port: - description: The Jolokia endpoint port (default `8778`). - format: int32 - type: integer - protocol: - description: The protocol to use, either `http` or `https` - (default `https` for OpenShift) - type: string - useSSLClientAuthentication: - description: Whether client certificates should be used - for authentication (default `true` for OpenShift). - type: boolean - user: - description: The user to be used for authentication - type: string - type: object - jvm: - description: The configuration of JVM trait - properties: - classpath: - description: Additional JVM classpath (use `Linux` classpath - separator) - type: string - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - debug: - description: Activates remote debugging, so that a debugger - can be attached to the JVM, e.g., using port-forwarding - type: boolean - debugAddress: - description: Transport address at which to listen for - the newly launched JVM (default `*:5005`) - type: string - debugSuspend: - description: Suspends the target JVM immediately before - the main class is loaded - type: boolean - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - jar: - description: The Jar dependency which will run the application. - Leave it empty for managed Integrations. - type: string - options: - description: A list of JVM options - items: - type: string - type: array - printCommand: - description: |- - Prints the command used the start the JVM in the container logs (default `true`) - Deprecated: no longer in use. - type: boolean - type: object - kamelets: - description: The configuration of Kamelets trait - properties: - auto: - description: Automatically inject all referenced Kamelets - and their default configuration (enabled by default) - type: boolean - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - list: - description: Comma separated list of Kamelet names to - load into the current integration - type: string - mountPoint: - description: The directory where the application mounts - and reads Kamelet spec (default `/etc/camel/kamelets`) - type: string - type: object - keda: - description: 'Deprecated: for backward compatibility.' - properties: - configuration: - description: TraitConfiguration parameters configuration - type: object - x-kubernetes-preserve-unknown-fields: true - required: - - configuration - type: object - knative: - description: The configuration of Knative trait - properties: - auto: - description: Enable automatic discovery of all trait properties. - type: boolean - channelSinks: - description: |- - List of channels used as destination of integration routes. - Can contain simple channel names or full Camel URIs. - items: - type: string - type: array - channelSources: - description: |- - List of channels used as source of integration routes. - Can contain simple channel names or full Camel URIs. - items: - type: string - type: array - config: - description: Can be used to inject a Knative complete - configuration in JSON format. - type: string - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - endpointSinks: - description: |- - List of endpoints used as destination of integration routes. - Can contain simple endpoint names or full Camel URIs. - items: - type: string - type: array - endpointSources: - description: List of channels used as source of integration - routes. - items: - type: string - type: array - eventSinks: - description: |- - List of event types that the integration will produce. - Can contain simple event types or full Camel URIs (to use a specific broker). - items: - type: string - type: array - eventSources: - 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"). - items: - type: string - type: array - filterEventType: - description: |- - Enables the default filtering for the Knative trigger using the event type - If this is true, the created Knative trigger uses the event type as a filter on the event stream when no other filter criteria is given. (default: true) - type: boolean - filterSourceChannels: - 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. - type: boolean - filters: - description: |- - Sets filter attributes on the event stream (such as event type, source, subject and so on). - A list of key-value pairs that represent filter attributes and its values. - The syntax is KEY=VALUE, e.g., `source="my.source"`. - Filter attributes get set on the Knative trigger that is being created as part of this integration. - items: - type: string - type: array - namespaceLabel: - 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) - type: boolean - sinkBinding: - 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). - type: boolean - type: object - knative-service: - description: The configuration of Knative Service trait - properties: - annotations: - additionalProperties: - type: string - description: |- - The annotations added to route. - This can be used to set knative service specific annotations - CLI usage example: -t "knative-service.annotations.'haproxy.router.openshift.io/balance'=true" - type: object - auto: - description: |- - Automatically deploy the integration as Knative service when all conditions hold: - - - * Integration is using the Knative profile - * All routes are either starting from an HTTP based consumer or a passive consumer (e.g. `direct` is a passive consumer) - type: boolean - autoscalingMetric: - 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. - type: string - autoscalingTarget: - 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. - type: integer - class: - 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. - enum: - - kpa.autoscaling.knative.dev - - hpa.autoscaling.knative.dev - type: string - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - maxScale: - 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. - type: integer - minScale: - 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. - type: integer - rolloutDuration: - 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. - type: string - timeoutSeconds: - description: |- - The maximum duration in seconds that the request instance is allowed to respond to a request. - This field propagates to the integration pod's terminationGracePeriodSeconds - - - Refer to the Knative documentation for more information. - format: int64 - type: integer - visibility: - description: |- - Setting `cluster-local`, Knative service becomes a private service. - Specifically, this option applies the `networking.knative.dev/visibility` label to Knative service. - - - Refer to the Knative documentation for more information. - enum: - - cluster-local - type: string - type: object - logging: - description: The configuration of Logging trait - properties: - color: - description: Colorize the log output - type: boolean - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - format: - description: Logs message format - type: string - json: - description: Output the logs in JSON - type: boolean - jsonPrettyPrint: - description: Enable "pretty printing" of the JSON logs - type: boolean - level: - description: Adjust the logging level (defaults to `INFO`) - enum: - - FATAL - - WARN - - INFO - - DEBUG - - TRACE - type: string - type: object - master: - description: 'Deprecated: for backward compatibility.' - properties: - configuration: - description: TraitConfiguration parameters configuration - type: object - x-kubernetes-preserve-unknown-fields: true - required: - - configuration - type: object - mount: - description: The configuration of Mount trait - properties: - configs: - description: |- - A list of configuration pointing to configmap/secret. - The configuration are expected to be UTF-8 resources as they are processed by runtime Camel Context and tried to be parsed as property files. - They are also made available on the classpath in order to ease their usage directly from the Route. - Syntax: [configmap|secret]:name[/key], where name represents the resource name and key optionally represents the resource key to be filtered - items: - type: string - type: array - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - emptyDirs: - description: |- - A list of EmptyDir volumes to be mounted. An optional size limit may be configured (default 500Mi). - Syntax: name:/container/path[:sizeLimit] - items: - type: string - type: array - enabled: - description: 'Deprecated: no longer in use.' - type: boolean - hotReload: - description: |- - Enable "hot reload" when a secret/configmap mounted is edited (default `false`). The configmap/secret must be - marked with `camel.apache.org/integration` label to be taken in account. The resource will be watched for any kind change, also for - changes in metadata. - type: boolean - resources: - description: |- - A list of resources (text or binary content) pointing to configmap/secret. - The resources are expected to be any resource type (text or binary content). - The destination path can be either a default location or any path specified by the user. - Syntax: [configmap|secret]:name[/key][@path], where name represents the resource name, key optionally represents the resource key to be filtered and path represents the destination path - items: - type: string - type: array - scanKameletsImplicitLabelSecrets: - description: 'Deprecated: no longer available since version - 2.5.' - type: boolean - volumes: - description: |- - A list of Persistent Volume Claims to be mounted. Syntax: [pvcname:/container/path]. If the PVC is not found, the Integration fails. - You can use the syntax [pvcname:/container/path:size:accessMode<:storageClass>] to create a dynamic PVC based on the Storage Class provided - or the default cluster Storage Class. However, if the PVC exists, the operator would mount it. - items: - type: string - type: array - type: object - openapi: - description: The configuration of OpenAPI trait - properties: - configmaps: - description: The configmaps holding the spec of the OpenAPI - (compatible with > 3.0 spec only). - items: - type: string - type: array - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: 'Deprecated: no longer in use.' - type: boolean - type: object - owner: - description: The configuration of Owner trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - targetAnnotations: - description: The set of annotations to be transferred - items: - type: string - type: array - targetLabels: - description: The set of labels to be transferred - items: - type: string - type: array - type: object - pdb: - description: The configuration of PDB trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - maxUnavailable: - description: |- - The number of pods for the Integration that can be unavailable after an eviction. - It can be either an absolute number or a percentage (default `1` if `min-available` is also not set). - Only one of `max-unavailable` and `min-available` can be specified. - type: string - minAvailable: - description: |- - The number of pods for the Integration that must still be available after an eviction. - It can be either an absolute number or a percentage. - Only one of `min-available` and `max-unavailable` can be specified. - type: string - type: object - platform: - description: The configuration of Platform trait - properties: - auto: - description: |- - To automatically detect from the environment if a default platform can be created (it will be created on OpenShift or when a registry address is set). - Deprecated: Platform is auto generated by the operator install procedure - maintained for backward compatibility - type: boolean - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - createDefault: - description: |- - To create a default (empty) platform when the platform is missing. - Deprecated: Platform is auto generated by the operator install procedure - maintained for backward compatibility - type: boolean - enabled: - description: 'Deprecated: no longer in use.' - type: boolean - global: - description: |- - Indicates if the platform should be created globally in the case of global operator (default true). - Deprecated: Platform is auto generated by the operator install procedure - maintained for backward compatibility - type: boolean - type: object - pod: - description: The configuration of Pod trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - type: object - prometheus: - description: The configuration of Prometheus trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - podMonitor: - description: Whether a `PodMonitor` resource is created - (default `true`). - type: boolean - podMonitorLabels: - description: The `PodMonitor` resource labels, applicable - when `pod-monitor` is `true`. - items: - type: string - type: array - type: object - pull-secret: - description: The configuration of Pull Secret trait - properties: - auto: - description: Automatically configures the platform registry - secret on the pod if it is of type `kubernetes.io/dockerconfigjson`. - type: boolean - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - imagePullerDelegation: - description: When using a global operator with a shared - platform, this enables delegation of the `system:image-puller` - cluster role on the operator namespace to the integration - service account. - type: boolean - secretName: - description: The pull secret name to set on the Pod. If - left empty this is automatically taken from the `IntegrationPlatform` - registry configuration. - type: string - type: object - quarkus: - description: The configuration of Quarkus trait - properties: - buildMode: - description: |- - The Quarkus mode to run: either `jvm` or `native` (default `jvm`). - In case both `jvm` and `native` are specified, two `IntegrationKit` resources are created, - with the `native` kit having precedence over the `jvm` one once ready. - items: - description: QuarkusMode is the type of Quarkus build - packaging. - enum: - - jvm - - native - type: string - type: array - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: 'Deprecated: no longer in use.' - type: boolean - nativeBaseImage: - description: The base image to use when running a native - build (default `quay.io/quarkus/quarkus-micro-image:2.0`) - type: string - nativeBuilderImage: - description: The image containing the tooling required - for a native build (by default it will use the one provided - in the runtime catalog) - type: string - packageTypes: - description: |- - The Quarkus package types, `fast-jar` or `native` (default `fast-jar`). - In case both `fast-jar` and `native` are specified, two `IntegrationKit` resources are created, - with the native kit having precedence over the `fast-jar` one once ready. - The order influences the resolution of the current kit for the integration. - The kit corresponding to the first package type will be assigned to the - integration in case no existing kit that matches the integration exists. - Deprecated: use `build-mode` instead. - items: - description: |- - QuarkusPackageType is the type of Quarkus build packaging. - Deprecated: use `QuarkusMode` instead. - enum: - - fast-jar - - native - type: string - type: array - type: object - registry: - description: |- - The configuration of Registry trait (support removed since version 2.5.0). - Deprecated: use jvm trait or read documentation. - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - type: object - route: - description: The configuration of Route trait - properties: - annotations: - additionalProperties: - type: string - description: |- - The annotations added to route. - This can be used to set route specific annotations - For annotations options see https://docs.openshift.com/container-platform/3.11/architecture/networking/routes.html#route-specific-annotations - CLI usage example: -t "route.annotations.'haproxy.router.openshift.io/balance'=true" - type: object - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - host: - description: To configure the host exposed by the route. - type: string - tlsCACertificate: - description: |- - The TLS CA certificate contents. - - - Refer to the OpenShift route documentation for additional information. - type: string - tlsCACertificateSecret: - description: |- - The secret name and key reference to the TLS CA certificate. The format is "secret-name[/key-name]", the value represents the secret name, if there is only one key in the secret it will be read, otherwise you can set a key name separated with a "/". - - - Refer to the OpenShift route documentation for additional information. - type: string - tlsCertificate: - description: |- - The TLS certificate contents. - - - Refer to the OpenShift route documentation for additional information. - type: string - tlsCertificateSecret: - description: |- - The secret name and key reference to the TLS certificate. The format is "secret-name[/key-name]", the value represents the secret name, if there is only one key in the secret it will be read, otherwise you can set a key name separated with a "/". - - - Refer to the OpenShift route documentation for additional information. - type: string - tlsDestinationCACertificate: - description: |- - The destination CA certificate provides the contents of the ca certificate of the final destination. When using reencrypt - termination this file should be provided in order to have routers use it for health checks on the secure connection. - If this field is not specified, the router may provide its own destination CA and perform hostname validation using - the short service name (service.namespace.svc), which allows infrastructure generated certificates to automatically - verify. - - - Refer to the OpenShift route documentation for additional information. - type: string - tlsDestinationCACertificateSecret: - description: |- - The secret name and key reference to the destination CA certificate. The format is "secret-name[/key-name]", the value represents the secret name, if there is only one key in the secret it will be read, otherwise you can set a key name separated with a "/". - - - Refer to the OpenShift route documentation for additional information. - type: string - tlsInsecureEdgeTerminationPolicy: - 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. - enum: - - None - - Allow - - Redirect - type: string - tlsKey: - description: |- - The TLS certificate key contents. - - - Refer to the OpenShift route documentation for additional information. - type: string - tlsKeySecret: - description: |- - The secret name and key reference to the TLS certificate key. The format is "secret-name[/key-name]", the value represents the secret name, if there is only one key in the secret it will be read, otherwise you can set a key name separated with a "/". - - - Refer to the OpenShift route documentation for additional information. - type: string - tlsTermination: - description: |- - The TLS termination type, like `edge`, `passthrough` or `reencrypt`. - - - Refer to the OpenShift route documentation for additional information. - enum: - - edge - - reencrypt - - passthrough - type: string - type: object - security-context: - description: The configuration of Security Context trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: 'Deprecated: no longer in use.' - type: boolean - runAsNonRoot: - description: Security Context RunAsNonRoot configuration - (default false). - type: boolean - runAsUser: - description: 'Security Context RunAsUser configuration - (default none): this value is automatically retrieved - in Openshift clusters when not explicitly set.' - format: int64 - type: integer - seccompProfileType: - description: Security Context SeccompProfileType configuration - (default RuntimeDefault). - enum: - - Unconfined - - RuntimeDefault - type: string - type: object - service: - description: The configuration of Service trait - properties: - annotations: - additionalProperties: - type: string - description: The annotations added to the Service object. - type: object - auto: - description: To automatically detect from the code if - a Service needs to be created. - type: boolean - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - labels: - additionalProperties: - type: string - description: The labels added to the Service object. - type: object - nodePort: - description: |- - Enable Service to be exposed as NodePort (default `false`). - Deprecated: Use service type instead. - type: boolean - type: - description: The type of service to be used, either 'ClusterIP', - 'NodePort' or 'LoadBalancer'. - enum: - - ClusterIP - - NodePort - - LoadBalancer - type: string - type: object - service-binding: - description: The configuration of Service Binding trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - services: - description: List of Services in the form [[apigroup/]version:]kind:[namespace/]name - items: - type: string - type: array - type: object - strimzi: - description: 'Deprecated: for backward compatibility.' - properties: - configuration: - description: TraitConfiguration parameters configuration - type: object - x-kubernetes-preserve-unknown-fields: true - required: - - configuration - type: object - telemetry: - description: The configuration of Telemetry trait - properties: - auto: - description: Enables automatic configuration of the trait, - including automatic discovery of the telemetry endpoint. - type: boolean - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - endpoint: - description: The target endpoint of the Telemetry service - (automatically discovered by default) - type: string - sampler: - description: The sampler of the telemetry used for tracing - (default "on") - type: string - sampler-parent-based: - description: The sampler of the telemetry used for tracing - is parent based (default "true") - type: boolean - sampler-ratio: - description: The sampler ratio of the telemetry used for - tracing - type: string - serviceName: - description: The name of the service that publishes telemetry - data (defaults to the integration name) - type: string - type: object - toleration: - description: The configuration of Toleration trait - properties: - configuration: - description: |- - Legacy trait configuration parameters. - Deprecated: for backward compatibility. - type: object - x-kubernetes-preserve-unknown-fields: true - enabled: - description: Can be used to enable or disable a trait. - All traits share this common property. - type: boolean - taints: - description: The list of taints to tolerate, in the form - `Key[=Value]:Effect[:Seconds]` - items: - type: string - type: array - type: object - tracing: - description: 'Deprecated: for backward compatibility.' - properties: - configuration: - description: TraitConfiguration parameters configuration - type: object - x-kubernetes-preserve-unknown-fields: true - required: - - configuration - type: object - type: object - type: object - replicas: - description: Replicas is the number of desired replicas for the binding - format: int32 - type: integer - serviceAccountName: - description: Custom SA to use for the binding - type: string - sink: - description: Sink is the destination of the integration defined by - this binding - properties: - dataTypes: - additionalProperties: - description: DataTypeReference references to the specification - of a data type by its scheme and format name. - properties: - format: - description: the data type format name - type: string - scheme: - description: the data type component scheme - type: string - type: object - description: DataTypes defines the data type of the data produced/consumed - by the endpoint and references a given data type specification. - type: object - properties: - description: Properties are a key value representation of endpoint - properties - type: object - x-kubernetes-preserve-unknown-fields: true - ref: - description: Ref can be used to declare a Kubernetes resource - as source/sink endpoint - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: |- - If referring to a piece of an object instead of an entire object, this string - should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within a pod, this would take on a value like: - "spec.containers{name}" (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" (container with - index 2 in this pod). This syntax is chosen only to have some well-defined way of - referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. - type: string - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - namespace: - description: |- - Namespace of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - type: string - resourceVersion: - description: |- - Specific resourceVersion to which this reference is made, if any. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - type: string - uid: - description: |- - UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - type: string - type: object - x-kubernetes-map-type: atomic - types: - additionalProperties: - description: |- - EventTypeSpec represents a specification for an event type. - Deprecated: In favor of using DataTypeSpec. - properties: - mediaType: - description: media type as expected for HTTP media types - (ie, application/json) - type: string - schema: - description: the expected schema for the event - properties: - $schema: - description: JSONSchemaURL represents a schema url. - type: string - description: - type: string - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - externalDocs: - description: ExternalDocumentation allows referencing - an external resource for extended documentation. - properties: - description: - type: string - url: - type: string - type: object - id: - type: string - properties: - additionalProperties: - properties: - default: - description: default is a default value for undefined - object fields. - x-kubernetes-preserve-unknown-fields: true - deprecated: - type: boolean - description: - type: string - enum: - items: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - type: array - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - exclusiveMaximum: - type: boolean - exclusiveMinimum: - type: boolean - format: - description: |- - format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: - - - - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - - uri: an URI as parsed by Golang net/url.ParseRequestURI - - email: an email address as parsed by Golang net/mail.ParseAddress - - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - - cidr: a CIDR as parsed by Golang net.ParseCIDR - - mac: a MAC address as parsed by Golang net.ParseMAC - - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - - isbn10: an ISBN10 number string like "0321751043" - - isbn13: an ISBN13 number string like "978-0321751041" - - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - - hexcolor: an hexadecimal color code like "#FFFFFF" following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - - rgbcolor: an RGB color code like rgb like "rgb(255,255,255)" - - byte: base64 encoded binary data - - password: any kind of string - - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. - type: string - id: - type: string - maxItems: - format: int64 - type: integer - maxLength: - format: int64 - type: integer - maxProperties: - format: int64 - type: integer - maximum: - description: A Number represents a JSON number - literal. - type: string - minItems: - format: int64 - type: integer - minLength: - format: int64 - type: integer - minProperties: - format: int64 - type: integer - minimum: - description: A Number represents a JSON number - literal. - type: string - multipleOf: - description: A Number represents a JSON number - literal. - type: string - nullable: - type: boolean - pattern: - type: string - title: - type: string - type: - type: string - uniqueItems: - type: boolean - x-descriptors: - description: XDescriptors is a list of extended - properties that trigger a custom behavior in - external systems - items: - type: string - type: array - type: object - type: object - required: - items: - type: string - type: array - title: - type: string - type: - type: string - type: object - type: object - description: |- - Types defines the data type of the data produced/consumed by the endpoint and references a given data type specification. - Deprecated: In favor of using DataTypes - type: object - uri: - description: URI can be used to specify the (Camel) endpoint explicitly - type: string - type: object - source: - description: Source is the starting point of the integration defined - by this binding - properties: - dataTypes: - additionalProperties: - description: DataTypeReference references to the specification - of a data type by its scheme and format name. - properties: - format: - description: the data type format name - type: string - scheme: - description: the data type component scheme - type: string - type: object - description: DataTypes defines the data type of the data produced/consumed - by the endpoint and references a given data type specification. - type: object - properties: - description: Properties are a key value representation of endpoint - properties - type: object - x-kubernetes-preserve-unknown-fields: true - ref: - description: Ref can be used to declare a Kubernetes resource - as source/sink endpoint - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: |- - If referring to a piece of an object instead of an entire object, this string - should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within a pod, this would take on a value like: - "spec.containers{name}" (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" (container with - index 2 in this pod). This syntax is chosen only to have some well-defined way of - referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. - type: string - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - namespace: - description: |- - Namespace of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - type: string - resourceVersion: - description: |- - Specific resourceVersion to which this reference is made, if any. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - type: string - uid: - description: |- - UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - type: string - type: object - x-kubernetes-map-type: atomic - types: - additionalProperties: - description: |- - EventTypeSpec represents a specification for an event type. - Deprecated: In favor of using DataTypeSpec. - properties: - mediaType: - description: media type as expected for HTTP media types - (ie, application/json) - type: string - schema: - description: the expected schema for the event - properties: - $schema: - description: JSONSchemaURL represents a schema url. - type: string - description: - type: string - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - externalDocs: - description: ExternalDocumentation allows referencing - an external resource for extended documentation. - properties: - description: - type: string - url: - type: string - type: object - id: - type: string - properties: - additionalProperties: - properties: - default: - description: default is a default value for undefined - object fields. - x-kubernetes-preserve-unknown-fields: true - deprecated: - type: boolean - description: - type: string - enum: - items: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - type: array - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - exclusiveMaximum: - type: boolean - exclusiveMinimum: - type: boolean - format: - description: |- - format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: - - - - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - - uri: an URI as parsed by Golang net/url.ParseRequestURI - - email: an email address as parsed by Golang net/mail.ParseAddress - - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - - cidr: a CIDR as parsed by Golang net.ParseCIDR - - mac: a MAC address as parsed by Golang net.ParseMAC - - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - - isbn10: an ISBN10 number string like "0321751043" - - isbn13: an ISBN13 number string like "978-0321751041" - - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - - hexcolor: an hexadecimal color code like "#FFFFFF" following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - - rgbcolor: an RGB color code like rgb like "rgb(255,255,255)" - - byte: base64 encoded binary data - - password: any kind of string - - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. - type: string - id: - type: string - maxItems: - format: int64 - type: integer - maxLength: - format: int64 - type: integer - maxProperties: - format: int64 - type: integer - maximum: - description: A Number represents a JSON number - literal. - type: string - minItems: - format: int64 - type: integer - minLength: - format: int64 - type: integer - minProperties: - format: int64 - type: integer - minimum: - description: A Number represents a JSON number - literal. - type: string - multipleOf: - description: A Number represents a JSON number - literal. - type: string - nullable: - type: boolean - pattern: - type: string - title: - type: string - type: - type: string - uniqueItems: - type: boolean - x-descriptors: - description: XDescriptors is a list of extended - properties that trigger a custom behavior in - external systems - items: - type: string - type: array - type: object - type: object - required: - items: - type: string - type: array - title: - type: string - type: - type: string - type: object - type: object - description: |- - Types defines the data type of the data produced/consumed by the endpoint and references a given data type specification. - Deprecated: In favor of using DataTypes - type: object - uri: - description: URI can be used to specify the (Camel) endpoint explicitly - type: string - type: object - steps: - description: Steps contains an optional list of intermediate steps - that are executed between the Source and the Sink - items: - description: Endpoint represents a source/sink external entity (could - be any Kubernetes resource or Camel URI). - properties: - dataTypes: - additionalProperties: - description: DataTypeReference references to the specification - of a data type by its scheme and format name. - properties: - format: - description: the data type format name - type: string - scheme: - description: the data type component scheme - type: string - type: object - description: DataTypes defines the data type of the data produced/consumed - by the endpoint and references a given data type specification. - type: object - properties: - description: Properties are a key value representation of endpoint - properties - type: object - x-kubernetes-preserve-unknown-fields: true - ref: - description: Ref can be used to declare a Kubernetes resource - as source/sink endpoint - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: |- - If referring to a piece of an object instead of an entire object, this string - should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within a pod, this would take on a value like: - "spec.containers{name}" (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" (container with - index 2 in this pod). This syntax is chosen only to have some well-defined way of - referencing a part of an object. - TODO: this design is not final and this field is subject to change in the future. - type: string - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - namespace: - description: |- - Namespace of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - type: string - resourceVersion: - description: |- - Specific resourceVersion to which this reference is made, if any. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - type: string - uid: - description: |- - UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - type: string - type: object - x-kubernetes-map-type: atomic - types: - additionalProperties: - description: |- - EventTypeSpec represents a specification for an event type. - Deprecated: In favor of using DataTypeSpec. - properties: - mediaType: - description: media type as expected for HTTP media types - (ie, application/json) - type: string - schema: - description: the expected schema for the event - properties: - $schema: - description: JSONSchemaURL represents a schema url. - type: string - description: - type: string - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - externalDocs: - description: ExternalDocumentation allows referencing - an external resource for extended documentation. - properties: - description: - type: string - url: - type: string - type: object - id: - type: string - properties: - additionalProperties: - properties: - default: - description: default is a default value for - undefined object fields. - x-kubernetes-preserve-unknown-fields: true - deprecated: - type: boolean - description: - type: string - enum: - items: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - type: array - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - exclusiveMaximum: - type: boolean - exclusiveMinimum: - type: boolean - format: - description: |- - format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: - - - - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - - uri: an URI as parsed by Golang net/url.ParseRequestURI - - email: an email address as parsed by Golang net/mail.ParseAddress - - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - - cidr: a CIDR as parsed by Golang net.ParseCIDR - - mac: a MAC address as parsed by Golang net.ParseMAC - - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - - isbn10: an ISBN10 number string like "0321751043" - - isbn13: an ISBN13 number string like "978-0321751041" - - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - - hexcolor: an hexadecimal color code like "#FFFFFF" following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - - rgbcolor: an RGB color code like rgb like "rgb(255,255,255)" - - byte: base64 encoded binary data - - password: any kind of string - - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. - type: string - id: - type: string - maxItems: - format: int64 - type: integer - maxLength: - format: int64 - type: integer - maxProperties: - format: int64 - type: integer - maximum: - description: A Number represents a JSON number - literal. - type: string - minItems: - format: int64 - type: integer - minLength: - format: int64 - type: integer - minProperties: - format: int64 - type: integer - minimum: - description: A Number represents a JSON number - literal. - type: string - multipleOf: - description: A Number represents a JSON number - literal. - type: string - nullable: - type: boolean - pattern: - type: string - title: - type: string - type: - type: string - uniqueItems: - type: boolean - x-descriptors: - description: XDescriptors is a list of extended - properties that trigger a custom behavior - in external systems - items: - type: string - type: array - type: object - type: object - required: - items: - type: string - type: array - title: - type: string - type: - type: string - type: object - type: object - description: |- - Types defines the data type of the data produced/consumed by the endpoint and references a given data type specification. - Deprecated: In favor of using DataTypes - type: object - uri: - description: URI can be used to specify the (Camel) endpoint - explicitly - type: string - type: object - type: array - type: object - status: - description: the status of a KameletBinding - properties: - conditions: - description: Conditions -- - items: - description: KameletBindingCondition describes the state of a resource - at a certain point. - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - format: date-time - type: string - lastUpdateTime: - description: The last time this condition was updated. - format: date-time - type: string - message: - description: A human readable message indicating details about - the transition. - type: string - pods: - description: Pods collect health and conditions information - from the owned PODs - items: - properties: - condition: - description: PodCondition contains details for the current - condition of this pod. - properties: - lastProbeTime: - description: Last time we probed the condition. - format: date-time - type: string - lastTransitionTime: - description: Last time the condition transitioned - from one status to another. - format: date-time - type: string - message: - description: Human-readable message indicating details - about last transition. - type: string - reason: - description: Unique, one-word, CamelCase reason for - the condition's last transition. - type: string - status: - description: |- - Status is the status of the condition. - Can be True, False, Unknown. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions - type: string - type: - description: |- - Type is the type of the condition. - More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions - type: string - required: - - status - - type - type: object - health: - items: - properties: - data: - description: |- - RawMessage is a raw encoded JSON value. - It implements Marshaler and Unmarshaler and can - be used to delay JSON decoding or precompute a JSON encoding. - x-kubernetes-preserve-unknown-fields: true - name: - type: string - status: - type: string - type: object - type: array - name: - type: string - required: - - condition - type: object - type: array - reason: - description: The reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of kameletBinding condition. - type: string - required: - - status - - type - type: object - type: array - observedGeneration: - description: ObservedGeneration is the most recent generation observed - for this KameletBinding. - format: int64 - type: integer - phase: - description: Phase -- - type: string - replicas: - description: Replicas is the number of actual replicas of the binding - format: int32 - type: integer - selector: - description: Selector allows to identify pods belonging to the binding - type: string - type: object - type: object - served: true - storage: true - subresources: - scale: - labelSelectorPath: .status.selector - specReplicasPath: .spec.replicas - statusReplicasPath: .status.replicas - status: {} diff --git a/pkg/resources/config/crd/bases/camel.apache.org_kamelets.yaml b/pkg/resources/config/crd/bases/camel.apache.org_kamelets.yaml index 7a61e23e24..ea1278f513 100644 --- a/pkg/resources/config/crd/bases/camel.apache.org_kamelets.yaml +++ b/pkg/resources/config/crd/bases/camel.apache.org_kamelets.yaml @@ -1318,677 +1318,3 @@ spec: storage: true subresources: status: {} - - additionalPrinterColumns: - - description: The Kamelet phase - jsonPath: .status.phase - name: Phase - type: string - deprecated: true - deprecationWarning: v1apha1.Kamelet is deprecated, please, use v1.Kamelet instead - name: v1alpha1 - schema: - openAPIV3Schema: - description: Kamelet is the Schema for the kamelets API. - properties: - apiVersion: - description: |- - APIVersion defines the versioned schema of this representation of an object. - Servers should convert recognized schemas to the latest internal value, and - may reject unrecognized values. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources - type: string - kind: - description: |- - Kind is a string value representing the REST resource this object represents. - Servers may infer this from the endpoint the client submits requests to. - Cannot be updated. - In CamelCase. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - metadata: - type: object - spec: - description: the desired specification. - properties: - dataTypes: - additionalProperties: - description: DataTypesSpec represents the specification for a set - of data types. - properties: - default: - description: the default data type for this Kamelet - type: string - headers: - additionalProperties: - description: HeaderSpec represents the specification for a - header used in the Kamelet. - properties: - default: - type: string - description: - type: string - required: - type: boolean - title: - type: string - type: - type: string - type: object - description: one to many header specifications - type: object - types: - additionalProperties: - description: DataTypeSpec represents the specification for - a data type. - properties: - dependencies: - description: the list of Camel or Maven dependencies required - by the data type - items: - type: string - type: array - description: - description: optional description - type: string - format: - description: the data type format name - type: string - headers: - additionalProperties: - description: HeaderSpec represents the specification - for a header used in the Kamelet. - properties: - default: - type: string - description: - type: string - required: - type: boolean - title: - type: string - type: - type: string - type: object - description: one to many header specifications - type: object - mediaType: - description: media type as expected for HTTP media types - (ie, application/json) - type: string - schema: - description: the expected schema for the data type - properties: - $schema: - description: JSONSchemaURL represents a schema url. - type: string - description: - type: string - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - externalDocs: - description: ExternalDocumentation allows referencing - an external resource for extended documentation. - properties: - description: - type: string - url: - type: string - type: object - id: - type: string - properties: - additionalProperties: - properties: - default: - description: default is a default value for - undefined object fields. - x-kubernetes-preserve-unknown-fields: true - deprecated: - type: boolean - description: - type: string - enum: - items: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - type: array - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - exclusiveMaximum: - type: boolean - exclusiveMinimum: - type: boolean - format: - description: |- - format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: - - - - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - - uri: an URI as parsed by Golang net/url.ParseRequestURI - - email: an email address as parsed by Golang net/mail.ParseAddress - - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - - cidr: a CIDR as parsed by Golang net.ParseCIDR - - mac: a MAC address as parsed by Golang net.ParseMAC - - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - - isbn10: an ISBN10 number string like "0321751043" - - isbn13: an ISBN13 number string like "978-0321751041" - - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - - hexcolor: an hexadecimal color code like "#FFFFFF" following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - - rgbcolor: an RGB color code like rgb like "rgb(255,255,255)" - - byte: base64 encoded binary data - - password: any kind of string - - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. - type: string - id: - type: string - maxItems: - format: int64 - type: integer - maxLength: - format: int64 - type: integer - maxProperties: - format: int64 - type: integer - maximum: - description: A Number represents a JSON number - literal. - type: string - minItems: - format: int64 - type: integer - minLength: - format: int64 - type: integer - minProperties: - format: int64 - type: integer - minimum: - description: A Number represents a JSON number - literal. - type: string - multipleOf: - description: A Number represents a JSON number - literal. - type: string - nullable: - type: boolean - pattern: - type: string - title: - type: string - type: - type: string - uniqueItems: - type: boolean - x-descriptors: - description: XDescriptors is a list of extended - properties that trigger a custom behavior - in external systems - items: - type: string - type: array - type: object - type: object - required: - items: - type: string - type: array - title: - type: string - type: - type: string - type: object - scheme: - description: the data type component scheme - type: string - type: object - description: one to many data type specifications - type: object - type: object - description: data specification types for the events consumed/produced - by the Kamelet - type: object - definition: - description: defines the formal configuration of the Kamelet - properties: - $schema: - description: JSONSchemaURL represents a schema url. - type: string - description: - type: string - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - externalDocs: - description: ExternalDocumentation allows referencing an external - resource for extended documentation. - properties: - description: - type: string - url: - type: string - type: object - id: - type: string - properties: - additionalProperties: - properties: - default: - description: default is a default value for undefined object - fields. - x-kubernetes-preserve-unknown-fields: true - deprecated: - type: boolean - description: - type: string - enum: - items: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - type: array - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - exclusiveMaximum: - type: boolean - exclusiveMinimum: - type: boolean - format: - description: |- - format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: - - - - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - - uri: an URI as parsed by Golang net/url.ParseRequestURI - - email: an email address as parsed by Golang net/mail.ParseAddress - - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - - cidr: a CIDR as parsed by Golang net.ParseCIDR - - mac: a MAC address as parsed by Golang net.ParseMAC - - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - - isbn10: an ISBN10 number string like "0321751043" - - isbn13: an ISBN13 number string like "978-0321751041" - - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - - hexcolor: an hexadecimal color code like "#FFFFFF" following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - - rgbcolor: an RGB color code like rgb like "rgb(255,255,255)" - - byte: base64 encoded binary data - - password: any kind of string - - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. - type: string - id: - type: string - maxItems: - format: int64 - type: integer - maxLength: - format: int64 - type: integer - maxProperties: - format: int64 - type: integer - maximum: - description: A Number represents a JSON number literal. - type: string - minItems: - format: int64 - type: integer - minLength: - format: int64 - type: integer - minProperties: - format: int64 - type: integer - minimum: - description: A Number represents a JSON number literal. - type: string - multipleOf: - description: A Number represents a JSON number literal. - type: string - nullable: - type: boolean - pattern: - type: string - title: - type: string - type: - type: string - uniqueItems: - type: boolean - x-descriptors: - description: XDescriptors is a list of extended properties - that trigger a custom behavior in external systems - items: - type: string - type: array - type: object - type: object - required: - items: - type: string - type: array - title: - type: string - type: - type: string - type: object - dependencies: - description: Camel dependencies needed by the Kamelet - items: - type: string - type: array - sources: - description: sources in any Camel DSL supported - items: - description: SourceSpec defines the configuration for one or more - routes to be executed in a certain Camel DSL language. - properties: - compression: - description: if the content is compressed (base64 encrypted) - type: boolean - content: - description: the source code (plain text) - type: string - contentKey: - description: the confimap key holding the source content - type: string - contentRef: - description: the confimap reference holding the source content - type: string - contentType: - description: the content type (tipically text or binary) - type: string - from-kamelet: - description: True if the spec is generated from a Kamelet - type: boolean - interceptors: - description: |- - Interceptors are optional identifiers the org.apache.camel.k.RoutesLoader - uses to pre/post process sources - Deprecated: no longer in use. - items: - type: string - type: array - language: - description: specify which is the language (Camel DSL) used - to interpret this source code - type: string - loader: - description: |- - Loader is an optional id of the org.apache.camel.k.RoutesLoader that will - interpret this source at runtime - type: string - name: - description: the name of the specification - type: string - path: - description: the path where the file is stored - type: string - property-names: - description: List of property names defined in the source (e.g. - if type is "template") - items: - type: string - type: array - rawContent: - description: the source code (binary) - format: byte - type: string - type: - description: Type defines the kind of source described by this - object - type: string - type: object - type: array - template: - description: the main source in YAML DSL - type: object - x-kubernetes-preserve-unknown-fields: true - types: - additionalProperties: - description: |- - EventTypeSpec represents a specification for an event type. - Deprecated: In favor of using DataTypeSpec. - properties: - mediaType: - description: media type as expected for HTTP media types (ie, - application/json) - type: string - schema: - description: the expected schema for the event - properties: - $schema: - description: JSONSchemaURL represents a schema url. - type: string - description: - type: string - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - externalDocs: - description: ExternalDocumentation allows referencing an - external resource for extended documentation. - properties: - description: - type: string - url: - type: string - type: object - id: - type: string - properties: - additionalProperties: - properties: - default: - description: default is a default value for undefined - object fields. - x-kubernetes-preserve-unknown-fields: true - deprecated: - type: boolean - description: - type: string - enum: - items: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - type: array - example: - description: |- - JSON represents any valid JSON value. - These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. - x-kubernetes-preserve-unknown-fields: true - exclusiveMaximum: - type: boolean - exclusiveMinimum: - type: boolean - format: - description: |- - format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats are validated: - - - - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - - uri: an URI as parsed by Golang net/url.ParseRequestURI - - email: an email address as parsed by Golang net/mail.ParseAddress - - hostname: a valid representation for an Internet host name, as defined by RFC 1034, section 3.1 [RFC1034]. - - ipv4: an IPv4 IP as parsed by Golang net.ParseIP - - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - - cidr: a CIDR as parsed by Golang net.ParseCIDR - - mac: a MAC address as parsed by Golang net.ParseMAC - - uuid: an UUID that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid3: an UUID3 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - - uuid4: an UUID4 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - uuid5: an UUID5 that allows uppercase defined by the regex (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - - isbn: an ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - - isbn10: an ISBN10 number string like "0321751043" - - isbn13: an ISBN13 number string like "978-0321751041" - - creditcard: a credit card number defined by the regex ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\\d{3})\\d{11})$ with any non digit characters mixed in - - ssn: a U.S. social security number following the regex ^\\d{3}[- ]?\\d{2}[- ]?\\d{4}$ - - hexcolor: an hexadecimal color code like "#FFFFFF" following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - - rgbcolor: an RGB color code like rgb like "rgb(255,255,255)" - - byte: base64 encoded binary data - - password: any kind of string - - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - - duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or compatible with Scala duration format - - datetime: a date time string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. - type: string - id: - type: string - maxItems: - format: int64 - type: integer - maxLength: - format: int64 - type: integer - maxProperties: - format: int64 - type: integer - maximum: - description: A Number represents a JSON number literal. - type: string - minItems: - format: int64 - type: integer - minLength: - format: int64 - type: integer - minProperties: - format: int64 - type: integer - minimum: - description: A Number represents a JSON number literal. - type: string - multipleOf: - description: A Number represents a JSON number literal. - type: string - nullable: - type: boolean - pattern: - type: string - title: - type: string - type: - type: string - uniqueItems: - type: boolean - x-descriptors: - description: XDescriptors is a list of extended properties - that trigger a custom behavior in external systems - items: - type: string - type: array - type: object - type: object - required: - items: - type: string - type: array - title: - type: string - type: - type: string - type: object - type: object - description: |- - data specification types for the events consumed/produced by the Kamelet - Deprecated: In favor of using DataTypes - type: object - type: object - status: - description: the actual status of the resource. - properties: - conditions: - description: Conditions -- - items: - description: KameletCondition describes the state of a resource - at a certain point. - properties: - lastTransitionTime: - description: Last time the condition transitioned from one status - to another. - format: date-time - type: string - lastUpdateTime: - description: The last time this condition was updated. - format: date-time - type: string - message: - description: A human-readable message indicating details about - the transition. - type: string - reason: - description: The reason for the condition's last transition. - type: string - status: - description: Status of the condition, one of True, False, Unknown. - type: string - type: - description: Type of kamelet condition. - type: string - required: - - status - - type - type: object - type: array - observedGeneration: - description: ObservedGeneration is the most recent generation observed - for this Kamelet. - format: int64 - type: integer - phase: - description: Phase -- - type: string - properties: - description: Properties -- - items: - description: KameletProperty specify the behavior of a property - in a Kamelet. - properties: - default: - description: the default value of the property (if any) - type: string - name: - description: the name of the property - type: string - type: object - type: array - type: object - type: object - served: true - storage: false - subresources: - status: {} diff --git a/pkg/resources/config/crd/kustomization.yaml b/pkg/resources/config/crd/kustomization.yaml index a04946a168..26d0269818 100644 --- a/pkg/resources/config/crd/kustomization.yaml +++ b/pkg/resources/config/crd/kustomization.yaml @@ -25,7 +25,6 @@ resources: - bases/camel.apache.org_integrationprofiles.yaml - bases/camel.apache.org_integrations.yaml - bases/camel.apache.org_kamelets.yaml -- bases/camel.apache.org_kameletbindings.yaml - bases/camel.apache.org_pipes.yaml commonLabels: diff --git a/pkg/resources/config/manifests/bases/camel-k.clusterserviceversion.yaml b/pkg/resources/config/manifests/bases/camel-k.clusterserviceversion.yaml index cdaac1c6e8..6f5d23fade 100644 --- a/pkg/resources/config/manifests/bases/camel-k.clusterserviceversion.yaml +++ b/pkg/resources/config/manifests/bases/camel-k.clusterserviceversion.yaml @@ -23,7 +23,7 @@ metadata: categories: Integration & Delivery certified: "false" containerImage: docker.io/apache/camel-k:2.6.0-SNAPSHOT - createdAt: 2024-11-05T17:48:03Z + createdAt: 2024-11-07T16:55:35Z description: Apache Camel K is a lightweight integration platform, born on Kubernetes, with serverless superpowers. operators.operatorframework.io/builder: operator-sdk-v1.16.0 @@ -77,16 +77,6 @@ spec: kind: Kamelet name: kamelets.camel.apache.org version: v1 - - description: KameletBinding is the Schema for the kameletbindings API - displayName: KameletBinding - kind: KameletBinding - name: kameletbindings.camel.apache.org - version: v1alpha1 - - description: Kamelet is the Schema for the kamelets API - displayName: Kamelet - kind: Kamelet - name: kamelets.camel.apache.org - version: v1alpha1 description: | Apache Camel K ============== diff --git a/pkg/resources/config/rbac/descoped/operator-cluster-role.yaml b/pkg/resources/config/rbac/descoped/operator-cluster-role.yaml index ac33e942eb..1c2e4bb4ae 100644 --- a/pkg/resources/config/rbac/descoped/operator-cluster-role.yaml +++ b/pkg/resources/config/rbac/descoped/operator-cluster-role.yaml @@ -32,8 +32,6 @@ rules: - integrationprofiles - integrations - pipes - # Deprecated: kameletbindings CR - - kameletbindings - kamelets verbs: - create @@ -60,9 +58,6 @@ rules: - integrations/status - pipes/status - pipes/scale - # Deprecated: kameletbindings CR - - kameletbindings/status - - kameletbindings/scale - kamelets/status verbs: - get diff --git a/pkg/resources/config/rbac/namespaced/operator-role.yaml b/pkg/resources/config/rbac/namespaced/operator-role.yaml index 391a76291c..6d6eba6b64 100644 --- a/pkg/resources/config/rbac/namespaced/operator-role.yaml +++ b/pkg/resources/config/rbac/namespaced/operator-role.yaml @@ -32,8 +32,6 @@ rules: - integrationprofiles - integrations - pipes - # Deprecated: kameletbindings CR - - kameletbindings - kamelets verbs: - create @@ -61,9 +59,6 @@ rules: - integrations/status - pipes/status - pipes/scale - # Deprecated: kameletbindings CR - - kameletbindings/status - - kameletbindings/scale - kamelets/status verbs: - get diff --git a/pkg/resources/config/rbac/openshift/descoped/operator-cluster-role-openshift.yaml b/pkg/resources/config/rbac/openshift/descoped/operator-cluster-role-openshift.yaml index d501b859c8..dad1faee0e 100644 --- a/pkg/resources/config/rbac/openshift/descoped/operator-cluster-role-openshift.yaml +++ b/pkg/resources/config/rbac/openshift/descoped/operator-cluster-role-openshift.yaml @@ -31,7 +31,6 @@ rules: - integrationprofiles/finalizers - integrations/finalizers - pipes/finalizers - - kameletbindings/finalizers verbs: - update - apiGroups: diff --git a/pkg/resources/config/rbac/openshift/namespaced/operator-role-openshift.yaml b/pkg/resources/config/rbac/openshift/namespaced/operator-role-openshift.yaml index 0d450dcea9..f6f362f37e 100644 --- a/pkg/resources/config/rbac/openshift/namespaced/operator-role-openshift.yaml +++ b/pkg/resources/config/rbac/openshift/namespaced/operator-role-openshift.yaml @@ -31,7 +31,6 @@ rules: - integrationprofiles/finalizers - integrations/finalizers - pipes/finalizers - - kameletbindings/finalizers verbs: - update - apiGroups: diff --git a/pkg/resources/config/rbac/user-cluster-role.yaml b/pkg/resources/config/rbac/user-cluster-role.yaml index c6a8c0086d..f731a0a9bc 100644 --- a/pkg/resources/config/rbac/user-cluster-role.yaml +++ b/pkg/resources/config/rbac/user-cluster-role.yaml @@ -35,8 +35,6 @@ rules: - integrationprofiles - integrations - pipes - # Deprecated: kameletbindings CR - - kameletbindings - kamelets verbs: - create @@ -59,9 +57,6 @@ rules: - integrations/status - pipes/scale - pipes/status - # Deprecated: kameletbindings CR - - kameletbindings/scale - - kameletbindings/status - kamelets/status verbs: - get diff --git a/pkg/resources/config/samples/bases/camel_v1alpha1_kamelet.yaml b/pkg/resources/config/samples/bases/camel_v1alpha1_kamelet.yaml deleted file mode 100644 index b44a4ea45f..0000000000 --- a/pkg/resources/config/samples/bases/camel_v1alpha1_kamelet.yaml +++ /dev/null @@ -1,46 +0,0 @@ -# --------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# --------------------------------------------------------------------------- - -apiVersion: camel.apache.org/v1alpha1 -kind: Kamelet -metadata: - name: example-source -spec: - definition: - description: Produces periodic events with a custom payload - properties: - message: - description: The message to generate - title: Message - type: string - period: - default: 1000 - description: The time interval between two events - title: Period - type: integer - required: - - message - title: Example Timer - template: - from: - uri: timer:tick - parameters: - period: "#property:period" - steps: - - setBody: - constant: "#property:message" - - to: kamelet:sink diff --git a/pkg/resources/config/samples/bases/camel_v1alpha1_kameletbinding.yaml b/pkg/resources/config/samples/bases/camel_v1alpha1_kameletbinding.yaml deleted file mode 100644 index 36864045a6..0000000000 --- a/pkg/resources/config/samples/bases/camel_v1alpha1_kameletbinding.yaml +++ /dev/null @@ -1,35 +0,0 @@ -# --------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# --------------------------------------------------------------------------- - -apiVersion: camel.apache.org/v1alpha1 -kind: KameletBinding -metadata: - name: timer-to-log-example -spec: - source: - ref: - apiVersion: camel.apache.org/v1alpha1 - kind: Kamelet - name: timer-source - properties: - period: 2000 - message: Hello world - sink: - ref: - apiVersion: camel.apache.org/v1alpha1 - kind: Kamelet - name: log-sink diff --git a/pkg/resources/config/samples/kustomization.yaml b/pkg/resources/config/samples/kustomization.yaml index cda69fdad6..b7fbc0c90a 100644 --- a/pkg/resources/config/samples/kustomization.yaml +++ b/pkg/resources/config/samples/kustomization.yaml @@ -29,8 +29,6 @@ resources: - bases/camel_v1_build.yaml - bases/camel_v1_kamelet.yaml - bases/camel_v1_pipe.yaml -- bases/camel_v1alpha1_kamelet.yaml -- bases/camel_v1alpha1_kameletbinding.yaml patchesStrategicMerge: - patch-integration-platform.yaml diff --git a/pkg/resources/resources_test.go b/pkg/resources/resources_test.go index 7f6cfdd7bc..aff93f741a 100644 --- a/pkg/resources/resources_test.go +++ b/pkg/resources/resources_test.go @@ -159,6 +159,5 @@ func TestCRDResources(t *testing.T) { NoErrorAndNotEmptyBytes(t, "/config/crd/bases/camel.apache.org_integrationprofiles.yaml", Resource) NoErrorAndNotEmptyBytes(t, "/config/crd/bases/camel.apache.org_integrations.yaml", Resource) NoErrorAndNotEmptyBytes(t, "/config/crd/bases/camel.apache.org_kamelets.yaml", Resource) - NoErrorAndNotEmptyBytes(t, "/config/crd/bases/camel.apache.org_kameletbindings.yaml", Resource) NoErrorAndNotEmptyBytes(t, "/config/crd/bases/camel.apache.org_pipes.yaml", Resource) } diff --git a/pkg/trait/util.go b/pkg/trait/util.go index ec1f62c6fd..45ace8e370 100644 --- a/pkg/trait/util.go +++ b/pkg/trait/util.go @@ -29,7 +29,6 @@ import ( ctrl "sigs.k8s.io/controller-runtime/pkg/client" v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1" - "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" "github.com/apache/camel-k/v2/pkg/client" "github.com/apache/camel-k/v2/pkg/util" "github.com/apache/camel-k/v2/pkg/util/camel" @@ -301,21 +300,6 @@ func PipesHaveSameTraits(c client.Client, i1 *v1.Pipe, i2 *v1.Pipe) (bool, error return Equals(c1, c2), nil } -// KameletBindingsHaveSameTraits return if traits are the same. -// Deprecated. -func KameletBindingsHaveSameTraits(c client.Client, i1 *v1alpha1.KameletBinding, i2 *v1alpha1.KameletBinding) (bool, error) { - c1, err := NewTraitsOptionsForKameletBinding(c, i1) - if err != nil { - return false, err - } - c2, err := NewTraitsOptionsForKameletBinding(c, i2) - if err != nil { - return false, err - } - - return Equals(c1, c2), nil -} - // IntegrationAndPipeSameTraits return if traits are the same. // The comparison is done for the subset of traits defines on the binding as during the trait processing, // some traits may be added to the Integration i.e. knative configuration in case of sink binding. @@ -338,30 +322,6 @@ func IntegrationAndPipeSameTraits(c client.Client, i1 *v1.Integration, i2 *v1.Pi return Equals(klbOpts, toCompare), nil } -// IntegrationAndKameletBindingSameTraits return if traits are the same. -// The comparison is done for the subset of traits defines on the binding as during the trait processing, -// some traits may be added to the Integration i.e. knative configuration in case of sink binding. -// Deprecated. -func IntegrationAndKameletBindingSameTraits(c client.Client, i1 *v1.Integration, i2 *v1alpha1.KameletBinding) (bool, error) { - itOpts, err := NewSpecTraitsOptionsForIntegration(c, i1) - if err != nil { - return false, err - } - klbOpts, err := NewTraitsOptionsForKameletBinding(c, i2) - if err != nil { - return false, err - } - - toCompare := make(Options) - for k := range klbOpts { - if v, ok := itOpts[k]; ok { - toCompare[k] = v - } - } - - return Equals(klbOpts, toCompare), nil -} - // newTraitsOptions will merge the traits annotations with the traits spec using the same format. func newTraitsOptions(c client.Client, opts Options, annotations map[string]string) (Options, error) { annotationTraits, err := ExtractAndMaybeDeleteTraits(c, annotations, false) @@ -511,24 +471,6 @@ func NewTraitsOptionsForPipe(c client.Client, pipe *v1.Pipe) (Options, error) { return newTraitsOptions(c, options, pipe.ObjectMeta.Annotations) } -// Deprecated. -func NewTraitsOptionsForKameletBinding(c client.Client, kb *v1alpha1.KameletBinding) (Options, error) { - options := Options{} - - if kb.Spec.Integration != nil { - m1, err := ToTraitMap(kb.Spec.Integration.Traits) - if err != nil { - return nil, err - } - - for k, v := range m1 { - options[k] = v - } - } - - return newTraitsOptions(c, options, kb.ObjectMeta.Annotations) -} - // HasMatchingTraits verifies if two traits options match. func HasMatchingTraits(traitMap Options, kitTraitMap Options) (bool, error) { catalog := NewCatalog(nil) diff --git a/pkg/util/bindings/api_support.go b/pkg/util/bindings/api_support.go index 8ed0970ccd..e103b0d84e 100644 --- a/pkg/util/bindings/api_support.go +++ b/pkg/util/bindings/api_support.go @@ -40,13 +40,3 @@ func (c EndpointContext) GenerateID() string { } return id } - -// GenerateID generates an identifier based on the context type and its optional position. -// Deprecated. -func (c V1alpha1EndpointContext) GenerateID() string { - id := string(c.Type) - if c.Position != nil { - id = fmt.Sprintf("%s-%d", id, *c.Position) - } - return id -} diff --git a/pkg/util/bindings/api_v1alpha1.go b/pkg/util/bindings/api_v1alpha1.go deleted file mode 100644 index 69a2d41c4b..0000000000 --- a/pkg/util/bindings/api_v1alpha1.go +++ /dev/null @@ -1,57 +0,0 @@ -/* -Licensed to the Apache Software Foundation (ASF) under one or more -contributor license agreements. See the NOTICE file distributed with -this work for additional information regarding copyright ownership. -The ASF licenses this file to You under the Apache License, Version 2.0 -(the "License"); you may not use this file except in compliance with -the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package bindings provides APIs to transform Kubernetes objects into Camel URIs equivalents -package bindings - -import ( - "context" - - v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1" - v1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" - "github.com/apache/camel-k/v2/pkg/client" -) - -// V1alpha1BindingProvider maps a Binding endpoint into Camel K resources. -// Deprecated. -type V1alpha1BindingProvider interface { - // ID returns the name of the binding provider - ID() string - // Translate does the actual mapping - Translate(ctx V1alpha1BindingContext, endpointContext V1alpha1EndpointContext, endpoint v1alpha1.Endpoint) (*Binding, error) - // Order returns the relative order of execution of the binding provider - Order() int -} - -// V1alpha1BindingContext -- -// Deprecated. -// -//nolint:containedctx -type V1alpha1BindingContext struct { - Ctx context.Context - Client client.Client - Namespace string - Profile v1.TraitProfile - Metadata map[string]string -} - -// V1alpha1EndpointContext -- -// Deprecated. -type V1alpha1EndpointContext struct { - Type v1alpha1.EndpointType - Position *int -} diff --git a/pkg/util/bindings/camel_uri.go b/pkg/util/bindings/camel_uri.go index 8dad742adf..4de126a3be 100644 --- a/pkg/util/bindings/camel_uri.go +++ b/pkg/util/bindings/camel_uri.go @@ -19,7 +19,6 @@ package bindings import ( v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1" - v1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" "github.com/apache/camel-k/v2/pkg/util/uri" ) @@ -57,44 +56,6 @@ func (k CamelURIBindingProvider) Order() int { return OrderLast } -// V1alpha1CamelURIBindingProvider --. -// Deprecated . -type V1alpha1CamelURIBindingProvider struct{} - -// ID --. -// Deprecated . -func (k V1alpha1CamelURIBindingProvider) ID() string { - return "camel-uri" -} - -// Translate --. -// Deprecated . -func (k V1alpha1CamelURIBindingProvider) Translate(ctx V1alpha1BindingContext, endpointCtx V1alpha1EndpointContext, e v1alpha1.Endpoint) (*Binding, error) { - if e.URI == nil { - // works only on uris - return nil, nil - } - - endpointURI := *e.URI - props, err := e.Properties.GetPropertyMap() - if err != nil { - return nil, err - } - endpointURI = uri.AppendParameters(endpointURI, props) - - return &Binding{ - URI: endpointURI, - }, nil -} - -// Order -- -// Deprecated . -func (k V1alpha1CamelURIBindingProvider) Order() int { - // Using it as fallback - return OrderLast -} - func init() { RegisterBindingProvider(CamelURIBindingProvider{}) - V1alpha1RegisterBindingProvider(V1alpha1CamelURIBindingProvider{}) } diff --git a/pkg/util/bindings/catalog.go b/pkg/util/bindings/catalog.go index b164d34021..d05cdb3ae4 100644 --- a/pkg/util/bindings/catalog.go +++ b/pkg/util/bindings/catalog.go @@ -23,7 +23,6 @@ import ( "sort" v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1" - "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" "github.com/apache/camel-k/v2/pkg/platform" "k8s.io/utils/ptr" ) @@ -41,21 +40,6 @@ func RegisterBindingProvider(bp BindingProvider) { }) } -// Deprecated. -var v1alpha1BindingProviders []V1alpha1BindingProvider - -// V1alpha1RegisterBindingProvider -- -// Deprecated. -func V1alpha1RegisterBindingProvider(bp V1alpha1BindingProvider) { - v1alpha1BindingProviders = append(v1alpha1BindingProviders, bp) - sort.Slice(v1alpha1BindingProviders, func(i, j int) bool { - bi := v1alpha1BindingProviders[i] - bj := v1alpha1BindingProviders[j] - return (bi.Order() < bj.Order()) || - (bi.Order() == bj.Order() && bi.ID() < bj.ID()) - }) -} - // Translate execute all chained binding providers, returning the first success or the first error. func Translate(ctx BindingContext, endpointCtx EndpointContext, endpoint v1.Endpoint) (*Binding, error) { availableBindings := make([]string, len(bindingProviders)) @@ -98,37 +82,3 @@ func validateEndpoint(ctx BindingContext, e v1.Endpoint) error { } return nil } - -// TranslateV1alpha1 execute all chained binding providers, returning the first success or the first error. -// Deprecated. -func TranslateV1alpha1(ctx V1alpha1BindingContext, endpointCtx V1alpha1EndpointContext, endpoint v1alpha1.Endpoint) (*Binding, error) { - if err := validateEndpointV1alpha1(ctx, endpoint); err != nil { - return nil, err - } - - for _, bp := range v1alpha1BindingProviders { - b, err := bp.Translate(ctx, endpointCtx, endpoint) - if b != nil || err != nil { - return b, err - } - } - return nil, nil -} - -// Deprecated. -func validateEndpointV1alpha1(ctx V1alpha1BindingContext, e v1alpha1.Endpoint) error { - if e.Ref == nil && e.URI == nil { - return errors.New("no ref or URI specified in endpoint") - } else if e.Ref != nil && e.URI != nil { - return errors.New("cannot use both ref and URI to specify an endpoint: only one of them should be used") - } - if e.Ref != nil && e.Ref.Namespace != "" && e.Ref.Namespace != ctx.Namespace { - // referencing default Kamelets in operator namespace is allowed - if e.Ref.Kind == v1.KameletKind && e.Ref.Namespace == platform.GetOperatorNamespace() { - return nil - } - - return errors.New("cross-namespace references are not allowed in KameletBinding") - } - return nil -} diff --git a/pkg/util/bindings/kamelet.go b/pkg/util/bindings/kamelet.go index d1001c87ed..3b304debc6 100644 --- a/pkg/util/bindings/kamelet.go +++ b/pkg/util/bindings/kamelet.go @@ -23,7 +23,6 @@ import ( "strings" v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1" - v1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" "k8s.io/apimachinery/pkg/runtime/schema" ) @@ -203,143 +202,6 @@ func (k V1alpha1BindingConverter) ID() string { return "kamelet" } -// Translate -- . -// Deprecated. -func (k V1alpha1BindingConverter) Translate(ctx V1alpha1BindingContext, endpointCtx V1alpha1EndpointContext, e v1alpha1.Endpoint) (*Binding, error) { - if e.Ref == nil { - // works only on refs - return nil, nil - } - gv, err := schema.ParseGroupVersion(e.Ref.APIVersion) - if err != nil { - return nil, err - } - // it translates only Kamelet refs - if e.Ref.Kind != v1.KameletKind || gv.Group != v1.SchemeGroupVersion.Group { - return nil, nil - } - - kameletName := url.PathEscape(e.Ref.Name) - - props, err := e.Properties.GetPropertyMap() - if err != nil { - return nil, err - } - - id, idPresent := props[v1.KameletIDProperty] - if idPresent { - delete(props, v1.KameletIDProperty) - } else { - id = endpointCtx.GenerateID() - } - - binding := Binding{} - binding.ApplicationProperties = make(map[string]string) - for k, v := range props { - propKey := fmt.Sprintf("camel.kamelet.%s.%s.%s", kameletName, id, k) - binding.ApplicationProperties[propKey] = v - } - - dataTypeActionKamelet := ctx.Metadata[v1.KameletDataTypeLabel] - if dataTypeActionKamelet == "" { - dataTypeActionKamelet = defaultDataTypeActionKamelet - } - - switch endpointCtx.Type { - case v1alpha1.EndpointTypeAction: - steps := make([]map[string]interface{}, 0) - - if in, applicationProperties := k.DataTypeStep(e, id, v1alpha1.TypeSlotIn, dataTypeActionKamelet); in != nil { - steps = append(steps, in) - for k, v := range applicationProperties { - binding.ApplicationProperties[k] = v - } - } - - steps = append(steps, map[string]interface{}{ - "kamelet": map[string]interface{}{ - "name": fmt.Sprintf("%s/%s", kameletName, url.PathEscape(id)), - }, - }) - - if out, applicationProperties := k.DataTypeStep(e, id, v1alpha1.TypeSlotOut, dataTypeActionKamelet); out != nil { - steps = append(steps, out) - for k, v := range applicationProperties { - binding.ApplicationProperties[k] = v - } - } - - if len(steps) > 1 { - binding.Step = map[string]interface{}{ - "pipeline": map[string]interface{}{ - "id": fmt.Sprintf("%s-pipeline", id), - "steps": steps, - }, - } - } else if len(steps) == 1 { - binding.Step = steps[0] - } - case v1alpha1.EndpointTypeSource: - if out, applicationProperties := k.DataTypeStep(e, id, v1alpha1.TypeSlotOut, dataTypeActionKamelet); out != nil { - binding.Step = out - for k, v := range applicationProperties { - binding.ApplicationProperties[k] = v - } - } - - binding.URI = fmt.Sprintf("kamelet:%s/%s", kameletName, url.PathEscape(id)) - case v1alpha1.EndpointTypeSink: - if in, applicationProperties := k.DataTypeStep(e, id, v1alpha1.TypeSlotIn, dataTypeActionKamelet); in != nil { - binding.Step = in - for k, v := range applicationProperties { - binding.ApplicationProperties[k] = v - } - } - - binding.URI = fmt.Sprintf("kamelet:%s/%s", kameletName, url.PathEscape(id)) - default: - binding.URI = fmt.Sprintf("kamelet:%s/%s", kameletName, url.PathEscape(id)) - } - - return &binding, nil -} - -// DataTypeStep -- . -// Deprecated. -func (k V1alpha1BindingConverter) DataTypeStep(e v1alpha1.Endpoint, id string, typeSlot v1alpha1.TypeSlot, dataTypeActionKamelet string) (map[string]interface{}, map[string]string) { - if e.DataTypes == nil { - return nil, nil - } - - if inDataType, ok := e.DataTypes[typeSlot]; ok { - scheme := "camel" - if inDataType.Scheme != "" { - scheme = inDataType.Scheme - } - - props := make(map[string]string, 2) - props[fmt.Sprintf("camel.kamelet.%s.%s-%s.scheme", dataTypeActionKamelet, id, typeSlot)] = scheme - props[fmt.Sprintf("camel.kamelet.%s.%s-%s.format", dataTypeActionKamelet, id, typeSlot)] = inDataType.Format - - stepDsl := map[string]interface{}{ - "kamelet": map[string]interface{}{ - "name": fmt.Sprintf("%s/%s-%s", dataTypeActionKamelet, url.PathEscape(id), typeSlot), - }, - } - - return stepDsl, props - } - - return nil, nil -} - -// Order -- . -// Deprecated. -func (k V1alpha1BindingConverter) Order() int { - return OrderStandard -} - func init() { RegisterBindingProvider(BindingConverter{}) - V1alpha1RegisterBindingProvider(V1alpha1BindingConverter{}) } diff --git a/pkg/util/bindings/knative_ref.go b/pkg/util/bindings/knative_ref.go index cfd48fa0c5..36e007db0e 100644 --- a/pkg/util/bindings/knative_ref.go +++ b/pkg/util/bindings/knative_ref.go @@ -18,14 +18,12 @@ limitations under the License. package bindings import ( - "errors" "fmt" "net/url" v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1" knativeapis "github.com/apache/camel-k/v2/pkg/apis/camel/v1/knative" "github.com/apache/camel-k/v2/pkg/apis/camel/v1/trait" - "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" "github.com/apache/camel-k/v2/pkg/util/property" corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/runtime/schema" @@ -180,86 +178,6 @@ func (k V1alpha1KnativeRefBindingProvider) ID() string { return "knative-ref" } -// Translate --. -// Deprecated. -func (k V1alpha1KnativeRefBindingProvider) Translate(ctx V1alpha1BindingContext, endpointCtx V1alpha1EndpointContext, e v1alpha1.Endpoint) (*Binding, error) { - if e.Ref == nil { - // works only on refs - return nil, nil - } - - if ok, err := isKnownKnativeResource(e.Ref); !ok { - // only operates on known Knative endpoint resources (e.g. channels, brokers) - return nil, err - } - - if refInstalled, _ := knative.IsRefKindInstalled(ctx.Client, *e.Ref); !refInstalled { - // works only when Knative specific API Kind is installed - return nil, fmt.Errorf("integration referencing Knative endpoint '%s' that cannot run, "+ - "because Knative is not installed on the cluster", e.Ref.Name) - } - - serviceType, err := knative.GetServiceType(*e.Ref) - if err != nil { - return nil, err - } - - if serviceType == nil { - endpointType := knativeapis.CamelServiceTypeEndpoint - serviceType = &endpointType - } - - props, err := e.Properties.GetPropertyMap() - if err != nil { - return nil, err - } - if props == nil { - props = make(map[string]string) - } - if props["apiVersion"] == "" { - props["apiVersion"] = e.Ref.APIVersion - } - if props["kind"] == "" { - props["kind"] = e.Ref.Kind - } - - var serviceURI string - - //nolint:nestif - if *serviceType == knativeapis.CamelServiceTypeEvent { - if props["name"] == "" { - props["name"] = e.Ref.Name - } - if eventType, ok := props["type"]; ok { - // consume prop - delete(props, "type") - serviceURI = fmt.Sprintf("knative:%s/%s", *serviceType, eventType) - } else { - if endpointCtx.Type == v1alpha1.EndpointTypeSink || endpointCtx.Type == v1alpha1.EndpointTypeAction { - // Allowing no event type, but it can fail. See https://github.com/apache/camel-k/v2-runtime/issues/536 - serviceURI = fmt.Sprintf("knative:%s", *serviceType) - } else { - return nil, errors.New(`property "type" must be provided when reading from the Broker`) - } - } - } else { - serviceURI = fmt.Sprintf("knative:%s/%s", *serviceType, url.PathEscape(e.Ref.Name)) - } - - serviceURI = uri.AppendParameters(serviceURI, props) - return &Binding{ - URI: serviceURI, - }, nil -} - -// Order --. -// Deprecated. -func (k V1alpha1KnativeRefBindingProvider) Order() int { - // Executes as last, as it can be used as fallback for all unknown object references - return OrderLast -} - func init() { RegisterBindingProvider(KnativeRefBindingProvider{}) - V1alpha1RegisterBindingProvider(V1alpha1KnativeRefBindingProvider{}) } diff --git a/pkg/util/bindings/knative_uri.go b/pkg/util/bindings/knative_uri.go index 2727c033af..36a3afff3b 100644 --- a/pkg/util/bindings/knative_uri.go +++ b/pkg/util/bindings/knative_uri.go @@ -24,7 +24,6 @@ import ( v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1" knativeapis "github.com/apache/camel-k/v2/pkg/apis/camel/v1/knative" traitv1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1/trait" - v1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" "k8s.io/utils/ptr" "github.com/apache/camel-k/v2/pkg/util/uri" @@ -39,8 +38,6 @@ func (k KnativeURIBindingProvider) ID() string { } // Translate --. -// -//nolint:dupl func (k KnativeURIBindingProvider) Translate(ctx BindingContext, endpointCtx EndpointContext, e v1.Endpoint) (*Binding, error) { if e.URI == nil { // works only on uris @@ -100,81 +97,6 @@ func (k KnativeURIBindingProvider) Order() int { return OrderStandard } -// V1alpha1KnativeURIBindingProvider converts a HTTP/HTTPS URI into a Camel Knative endpoint (to call it via CloudEvents). -type V1alpha1KnativeURIBindingProvider struct{} - -// ID --. -// Deprecated. -func (k V1alpha1KnativeURIBindingProvider) ID() string { - return "knative-uri" -} - -// Translate --. -// Deprecated. -// -//nolint:dupl -func (k V1alpha1KnativeURIBindingProvider) Translate(ctx V1alpha1BindingContext, endpointCtx V1alpha1EndpointContext, e v1alpha1.Endpoint) (*Binding, error) { - if e.URI == nil { - // works only on uris - return nil, nil - } - if ctx.Profile != v1.TraitProfileKnative { - // use cloudevent binding only in Knative trait profile - return nil, nil - } - if !strings.HasPrefix(*e.URI, "http:") && !strings.HasPrefix(*e.URI, "https:") { - // only translates http/https uri to Knative calls - return nil, nil - } - if endpointCtx.Type == v1alpha1.EndpointTypeSource { - // HTTP/HTTPS uri are translated to Knative endpoints only when used as sinks - return nil, nil - } - - originalURI, err := url.Parse(*e.URI) - if err != nil { - return nil, err - } - env := knativeapis.NewCamelEnvironment() - svc, err := knativeapis.BuildCamelServiceDefinition("sink", - knativeapis.CamelEndpointKindSink, - knativeapis.CamelServiceTypeEndpoint, - *originalURI, "", "") - if err != nil { - return nil, err - } - env.Services = append(env.Services, svc) - config, err := env.Serialize() - if err != nil { - return nil, err - } - - // Rewrite URI to match the service definition - serviceURI := "knative:endpoint/sink" - props, err := e.Properties.GetPropertyMap() - if err != nil { - return nil, err - } - serviceURI = uri.AppendParameters(serviceURI, props) - - return &Binding{ - URI: serviceURI, - Traits: v1.Traits{ - Knative: &traitv1.KnativeTrait{ - Configuration: config, - SinkBinding: ptr.To(false), - }, - }, - }, nil -} - -// Order --. -// Deprecated. -func (k V1alpha1KnativeURIBindingProvider) Order() int { - return OrderStandard -} - func init() { RegisterBindingProvider(KnativeURIBindingProvider{}) - V1alpha1RegisterBindingProvider(V1alpha1KnativeURIBindingProvider{}) } diff --git a/pkg/util/bindings/strimzi.go b/pkg/util/bindings/strimzi.go index 6def99c3a8..0cb61ebf0a 100644 --- a/pkg/util/bindings/strimzi.go +++ b/pkg/util/bindings/strimzi.go @@ -21,7 +21,6 @@ import ( "fmt" camelv1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1" - camelv1alpha1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" "github.com/apache/camel-k/v2/pkg/apis/duck/strimzi/v1beta2" "github.com/apache/camel-k/v2/pkg/client/duck/strimzi/clientset/internalclientset" "github.com/apache/camel-k/v2/pkg/util/uri" @@ -32,7 +31,6 @@ import ( func init() { RegisterBindingProvider(StrimziBindingProvider{}) - V1alpha1RegisterBindingProvider(V1alpha1StrimziBindingProvider{}) } // camelKafka represent the configuration required by Camel Kafka component. @@ -220,113 +218,3 @@ func (s StrimziBindingProvider) lookupTopic(ctx BindingContext, endpoint camelv1 func (s StrimziBindingProvider) Order() int { return OrderStandard } - -// V1alpha1BindingProvider allows to connect to a Kafka topic via Binding. -// Deprecated. -type V1alpha1StrimziBindingProvider struct { - Client internalclientset.Interface -} - -// ID --. -// Deprecated. -func (s V1alpha1StrimziBindingProvider) ID() string { - return "strimzi" -} - -// Translate --. -// Deprecated. -func (s V1alpha1StrimziBindingProvider) Translate(ctx V1alpha1BindingContext, _ V1alpha1EndpointContext, endpoint camelv1alpha1.Endpoint) (*Binding, error) { - if endpoint.Ref == nil { - // React only on refs - return nil, nil - } - gv, err := schema.ParseGroupVersion(endpoint.Ref.APIVersion) - if err != nil { - return nil, err - } - - if gv.Group != v1beta2.StrimziGroup || endpoint.Ref.Kind != v1beta2.StrimziKindTopic { - // Only operates on Strimzi Topics - return nil, nil - } - - props, err := endpoint.Properties.GetPropertyMap() - if err != nil { - return nil, err - } - if props == nil { - props = make(map[string]string) - } - - if props["brokers"] == "" { - bootstrapServers, err := s.lookupBootstrapServers(ctx, endpoint) - if err != nil { - return nil, err - } - - props["brokers"] = bootstrapServers - } - - kafkaURI := fmt.Sprintf("kafka:%s", endpoint.Ref.Name) - kafkaURI = uri.AppendParameters(kafkaURI, props) - - return &Binding{ - URI: kafkaURI, - }, nil -} - -// getBootstrapServers --. -// Deprecated. -func (s V1alpha1StrimziBindingProvider) getBootstrapServers(ctx V1alpha1BindingContext, clusterName string) (string, error) { - cluster, err := s.Client.KafkaV1beta2().Kafkas(ctx.Namespace).Get(ctx.Ctx, clusterName, v1.GetOptions{}) - if err != nil { - return "", err - } - - for _, l := range cluster.Status.Listeners { - if l.Name == v1beta2.StrimziListenerNamePlain { - if l.BootstrapServers == "" { - return "", fmt.Errorf("cluster %q has no bootstrap servers in %q listener", clusterName, v1beta2.StrimziListenerNamePlain) - } - - return l.BootstrapServers, nil - } - } - - return "", fmt.Errorf("cluster %q has no listeners of type %q", clusterName, v1beta2.StrimziListenerNamePlain) -} - -// Order --. -// Deprecated. -func (s V1alpha1StrimziBindingProvider) Order() int { - return OrderStandard -} - -func (s V1alpha1StrimziBindingProvider) lookupBootstrapServers(ctx V1alpha1BindingContext, endpoint camelv1alpha1.Endpoint) (string, error) { - // build the client if needed - if s.Client == nil { - kafkaClient, err := internalclientset.NewForConfig(ctx.Client.GetConfig()) - if err != nil { - return "", err - } - s.Client = kafkaClient - } - - // look them up - topic, err := s.Client.KafkaV1beta2().KafkaTopics(ctx.Namespace).Get(ctx.Ctx, endpoint.Ref.Name, v1.GetOptions{}) - if err != nil { - return "", err - } - - clusterName := topic.Labels[v1beta2.StrimziKafkaClusterLabel] - if clusterName == "" { - return "", fmt.Errorf("no %q label defined on topic %s", v1beta2.StrimziKafkaClusterLabel, endpoint.Ref.Name) - } - - bootstrapServers, err := s.getBootstrapServers(ctx, clusterName) - if err != nil { - return "", err - } - - return bootstrapServers, nil -} diff --git a/pkg/util/log/log.go b/pkg/util/log/log.go index c1eb490961..0c54d43df4 100644 --- a/pkg/util/log/log.go +++ b/pkg/util/log/log.go @@ -21,7 +21,6 @@ import ( "fmt" v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1" - "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" "github.com/go-logr/logr" logf "sigs.k8s.io/controller-runtime/pkg/log" "sigs.k8s.io/controller-runtime/pkg/log/zap" @@ -165,17 +164,6 @@ func (l Logger) ForPipe(target *v1.Pipe) Logger { ) } -// ForKameletBinding --. -// Deprecated: use ForPipe instead. -func (l Logger) ForKameletBinding(target *v1alpha1.KameletBinding) Logger { - return l.WithValues( - "api-version", target.APIVersion, - "kind", target.Kind, - "ns", target.Namespace, - "name", target.Name, - ) -} - // ForCatalog --. func (l Logger) ForCatalog(target *v1.CamelCatalog) Logger { return l.WithValues( diff --git a/pkg/util/test/client.go b/pkg/util/test/client.go index 2dbdbb2469..a608fef360 100644 --- a/pkg/util/test/client.go +++ b/pkg/util/test/client.go @@ -27,7 +27,6 @@ import ( "github.com/apache/camel-k/v2/pkg/client" fakecamelclientset "github.com/apache/camel-k/v2/pkg/client/camel/clientset/versioned/fake" camelv1 "github.com/apache/camel-k/v2/pkg/client/camel/clientset/versioned/typed/camel/v1" - camelv1alpha1 "github.com/apache/camel-k/v2/pkg/client/camel/clientset/versioned/typed/camel/v1alpha1" "github.com/apache/camel-k/v2/pkg/util" autoscalingv1 "k8s.io/api/autoscaling/v1" corev1 "k8s.io/api/core/v1" @@ -168,10 +167,6 @@ func (c *FakeClient) CamelV1() camelv1.CamelV1Interface { return c.camel.CamelV1() } -func (c *FakeClient) CamelV1alpha1() camelv1alpha1.CamelV1alpha1Interface { - return c.camel.CamelV1alpha1() -} - // GetScheme ---. func (c *FakeClient) GetScheme() *runtime.Scheme { return clientscheme.Scheme diff --git a/script/Makefile b/script/Makefile index e2d42a74ff..66a0840503 100644 --- a/script/Makefile +++ b/script/Makefile @@ -597,10 +597,8 @@ endif .PHONY: $(BUNDLE_CAMEL_APIS) pre-bundle bundle bundle-build # - Have to copy pkg/apis since it is a module in its own right -# - The dependency of v1alpha1 api on v1 results in duplication -# of the v1 schema in those CRDs so need to split them up # - No way to add a licence header to the CRD other then post-script -BUNDLE_CAMEL_APIS = v1 v1alpha1 +BUNDLE_CAMEL_APIS = v1 $(BUNDLE_CAMEL_APIS): operator-sdk @# Clean up api directory, copy over fresh version diff --git a/script/gen_client.sh b/script/gen_client.sh index 3950646a31..7070e711df 100755 --- a/script/gen_client.sh +++ b/script/gen_client.sh @@ -25,13 +25,13 @@ cd $location/../pkg/client/camel echo "Generating Go client code..." $(go env GOPATH)/bin/applyconfiguration-gen \ - --input-dirs=github.com/apache/camel-k/v2/pkg/apis/camel/v1,github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1 \ + --input-dirs=github.com/apache/camel-k/v2/pkg/apis/camel/v1 \ --go-header-file=../../../script/headers/default.txt \ --output-base=. \ --output-package=github.com/apache/camel-k/v2/pkg/client/camel/applyconfiguration $(go env GOPATH)/bin/client-gen \ - --input=camel/v1,camel/v1alpha1 \ + --input=camel/v1 \ --go-header-file=../../../script/headers/default.txt \ --clientset-name "versioned" \ --input-base=github.com/apache/camel-k/v2/pkg/apis \ @@ -47,7 +47,7 @@ $(go env GOPATH)/bin/client-gen \ --output-package=github.com/apache/camel-k/v2/pkg/client/duck/strimzi/clientset $(go env GOPATH)/bin/lister-gen \ - --input-dirs=github.com/apache/camel-k/v2/pkg/apis/camel/v1,github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1 \ + --input-dirs=github.com/apache/camel-k/v2/pkg/apis/camel/v1 \ --go-header-file=../../../script/headers/default.txt \ --output-base=. \ --output-package=github.com/apache/camel-k/v2/pkg/client/camel/listers @@ -55,7 +55,7 @@ $(go env GOPATH)/bin/lister-gen \ $(go env GOPATH)/bin/informer-gen \ --versioned-clientset-package=github.com/apache/camel-k/v2/pkg/client/camel/clientset/versioned \ --listers-package=github.com/apache/camel-k/v2/pkg/client/camel/listers \ - --input-dirs=github.com/apache/camel-k/v2/pkg/apis/camel/v1,github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1 \ + --input-dirs=github.com/apache/camel-k/v2/pkg/apis/camel/v1 \ --go-header-file=../../../script/headers/default.txt \ --output-base=. \ --output-package=github.com/apache/camel-k/v2/pkg/client/camel/informers diff --git a/script/gen_crd.sh b/script/gen_crd.sh index 212b57b83c..59f5b51e9d 100755 --- a/script/gen_crd.sh +++ b/script/gen_crd.sh @@ -69,5 +69,4 @@ deploy_crd integration-kit integrationkits deploy_crd integration-platform integrationplatforms deploy_crd integration-profile integrationprofiles deploy_crd kamelet kamelets -deploy_crd kamelet-binding kameletbindings deploy_crd pipe pipes diff --git a/script/gen_crd/gen_crd_api.sh b/script/gen_crd/gen_crd_api.sh index 5bbe78e36e..bd009543a9 100755 --- a/script/gen_crd/gen_crd_api.sh +++ b/script/gen_crd/gen_crd_api.sh @@ -38,13 +38,4 @@ go run github.com/tadayosi/gen-crd-api-reference-docs@v0.4.0-camel-k-2 \ -api-dir "github.com/apache/camel-k/v2/pkg/apis/camel/v1" \ -out-file $crd_file_camel -# the v1alpha1 kamelet api is deprecated and will stay here until -# the new Pipe api is mature -#go run /Users/david/projects/camel/gen-crd-api-reference-docs/main.go \ -go run github.com/tadayosi/gen-crd-api-reference-docs@v0.4.0-camel-k-2 \ - -config $location/gen-kamelets-crd-api-config.json \ - -template-dir $location/template \ - -api-dir "github.com/apache/camel-k/v2/pkg/apis/camel/v1alpha1" \ - -out-file $crd_file_kamelets - echo "Generating CRD API documentation... Done." diff --git a/script/prepare-operators.sh b/script/prepare-operators.sh index 3b9397d6ab..e3a1983dbc 100755 --- a/script/prepare-operators.sh +++ b/script/prepare-operators.sh @@ -41,7 +41,6 @@ cp ./manifests/camel.apache.org_integrationplatforms.yaml k8s-operatorhub/$1/man cp ./manifests/camel.apache.org_integrationprofiles.yaml k8s-operatorhub/$1/manifests/integrationprofiles.camel.apache.org.crd.yaml cp ./manifests/camel.apache.org_integrations.yaml k8s-operatorhub/$1/manifests/integrations.camel.apache.org.crd.yaml cp ./manifests/camel.apache.org_kamelets.yaml k8s-operatorhub/$1/manifests/kamelets.camel.apache.org.crd.yaml -cp ./manifests/camel.apache.org_kameletbindings.yaml k8s-operatorhub/$1/manifests/kameletbindings.camel.apache.org.crd.yaml cp ./manifests/camel.apache.org_pipes.yaml k8s-operatorhub/$1/manifests/pipes.camel.apache.org.crd.yaml cp ./manifests/camel-k.clusterserviceversion.yaml k8s-operatorhub/$1/manifests/camel-k.v$1.clusterserviceversion.yaml cp ./metadata/annotations.yaml k8s-operatorhub/$1/metadata/annotations.yaml @@ -54,7 +53,6 @@ cp ./manifests/camel.apache.org_integrationplatforms.yaml openshift-ecosystem/$1 cp ./manifests/camel.apache.org_integrationprofiles.yaml openshift-ecosystem/$1/manifests/integrationprofiles.camel.apache.org.crd.yaml cp ./manifests/camel.apache.org_integrations.yaml openshift-ecosystem/$1/manifests/integrations.camel.apache.org.crd.yaml cp ./manifests/camel.apache.org_kamelets.yaml openshift-ecosystem/$1/manifests/kamelets.camel.apache.org.crd.yaml -cp ./manifests/camel.apache.org_kameletbindings.yaml openshift-ecosystem/$1/manifests/kameletbindings.camel.apache.org.crd.yaml cp ./manifests/camel.apache.org_pipes.yaml openshift-ecosystem/$1/manifests/pipes.camel.apache.org.crd.yaml cp ./manifests/camel-k.clusterserviceversion.yaml openshift-ecosystem/$1/manifests/camel-k.v$1.clusterserviceversion.yaml cp ./metadata/annotations.yaml openshift-ecosystem/$1/metadata/annotations.yaml