mirror of
https://github.com/arangodb/kube-arangodb.git
synced 2024-12-14 11:57:37 +00:00
[Feature] [ML] Unify Integration Sidecar (#1663)
This commit is contained in:
parent
21dde23586
commit
34acb21f7b
18 changed files with 1541 additions and 796 deletions
|
@ -14,6 +14,7 @@
|
|||
- (Maintenance) Update Go to 1.22.3
|
||||
- (Feature) (Analytics) GAE Integration
|
||||
- (Feature) (Analytics) Enable TLS and Service
|
||||
- (Feature) (ML) Unify Integration Sidecar
|
||||
|
||||
## [1.2.40](https://github.com/arangodb/kube-arangodb/tree/1.2.40) (2024-04-10)
|
||||
- (Feature) Add Core fields to the Scheduler Container Spec
|
||||
|
|
|
@ -762,6 +762,198 @@ might be configured in the container image.
|
|||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.args
|
||||
|
||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/core.go#L50)</sup>
|
||||
|
||||
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.
|
||||
|
||||
Links:
|
||||
* [Kubernetes Docs](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell)
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.command
|
||||
|
||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/core.go#L40)</sup>
|
||||
|
||||
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.
|
||||
|
||||
Links:
|
||||
* [Kubernetes Docs](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell)
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.controllerListenPort
|
||||
|
||||
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/integration.go#L36)</sup>
|
||||
|
||||
ControllerListenPort defines on which port the sidecar container will be listening for controller requests
|
||||
|
||||
Default Value: `9202`
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.env
|
||||
|
||||
Type: `core.EnvVar` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/environments.go#L36)</sup>
|
||||
|
||||
Env keeps the information about environment variables provided to the container
|
||||
|
||||
Links:
|
||||
* [Kubernetes Docs](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#envvar-v1-core)
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.envFrom
|
||||
|
||||
Type: `core.EnvFromSource` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/environments.go#L41)</sup>
|
||||
|
||||
EnvFrom keeps the information about environment variable sources provided to the container
|
||||
|
||||
Links:
|
||||
* [Kubernetes Docs](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#envfromsource-v1-core)
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.image
|
||||
|
||||
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/image.go#L35)</sup>
|
||||
|
||||
Image define image details
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.imagePullPolicy
|
||||
|
||||
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/image.go#L39)</sup>
|
||||
|
||||
ImagePullPolicy define Image pull policy
|
||||
|
||||
Default Value: `IfNotPresent`
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.lifecycle
|
||||
|
||||
Type: `core.Lifecycle` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/lifecycle.go#L35)</sup>
|
||||
|
||||
Lifecycle keeps actions that the management system should take in response to container lifecycle events.
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.listenPort
|
||||
|
||||
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/integration.go#L32)</sup>
|
||||
|
||||
ListenPort defines on which port the sidecar container will be listening for connections
|
||||
|
||||
Default Value: `9201`
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.livenessProbe
|
||||
|
||||
Type: `core.Probe` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/probes.go#L37)</sup>
|
||||
|
||||
LivenessProbe keeps configuration of periodic probe of container liveness.
|
||||
Container will be restarted if the probe fails.
|
||||
|
||||
Links:
|
||||
* [Kubernetes docs](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes)
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.ports
|
||||
|
||||
Type: `[]core.ContainerPort` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/networking.go#L39)</sup>
|
||||
|
||||
Ports contains 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.
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.readinessProbe
|
||||
|
||||
Type: `core.Probe` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/probes.go#L42)</sup>
|
||||
|
||||
ReadinessProbe keeps configuration of periodic probe of container service readiness.
|
||||
Container will be removed from service endpoints if the probe fails.
|
||||
|
||||
Links:
|
||||
* [Kubernetes docs](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes)
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.resources
|
||||
|
||||
Type: `core.ResourceRequirements` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/resources.go#L37)</sup>
|
||||
|
||||
Resources holds resource requests & limits for container
|
||||
|
||||
Links:
|
||||
* [Documentation of core.ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#resourcerequirements-v1-core)
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.securityContext
|
||||
|
||||
Type: `core.SecurityContext` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/security.go#L35)</sup>
|
||||
|
||||
SecurityContext holds container-level security attributes and common container settings.
|
||||
|
||||
Links:
|
||||
* [Kubernetes docs](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/)
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.startupProbe
|
||||
|
||||
Type: `core.Probe` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/probes.go#L50)</sup>
|
||||
|
||||
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.
|
||||
|
||||
Links:
|
||||
* [Kubernetes docs](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes)
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.volumeMounts
|
||||
|
||||
Type: `[]core.VolumeMount` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/volume_mounts.go#L35)</sup>
|
||||
|
||||
VolumeMounts keeps list of pod volumes to mount into the container's filesystem.
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.workingDir
|
||||
|
||||
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/core.go#L55)</sup>
|
||||
|
||||
Container's working directory.
|
||||
If not specified, the container runtime's default will be used, which
|
||||
might be configured in the container image.
|
||||
|
||||
***
|
||||
|
||||
### .spec.jobsTemplates.featurization.cpu.affinity
|
||||
|
||||
Type: `core.Affinity` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/pod/resources/scheduling.go#L44)</sup>
|
||||
|
|
|
@ -118,198 +118,6 @@ BucketPath specifies the path within the bucket
|
|||
|
||||
Default Value: `/`
|
||||
|
||||
***
|
||||
|
||||
### .spec.mode.sidecar.args
|
||||
|
||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/core.go#L50)</sup>
|
||||
|
||||
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.
|
||||
|
||||
Links:
|
||||
* [Kubernetes Docs](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell)
|
||||
|
||||
***
|
||||
|
||||
### .spec.mode.sidecar.command
|
||||
|
||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/core.go#L40)</sup>
|
||||
|
||||
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.
|
||||
|
||||
Links:
|
||||
* [Kubernetes Docs](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell)
|
||||
|
||||
***
|
||||
|
||||
### .spec.mode.sidecar.controllerListenPort
|
||||
|
||||
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/ml/v1beta1/storage_spec_mode_sidecar.go#L36)</sup>
|
||||
|
||||
ControllerListenPort defines on which port the sidecar container will be listening for controller requests
|
||||
|
||||
Default Value: `9202`
|
||||
|
||||
***
|
||||
|
||||
### .spec.mode.sidecar.env
|
||||
|
||||
Type: `core.EnvVar` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/environments.go#L36)</sup>
|
||||
|
||||
Env keeps the information about environment variables provided to the container
|
||||
|
||||
Links:
|
||||
* [Kubernetes Docs](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#envvar-v1-core)
|
||||
|
||||
***
|
||||
|
||||
### .spec.mode.sidecar.envFrom
|
||||
|
||||
Type: `core.EnvFromSource` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/environments.go#L41)</sup>
|
||||
|
||||
EnvFrom keeps the information about environment variable sources provided to the container
|
||||
|
||||
Links:
|
||||
* [Kubernetes Docs](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#envfromsource-v1-core)
|
||||
|
||||
***
|
||||
|
||||
### .spec.mode.sidecar.image
|
||||
|
||||
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/image.go#L35)</sup>
|
||||
|
||||
Image define image details
|
||||
|
||||
***
|
||||
|
||||
### .spec.mode.sidecar.imagePullPolicy
|
||||
|
||||
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/image.go#L39)</sup>
|
||||
|
||||
ImagePullPolicy define Image pull policy
|
||||
|
||||
Default Value: `IfNotPresent`
|
||||
|
||||
***
|
||||
|
||||
### .spec.mode.sidecar.lifecycle
|
||||
|
||||
Type: `core.Lifecycle` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/lifecycle.go#L35)</sup>
|
||||
|
||||
Lifecycle keeps actions that the management system should take in response to container lifecycle events.
|
||||
|
||||
***
|
||||
|
||||
### .spec.mode.sidecar.listenPort
|
||||
|
||||
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/ml/v1beta1/storage_spec_mode_sidecar.go#L32)</sup>
|
||||
|
||||
ListenPort defines on which port the sidecar container will be listening for connections
|
||||
|
||||
Default Value: `9201`
|
||||
|
||||
***
|
||||
|
||||
### .spec.mode.sidecar.livenessProbe
|
||||
|
||||
Type: `core.Probe` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/probes.go#L37)</sup>
|
||||
|
||||
LivenessProbe keeps configuration of periodic probe of container liveness.
|
||||
Container will be restarted if the probe fails.
|
||||
|
||||
Links:
|
||||
* [Kubernetes docs](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes)
|
||||
|
||||
***
|
||||
|
||||
### .spec.mode.sidecar.ports
|
||||
|
||||
Type: `[]core.ContainerPort` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/networking.go#L39)</sup>
|
||||
|
||||
Ports contains 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.
|
||||
|
||||
***
|
||||
|
||||
### .spec.mode.sidecar.readinessProbe
|
||||
|
||||
Type: `core.Probe` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/probes.go#L42)</sup>
|
||||
|
||||
ReadinessProbe keeps configuration of periodic probe of container service readiness.
|
||||
Container will be removed from service endpoints if the probe fails.
|
||||
|
||||
Links:
|
||||
* [Kubernetes docs](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes)
|
||||
|
||||
***
|
||||
|
||||
### .spec.mode.sidecar.resources
|
||||
|
||||
Type: `core.ResourceRequirements` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/resources.go#L37)</sup>
|
||||
|
||||
Resources holds resource requests & limits for container
|
||||
|
||||
Links:
|
||||
* [Documentation of core.ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#resourcerequirements-v1-core)
|
||||
|
||||
***
|
||||
|
||||
### .spec.mode.sidecar.securityContext
|
||||
|
||||
Type: `core.SecurityContext` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/security.go#L35)</sup>
|
||||
|
||||
SecurityContext holds container-level security attributes and common container settings.
|
||||
|
||||
Links:
|
||||
* [Kubernetes docs](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/)
|
||||
|
||||
***
|
||||
|
||||
### .spec.mode.sidecar.startupProbe
|
||||
|
||||
Type: `core.Probe` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/probes.go#L50)</sup>
|
||||
|
||||
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.
|
||||
|
||||
Links:
|
||||
* [Kubernetes docs](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes)
|
||||
|
||||
***
|
||||
|
||||
### .spec.mode.sidecar.volumeMounts
|
||||
|
||||
Type: `[]core.VolumeMount` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/volume_mounts.go#L35)</sup>
|
||||
|
||||
VolumeMounts keeps list of pod volumes to mount into the container's filesystem.
|
||||
|
||||
***
|
||||
|
||||
### .spec.mode.sidecar.workingDir
|
||||
|
||||
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/core.go#L55)</sup>
|
||||
|
||||
Container's working directory.
|
||||
If not specified, the container runtime's default will be used, which
|
||||
might be configured in the container image.
|
||||
|
||||
## Status
|
||||
|
||||
### .status.conditions
|
||||
|
|
|
@ -52,10 +52,202 @@ Enabled define if TLS Should be enabled. If is not set then default is taken fro
|
|||
|
||||
### .spec.deploymentName
|
||||
|
||||
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/analytics/v1alpha1/gae_spec.go#L30)</sup>
|
||||
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/analytics/v1alpha1/gae_spec.go#L31)</sup>
|
||||
|
||||
DeploymentName define deployment name used in the object. Immutable
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.args
|
||||
|
||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/core.go#L50)</sup>
|
||||
|
||||
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.
|
||||
|
||||
Links:
|
||||
* [Kubernetes Docs](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell)
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.command
|
||||
|
||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/core.go#L40)</sup>
|
||||
|
||||
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.
|
||||
|
||||
Links:
|
||||
* [Kubernetes Docs](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell)
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.controllerListenPort
|
||||
|
||||
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/integration.go#L36)</sup>
|
||||
|
||||
ControllerListenPort defines on which port the sidecar container will be listening for controller requests
|
||||
|
||||
Default Value: `9202`
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.env
|
||||
|
||||
Type: `core.EnvVar` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/environments.go#L36)</sup>
|
||||
|
||||
Env keeps the information about environment variables provided to the container
|
||||
|
||||
Links:
|
||||
* [Kubernetes Docs](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#envvar-v1-core)
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.envFrom
|
||||
|
||||
Type: `core.EnvFromSource` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/environments.go#L41)</sup>
|
||||
|
||||
EnvFrom keeps the information about environment variable sources provided to the container
|
||||
|
||||
Links:
|
||||
* [Kubernetes Docs](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#envfromsource-v1-core)
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.image
|
||||
|
||||
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/image.go#L35)</sup>
|
||||
|
||||
Image define image details
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.imagePullPolicy
|
||||
|
||||
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/image.go#L39)</sup>
|
||||
|
||||
ImagePullPolicy define Image pull policy
|
||||
|
||||
Default Value: `IfNotPresent`
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.lifecycle
|
||||
|
||||
Type: `core.Lifecycle` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/lifecycle.go#L35)</sup>
|
||||
|
||||
Lifecycle keeps actions that the management system should take in response to container lifecycle events.
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.listenPort
|
||||
|
||||
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/integration.go#L32)</sup>
|
||||
|
||||
ListenPort defines on which port the sidecar container will be listening for connections
|
||||
|
||||
Default Value: `9201`
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.livenessProbe
|
||||
|
||||
Type: `core.Probe` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/probes.go#L37)</sup>
|
||||
|
||||
LivenessProbe keeps configuration of periodic probe of container liveness.
|
||||
Container will be restarted if the probe fails.
|
||||
|
||||
Links:
|
||||
* [Kubernetes docs](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes)
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.ports
|
||||
|
||||
Type: `[]core.ContainerPort` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/networking.go#L39)</sup>
|
||||
|
||||
Ports contains 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.
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.readinessProbe
|
||||
|
||||
Type: `core.Probe` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/probes.go#L42)</sup>
|
||||
|
||||
ReadinessProbe keeps configuration of periodic probe of container service readiness.
|
||||
Container will be removed from service endpoints if the probe fails.
|
||||
|
||||
Links:
|
||||
* [Kubernetes docs](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes)
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.resources
|
||||
|
||||
Type: `core.ResourceRequirements` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/resources.go#L37)</sup>
|
||||
|
||||
Resources holds resource requests & limits for container
|
||||
|
||||
Links:
|
||||
* [Documentation of core.ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#resourcerequirements-v1-core)
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.securityContext
|
||||
|
||||
Type: `core.SecurityContext` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/security.go#L35)</sup>
|
||||
|
||||
SecurityContext holds container-level security attributes and common container settings.
|
||||
|
||||
Links:
|
||||
* [Kubernetes docs](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/)
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.startupProbe
|
||||
|
||||
Type: `core.Probe` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/probes.go#L50)</sup>
|
||||
|
||||
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.
|
||||
|
||||
Links:
|
||||
* [Kubernetes docs](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes)
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.volumeMounts
|
||||
|
||||
Type: `[]core.VolumeMount` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/volume_mounts.go#L35)</sup>
|
||||
|
||||
VolumeMounts keeps list of pod volumes to mount into the container's filesystem.
|
||||
|
||||
***
|
||||
|
||||
### .spec.integrationSidecar.workingDir
|
||||
|
||||
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.40/pkg/apis/scheduler/v1beta1/container/resources/core.go#L55)</sup>
|
||||
|
||||
Container's working directory.
|
||||
If not specified, the container runtime's default will be used, which
|
||||
might be configured in the container image.
|
||||
|
||||
## Status
|
||||
|
||||
### .status.arangoDB.deployment.checksum
|
||||
|
|
|
@ -259,6 +259,11 @@ func Test_GenerateAPIDocs(t *testing.T) {
|
|||
},
|
||||
Shared: []string{
|
||||
"shared/v1",
|
||||
"scheduler/v1beta1",
|
||||
"scheduler/v1beta1/container",
|
||||
"scheduler/v1beta1/container/resources",
|
||||
"scheduler/v1beta1/pod",
|
||||
"scheduler/v1beta1/pod/resources",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
package v1alpha1
|
||||
|
||||
import (
|
||||
schedulerApi "github.com/arangodb/kube-arangodb/pkg/apis/scheduler/v1beta1"
|
||||
shared "github.com/arangodb/kube-arangodb/pkg/apis/shared"
|
||||
"github.com/arangodb/kube-arangodb/pkg/util/errors"
|
||||
)
|
||||
|
@ -31,6 +32,9 @@ type GraphAnalyticsEngineSpec struct {
|
|||
|
||||
// Deployment specifies how the GAE will be deployed into cluster
|
||||
Deployment *GraphAnalyticsEngineSpecDeployment `json:"deployment,omitempty"`
|
||||
|
||||
// IntegrationSidecar define the integration sidecar spec
|
||||
IntegrationSidecar *schedulerApi.IntegrationSidecar `json:"integrationSidecar,omitempty"`
|
||||
}
|
||||
|
||||
func (a *GraphAnalyticsEngineSpec) GetDeployment() *GraphAnalyticsEngineSpecDeployment {
|
||||
|
@ -40,6 +44,13 @@ func (a *GraphAnalyticsEngineSpec) GetDeployment() *GraphAnalyticsEngineSpecDepl
|
|||
return a.Deployment
|
||||
}
|
||||
|
||||
func (a *GraphAnalyticsEngineSpec) GetIntegrationSidecar() *schedulerApi.IntegrationSidecar {
|
||||
if a == nil || a.IntegrationSidecar == nil {
|
||||
return nil
|
||||
}
|
||||
return a.IntegrationSidecar
|
||||
}
|
||||
|
||||
func (g *GraphAnalyticsEngineSpec) Validate() error {
|
||||
if g == nil {
|
||||
g = &GraphAnalyticsEngineSpec{}
|
||||
|
@ -53,5 +64,6 @@ func (g *GraphAnalyticsEngineSpec) Validate() error {
|
|||
|
||||
return nil
|
||||
})),
|
||||
shared.PrefixResourceErrors("integrationSidecar", g.GetIntegrationSidecar().Validate()),
|
||||
))
|
||||
}
|
||||
|
|
|
@ -27,6 +27,7 @@ package v1alpha1
|
|||
|
||||
import (
|
||||
deploymentv1 "github.com/arangodb/kube-arangodb/pkg/apis/deployment/v1"
|
||||
v1beta1 "github.com/arangodb/kube-arangodb/pkg/apis/scheduler/v1beta1"
|
||||
v1 "github.com/arangodb/kube-arangodb/pkg/apis/shared/v1"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||
|
@ -106,6 +107,11 @@ func (in *GraphAnalyticsEngineSpec) DeepCopyInto(out *GraphAnalyticsEngineSpec)
|
|||
*out = new(GraphAnalyticsEngineSpecDeployment)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.IntegrationSidecar != nil {
|
||||
in, out := &in.IntegrationSidecar, &out.IntegrationSidecar
|
||||
*out = new(v1beta1.IntegrationSidecar)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
package v1beta1
|
||||
|
||||
import (
|
||||
schedulerApi "github.com/arangodb/kube-arangodb/pkg/apis/scheduler/v1beta1"
|
||||
shared "github.com/arangodb/kube-arangodb/pkg/apis/shared"
|
||||
sharedApi "github.com/arangodb/kube-arangodb/pkg/apis/shared/v1"
|
||||
)
|
||||
|
@ -41,6 +42,9 @@ type ArangoMLExtensionSpec struct {
|
|||
|
||||
// JobsTemplates defines templates for jobs
|
||||
JobsTemplates *ArangoMLJobsTemplates `json:"jobsTemplates,omitempty"`
|
||||
|
||||
// IntegrationSidecar define the integration sidecar spec
|
||||
IntegrationSidecar *schedulerApi.IntegrationSidecar `json:"integrationSidecar,omitempty"`
|
||||
}
|
||||
|
||||
func (a *ArangoMLExtensionSpec) GetMetadataService() *ArangoMLExtensionSpecMetadataService {
|
||||
|
@ -81,6 +85,13 @@ func (a *ArangoMLExtensionSpec) GetJobsTemplates() *ArangoMLJobsTemplates {
|
|||
return a.JobsTemplates
|
||||
}
|
||||
|
||||
func (a *ArangoMLExtensionSpec) GetIntegrationSidecar() *schedulerApi.IntegrationSidecar {
|
||||
if a == nil || a.IntegrationSidecar == nil {
|
||||
return nil
|
||||
}
|
||||
return a.IntegrationSidecar
|
||||
}
|
||||
|
||||
func (a *ArangoMLExtensionSpec) Validate() error {
|
||||
if a == nil {
|
||||
a = &ArangoMLExtensionSpec{}
|
||||
|
@ -92,5 +103,6 @@ func (a *ArangoMLExtensionSpec) Validate() error {
|
|||
shared.PrefixResourceErrors("init", a.GetInit().Validate()),
|
||||
shared.PrefixResourceErrors("deployment", a.GetDeployment().Validate()),
|
||||
shared.PrefixResourceErrors("jobsTemplates", a.GetJobsTemplates().Validate()),
|
||||
shared.PrefixResourceErrors("integrationSidecar", a.GetIntegrationSidecar().Validate()),
|
||||
))
|
||||
}
|
||||
|
|
|
@ -21,10 +21,16 @@
|
|||
package v1beta1
|
||||
|
||||
import (
|
||||
shared "github.com/arangodb/kube-arangodb/pkg/apis/shared"
|
||||
"github.com/arangodb/kube-arangodb/pkg/util/errors"
|
||||
)
|
||||
|
||||
type ArangoMLStorageSpecModeType int
|
||||
|
||||
const (
|
||||
ArangoMLStorageSpecModeTypeUnknown ArangoMLStorageSpecModeType = iota
|
||||
ArangoMLStorageSpecModeTypeSidecar
|
||||
)
|
||||
|
||||
type ArangoMLStorageSpecMode struct {
|
||||
// Sidecar mode runs the storage implementation as a sidecar
|
||||
Sidecar *ArangoMLStorageSpecModeSidecar `json:"sidecar,omitempty"`
|
||||
|
@ -37,9 +43,18 @@ func (s *ArangoMLStorageSpecMode) GetSidecar() *ArangoMLStorageSpecModeSidecar {
|
|||
return s.Sidecar
|
||||
}
|
||||
|
||||
func (s *ArangoMLStorageSpecMode) GetType() ArangoMLStorageSpecModeType {
|
||||
return ArangoMLStorageSpecModeTypeSidecar
|
||||
}
|
||||
|
||||
func (s *ArangoMLStorageSpecMode) Validate() error {
|
||||
if s == nil {
|
||||
return errors.Errorf("Mode is not defined")
|
||||
s = &ArangoMLStorageSpecMode{}
|
||||
}
|
||||
return shared.WithErrors(shared.PrefixResourceError("sidecar", s.Sidecar.Validate()))
|
||||
|
||||
if s.GetType() == ArangoMLStorageSpecModeTypeUnknown {
|
||||
return errors.Errorf("Unknown mode type")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -20,63 +20,5 @@
|
|||
|
||||
package v1beta1
|
||||
|
||||
import (
|
||||
schedulerContainerApi "github.com/arangodb/kube-arangodb/pkg/apis/scheduler/v1beta1/container"
|
||||
shared "github.com/arangodb/kube-arangodb/pkg/apis/shared"
|
||||
"github.com/arangodb/kube-arangodb/pkg/util/errors"
|
||||
)
|
||||
|
||||
type ArangoMLStorageSpecModeSidecar struct {
|
||||
// ListenPort defines on which port the sidecar container will be listening for connections
|
||||
// +doc/default: 9201
|
||||
ListenPort *uint16 `json:"listenPort,omitempty"`
|
||||
|
||||
// ControllerListenPort defines on which port the sidecar container will be listening for controller requests
|
||||
// +doc/default: 9202
|
||||
ControllerListenPort *uint16 `json:"controllerListenPort,omitempty"`
|
||||
|
||||
// Container Keeps the information about Container configuration
|
||||
*schedulerContainerApi.Container `json:",inline"`
|
||||
}
|
||||
|
||||
func (s *ArangoMLStorageSpecModeSidecar) GetContainer() *schedulerContainerApi.Container {
|
||||
if s == nil || s.Container == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
return s.Container
|
||||
}
|
||||
|
||||
func (s *ArangoMLStorageSpecModeSidecar) Validate() error {
|
||||
if s == nil {
|
||||
s = &ArangoMLStorageSpecModeSidecar{}
|
||||
}
|
||||
|
||||
var err []error
|
||||
|
||||
if s.GetListenPort() < 1 {
|
||||
err = append(err, shared.PrefixResourceErrors("listenPort", errors.Errorf("must be positive")))
|
||||
}
|
||||
|
||||
if s.GetControllerListenPort() < 1 {
|
||||
err = append(err, shared.PrefixResourceErrors("controllerListenPort", errors.Errorf("must be positive")))
|
||||
}
|
||||
|
||||
err = append(err, s.GetContainer().Validate())
|
||||
|
||||
return shared.WithErrors(err...)
|
||||
}
|
||||
|
||||
func (s *ArangoMLStorageSpecModeSidecar) GetListenPort() uint16 {
|
||||
if s == nil || s.ListenPort == nil {
|
||||
return 9201
|
||||
}
|
||||
return *s.ListenPort
|
||||
}
|
||||
|
||||
func (s *ArangoMLStorageSpecModeSidecar) GetControllerListenPort() uint16 {
|
||||
if s == nil || s.ControllerListenPort == nil {
|
||||
return 9202
|
||||
}
|
||||
return *s.ControllerListenPort
|
||||
}
|
||||
|
|
|
@ -24,11 +24,7 @@ import (
|
|||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
core "k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/api/resource"
|
||||
|
||||
schedulerContainerApi "github.com/arangodb/kube-arangodb/pkg/apis/scheduler/v1beta1/container"
|
||||
schedulerContainerResourcesApi "github.com/arangodb/kube-arangodb/pkg/apis/scheduler/v1beta1/container/resources"
|
||||
sharedApi "github.com/arangodb/kube-arangodb/pkg/apis/shared/v1"
|
||||
"github.com/arangodb/kube-arangodb/pkg/util"
|
||||
)
|
||||
|
@ -47,8 +43,6 @@ func Test_ArangoMLStorageSpec(t *testing.T) {
|
|||
require.Error(t, s.Validate())
|
||||
|
||||
s.Mode.Sidecar = &ArangoMLStorageSpecModeSidecar{}
|
||||
require.Nil(t, s.Mode.Sidecar.GetResources())
|
||||
require.NotNil(t, s.Mode.Sidecar.GetListenPort())
|
||||
|
||||
require.Error(t, s.Backend.S3.Validate())
|
||||
s.Backend.S3 = &ArangoMLStorageSpecBackendS3{
|
||||
|
@ -60,36 +54,4 @@ func Test_ArangoMLStorageSpec(t *testing.T) {
|
|||
}
|
||||
s.BucketName = util.NewType("bucket")
|
||||
require.NoError(t, s.Validate())
|
||||
|
||||
t.Run("default requests and limits assigned", func(t *testing.T) {
|
||||
assignedRequirements := core.ResourceRequirements{
|
||||
Requests: core.ResourceList{
|
||||
core.ResourceCPU: resource.MustParse("100m"),
|
||||
core.ResourceMemory: resource.MustParse("128Mi"),
|
||||
},
|
||||
}
|
||||
s.Mode.Sidecar.Container = &schedulerContainerApi.Container{}
|
||||
s.Mode.Sidecar.Resources = &schedulerContainerResourcesApi.Resources{Resources: &assignedRequirements}
|
||||
|
||||
expectedRequirements := core.ResourceRequirements{
|
||||
Requests: assignedRequirements.Requests,
|
||||
Limits: core.ResourceList{
|
||||
core.ResourceCPU: resource.MustParse("200m"),
|
||||
core.ResourceMemory: resource.MustParse("256Mi"),
|
||||
},
|
||||
}
|
||||
|
||||
actualRequirements := s.Mode.Sidecar.GetResources().With(&schedulerContainerResourcesApi.Resources{Resources: &core.ResourceRequirements{
|
||||
Limits: core.ResourceList{
|
||||
core.ResourceCPU: resource.MustParse("200m"),
|
||||
core.ResourceMemory: resource.MustParse("256Mi"),
|
||||
},
|
||||
Requests: core.ResourceList{
|
||||
core.ResourceCPU: resource.MustParse("100m"),
|
||||
core.ResourceMemory: resource.MustParse("128Mi"),
|
||||
},
|
||||
}})
|
||||
|
||||
require.Equal(t, expectedRequirements, actualRequirements.GetResources())
|
||||
})
|
||||
}
|
||||
|
|
23
pkg/apis/ml/v1beta1/zz_generated.deepcopy.go
generated
23
pkg/apis/ml/v1beta1/zz_generated.deepcopy.go
generated
|
@ -27,6 +27,7 @@ package v1beta1
|
|||
|
||||
import (
|
||||
deploymentv1 "github.com/arangodb/kube-arangodb/pkg/apis/deployment/v1"
|
||||
schedulerv1beta1 "github.com/arangodb/kube-arangodb/pkg/apis/scheduler/v1beta1"
|
||||
container "github.com/arangodb/kube-arangodb/pkg/apis/scheduler/v1beta1/container"
|
||||
pod "github.com/arangodb/kube-arangodb/pkg/apis/scheduler/v1beta1/pod"
|
||||
v1 "github.com/arangodb/kube-arangodb/pkg/apis/shared/v1"
|
||||
|
@ -123,6 +124,11 @@ func (in *ArangoMLExtensionSpec) DeepCopyInto(out *ArangoMLExtensionSpec) {
|
|||
*out = new(ArangoMLJobsTemplates)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
if in.IntegrationSidecar != nil {
|
||||
in, out := &in.IntegrationSidecar, &out.IntegrationSidecar
|
||||
*out = new(schedulerv1beta1.IntegrationSidecar)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -640,7 +646,7 @@ func (in *ArangoMLStorageSpecMode) DeepCopyInto(out *ArangoMLStorageSpecMode) {
|
|||
if in.Sidecar != nil {
|
||||
in, out := &in.Sidecar, &out.Sidecar
|
||||
*out = new(ArangoMLStorageSpecModeSidecar)
|
||||
(*in).DeepCopyInto(*out)
|
||||
**out = **in
|
||||
}
|
||||
return
|
||||
}
|
||||
|
@ -658,21 +664,6 @@ func (in *ArangoMLStorageSpecMode) DeepCopy() *ArangoMLStorageSpecMode {
|
|||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *ArangoMLStorageSpecModeSidecar) DeepCopyInto(out *ArangoMLStorageSpecModeSidecar) {
|
||||
*out = *in
|
||||
if in.ListenPort != nil {
|
||||
in, out := &in.ListenPort, &out.ListenPort
|
||||
*out = new(uint16)
|
||||
**out = **in
|
||||
}
|
||||
if in.ControllerListenPort != nil {
|
||||
in, out := &in.ControllerListenPort, &out.ControllerListenPort
|
||||
*out = new(uint16)
|
||||
**out = **in
|
||||
}
|
||||
if in.Container != nil {
|
||||
in, out := &in.Container, &out.Container
|
||||
*out = new(container.Container)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
|
82
pkg/apis/scheduler/v1beta1/integration.go
Normal file
82
pkg/apis/scheduler/v1beta1/integration.go
Normal file
|
@ -0,0 +1,82 @@
|
|||
//
|
||||
// DISCLAIMER
|
||||
//
|
||||
// Copyright 2024 ArangoDB GmbH, Cologne, Germany
|
||||
//
|
||||
// Licensed 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.
|
||||
//
|
||||
// Copyright holder is ArangoDB GmbH, Cologne, Germany
|
||||
//
|
||||
|
||||
package v1beta1
|
||||
|
||||
import (
|
||||
schedulerContainerApi "github.com/arangodb/kube-arangodb/pkg/apis/scheduler/v1beta1/container"
|
||||
shared "github.com/arangodb/kube-arangodb/pkg/apis/shared"
|
||||
"github.com/arangodb/kube-arangodb/pkg/util/errors"
|
||||
)
|
||||
|
||||
type IntegrationSidecar struct {
|
||||
// ListenPort defines on which port the sidecar container will be listening for connections
|
||||
// +doc/default: 9201
|
||||
ListenPort *uint16 `json:"listenPort,omitempty"`
|
||||
|
||||
// ControllerListenPort defines on which port the sidecar container will be listening for controller requests
|
||||
// +doc/default: 9202
|
||||
ControllerListenPort *uint16 `json:"controllerListenPort,omitempty"`
|
||||
|
||||
// Container Keeps the information about Container configuration
|
||||
*schedulerContainerApi.Container `json:",inline"`
|
||||
}
|
||||
|
||||
func (s *IntegrationSidecar) GetContainer() *schedulerContainerApi.Container {
|
||||
if s == nil || s.Container == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
return s.Container
|
||||
}
|
||||
|
||||
func (s *IntegrationSidecar) Validate() error {
|
||||
if s == nil {
|
||||
s = &IntegrationSidecar{}
|
||||
}
|
||||
|
||||
var err []error
|
||||
|
||||
if s.GetListenPort() < 1 {
|
||||
err = append(err, shared.PrefixResourceErrors("listenPort", errors.Errorf("must be positive")))
|
||||
}
|
||||
|
||||
if s.GetControllerListenPort() < 1 {
|
||||
err = append(err, shared.PrefixResourceErrors("controllerListenPort", errors.Errorf("must be positive")))
|
||||
}
|
||||
|
||||
err = append(err, s.GetContainer().Validate())
|
||||
|
||||
return shared.WithErrors(err...)
|
||||
}
|
||||
|
||||
func (s *IntegrationSidecar) GetListenPort() uint16 {
|
||||
if s == nil || s.ListenPort == nil {
|
||||
return 9201
|
||||
}
|
||||
return *s.ListenPort
|
||||
}
|
||||
|
||||
func (s *IntegrationSidecar) GetControllerListenPort() uint16 {
|
||||
if s == nil || s.ControllerListenPort == nil {
|
||||
return 9202
|
||||
}
|
||||
return *s.ControllerListenPort
|
||||
}
|
31
pkg/apis/scheduler/v1beta1/zz_generated.deepcopy.go
generated
31
pkg/apis/scheduler/v1beta1/zz_generated.deepcopy.go
generated
|
@ -93,6 +93,37 @@ func (in *ArangoProfileList) DeepCopyObject() runtime.Object {
|
|||
return nil
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *IntegrationSidecar) DeepCopyInto(out *IntegrationSidecar) {
|
||||
*out = *in
|
||||
if in.ListenPort != nil {
|
||||
in, out := &in.ListenPort, &out.ListenPort
|
||||
*out = new(uint16)
|
||||
**out = **in
|
||||
}
|
||||
if in.ControllerListenPort != nil {
|
||||
in, out := &in.ControllerListenPort, &out.ControllerListenPort
|
||||
*out = new(uint16)
|
||||
**out = **in
|
||||
}
|
||||
if in.Container != nil {
|
||||
in, out := &in.Container, &out.Container
|
||||
*out = new(container.Container)
|
||||
(*in).DeepCopyInto(*out)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IntegrationSidecar.
|
||||
func (in *IntegrationSidecar) DeepCopy() *IntegrationSidecar {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(IntegrationSidecar)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (in *ProfileContainerTemplate) DeepCopyInto(out *ProfileContainerTemplate) {
|
||||
*out = *in
|
||||
|
|
|
@ -39,6 +39,496 @@ v1alpha1:
|
|||
deploymentName:
|
||||
description: DeploymentName define deployment name used in the object. Immutable
|
||||
type: string
|
||||
integrationSidecar:
|
||||
description: IntegrationSidecar define the integration sidecar spec
|
||||
properties:
|
||||
args:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
command:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
controllerListenPort:
|
||||
format: int32
|
||||
type: integer
|
||||
env:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
valueFrom:
|
||||
properties:
|
||||
configMapKeyRef:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
optional:
|
||||
type: boolean
|
||||
type: object
|
||||
fieldRef:
|
||||
properties:
|
||||
apiVersion:
|
||||
type: string
|
||||
fieldPath:
|
||||
type: string
|
||||
type: object
|
||||
resourceFieldRef:
|
||||
properties:
|
||||
containerName:
|
||||
type: string
|
||||
divisor:
|
||||
type: string
|
||||
resource:
|
||||
type: string
|
||||
type: object
|
||||
secretKeyRef:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
optional:
|
||||
type: boolean
|
||||
type: object
|
||||
type: object
|
||||
type: object
|
||||
type: array
|
||||
envFrom:
|
||||
items:
|
||||
properties:
|
||||
configMapRef:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
optional:
|
||||
type: boolean
|
||||
type: object
|
||||
prefix:
|
||||
type: string
|
||||
secretRef:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
optional:
|
||||
type: boolean
|
||||
type: object
|
||||
type: object
|
||||
type: array
|
||||
image:
|
||||
type: string
|
||||
imagePullPolicy:
|
||||
type: string
|
||||
lifecycle:
|
||||
properties:
|
||||
postStart:
|
||||
properties:
|
||||
exec:
|
||||
properties:
|
||||
command:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
httpGet:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
httpHeaders:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
path:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
scheme:
|
||||
type: string
|
||||
type: object
|
||||
sleep:
|
||||
properties:
|
||||
seconds:
|
||||
format: int64
|
||||
type: integer
|
||||
type: object
|
||||
tcpSocket:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
preStop:
|
||||
properties:
|
||||
exec:
|
||||
properties:
|
||||
command:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
httpGet:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
httpHeaders:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
path:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
scheme:
|
||||
type: string
|
||||
type: object
|
||||
sleep:
|
||||
properties:
|
||||
seconds:
|
||||
format: int64
|
||||
type: integer
|
||||
type: object
|
||||
tcpSocket:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
type: object
|
||||
listenPort:
|
||||
format: int32
|
||||
type: integer
|
||||
livenessProbe:
|
||||
properties:
|
||||
exec:
|
||||
properties:
|
||||
command:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
failureThreshold:
|
||||
format: int32
|
||||
type: integer
|
||||
grpc:
|
||||
properties:
|
||||
port:
|
||||
format: int32
|
||||
type: integer
|
||||
service:
|
||||
type: string
|
||||
type: object
|
||||
httpGet:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
httpHeaders:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
path:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
scheme:
|
||||
type: string
|
||||
type: object
|
||||
initialDelaySeconds:
|
||||
format: int32
|
||||
type: integer
|
||||
periodSeconds:
|
||||
format: int32
|
||||
type: integer
|
||||
successThreshold:
|
||||
format: int32
|
||||
type: integer
|
||||
tcpSocket:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
type: object
|
||||
terminationGracePeriodSeconds:
|
||||
format: int64
|
||||
type: integer
|
||||
timeoutSeconds:
|
||||
format: int32
|
||||
type: integer
|
||||
type: object
|
||||
ports:
|
||||
items:
|
||||
properties:
|
||||
containerPort:
|
||||
format: int32
|
||||
type: integer
|
||||
hostIP:
|
||||
type: string
|
||||
hostPort:
|
||||
format: int32
|
||||
type: integer
|
||||
name:
|
||||
type: string
|
||||
protocol:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
readinessProbe:
|
||||
properties:
|
||||
exec:
|
||||
properties:
|
||||
command:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
failureThreshold:
|
||||
format: int32
|
||||
type: integer
|
||||
grpc:
|
||||
properties:
|
||||
port:
|
||||
format: int32
|
||||
type: integer
|
||||
service:
|
||||
type: string
|
||||
type: object
|
||||
httpGet:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
httpHeaders:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
path:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
scheme:
|
||||
type: string
|
||||
type: object
|
||||
initialDelaySeconds:
|
||||
format: int32
|
||||
type: integer
|
||||
periodSeconds:
|
||||
format: int32
|
||||
type: integer
|
||||
successThreshold:
|
||||
format: int32
|
||||
type: integer
|
||||
tcpSocket:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
type: object
|
||||
terminationGracePeriodSeconds:
|
||||
format: int64
|
||||
type: integer
|
||||
timeoutSeconds:
|
||||
format: int32
|
||||
type: integer
|
||||
type: object
|
||||
resources:
|
||||
properties:
|
||||
claims:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
limits:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
requests:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
securityContext:
|
||||
properties:
|
||||
allowPrivilegeEscalation:
|
||||
type: boolean
|
||||
capabilities:
|
||||
properties:
|
||||
add:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
drop:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
privileged:
|
||||
type: boolean
|
||||
procMount:
|
||||
type: string
|
||||
readOnlyRootFilesystem:
|
||||
type: boolean
|
||||
runAsGroup:
|
||||
format: int64
|
||||
type: integer
|
||||
runAsNonRoot:
|
||||
type: boolean
|
||||
runAsUser:
|
||||
format: int64
|
||||
type: integer
|
||||
seLinuxOptions:
|
||||
properties:
|
||||
level:
|
||||
type: string
|
||||
role:
|
||||
type: string
|
||||
type:
|
||||
type: string
|
||||
user:
|
||||
type: string
|
||||
type: object
|
||||
seccompProfile:
|
||||
properties:
|
||||
localhostProfile:
|
||||
type: string
|
||||
type:
|
||||
type: string
|
||||
type: object
|
||||
windowsOptions:
|
||||
properties:
|
||||
gmsaCredentialSpec:
|
||||
type: string
|
||||
gmsaCredentialSpecName:
|
||||
type: string
|
||||
hostProcess:
|
||||
type: boolean
|
||||
runAsUserName:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
startupProbe:
|
||||
properties:
|
||||
exec:
|
||||
properties:
|
||||
command:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
failureThreshold:
|
||||
format: int32
|
||||
type: integer
|
||||
grpc:
|
||||
properties:
|
||||
port:
|
||||
format: int32
|
||||
type: integer
|
||||
service:
|
||||
type: string
|
||||
type: object
|
||||
httpGet:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
httpHeaders:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
path:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
scheme:
|
||||
type: string
|
||||
type: object
|
||||
initialDelaySeconds:
|
||||
format: int32
|
||||
type: integer
|
||||
periodSeconds:
|
||||
format: int32
|
||||
type: integer
|
||||
successThreshold:
|
||||
format: int32
|
||||
type: integer
|
||||
tcpSocket:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
type: object
|
||||
terminationGracePeriodSeconds:
|
||||
format: int64
|
||||
type: integer
|
||||
timeoutSeconds:
|
||||
format: int32
|
||||
type: integer
|
||||
type: object
|
||||
volumeMounts:
|
||||
items:
|
||||
properties:
|
||||
mountPath:
|
||||
type: string
|
||||
mountPropagation:
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
readOnly:
|
||||
type: boolean
|
||||
subPath:
|
||||
type: string
|
||||
subPathExpr:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
workingDir:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
type: object
|
||||
x-kubernetes-preserve-unknown-fields: true
|
||||
|
|
|
@ -16285,6 +16285,495 @@ v1beta1:
|
|||
workingDir:
|
||||
type: string
|
||||
type: object
|
||||
integrationSidecar:
|
||||
properties:
|
||||
args:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
command:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
controllerListenPort:
|
||||
format: int32
|
||||
type: integer
|
||||
env:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
valueFrom:
|
||||
properties:
|
||||
configMapKeyRef:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
optional:
|
||||
type: boolean
|
||||
type: object
|
||||
fieldRef:
|
||||
properties:
|
||||
apiVersion:
|
||||
type: string
|
||||
fieldPath:
|
||||
type: string
|
||||
type: object
|
||||
resourceFieldRef:
|
||||
properties:
|
||||
containerName:
|
||||
type: string
|
||||
divisor:
|
||||
type: string
|
||||
resource:
|
||||
type: string
|
||||
type: object
|
||||
secretKeyRef:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
optional:
|
||||
type: boolean
|
||||
type: object
|
||||
type: object
|
||||
type: object
|
||||
type: array
|
||||
envFrom:
|
||||
items:
|
||||
properties:
|
||||
configMapRef:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
optional:
|
||||
type: boolean
|
||||
type: object
|
||||
prefix:
|
||||
type: string
|
||||
secretRef:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
optional:
|
||||
type: boolean
|
||||
type: object
|
||||
type: object
|
||||
type: array
|
||||
image:
|
||||
type: string
|
||||
imagePullPolicy:
|
||||
type: string
|
||||
lifecycle:
|
||||
properties:
|
||||
postStart:
|
||||
properties:
|
||||
exec:
|
||||
properties:
|
||||
command:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
httpGet:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
httpHeaders:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
path:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
scheme:
|
||||
type: string
|
||||
type: object
|
||||
sleep:
|
||||
properties:
|
||||
seconds:
|
||||
format: int64
|
||||
type: integer
|
||||
type: object
|
||||
tcpSocket:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
preStop:
|
||||
properties:
|
||||
exec:
|
||||
properties:
|
||||
command:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
httpGet:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
httpHeaders:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
path:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
scheme:
|
||||
type: string
|
||||
type: object
|
||||
sleep:
|
||||
properties:
|
||||
seconds:
|
||||
format: int64
|
||||
type: integer
|
||||
type: object
|
||||
tcpSocket:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
type: object
|
||||
listenPort:
|
||||
format: int32
|
||||
type: integer
|
||||
livenessProbe:
|
||||
properties:
|
||||
exec:
|
||||
properties:
|
||||
command:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
failureThreshold:
|
||||
format: int32
|
||||
type: integer
|
||||
grpc:
|
||||
properties:
|
||||
port:
|
||||
format: int32
|
||||
type: integer
|
||||
service:
|
||||
type: string
|
||||
type: object
|
||||
httpGet:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
httpHeaders:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
path:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
scheme:
|
||||
type: string
|
||||
type: object
|
||||
initialDelaySeconds:
|
||||
format: int32
|
||||
type: integer
|
||||
periodSeconds:
|
||||
format: int32
|
||||
type: integer
|
||||
successThreshold:
|
||||
format: int32
|
||||
type: integer
|
||||
tcpSocket:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
type: object
|
||||
terminationGracePeriodSeconds:
|
||||
format: int64
|
||||
type: integer
|
||||
timeoutSeconds:
|
||||
format: int32
|
||||
type: integer
|
||||
type: object
|
||||
ports:
|
||||
items:
|
||||
properties:
|
||||
containerPort:
|
||||
format: int32
|
||||
type: integer
|
||||
hostIP:
|
||||
type: string
|
||||
hostPort:
|
||||
format: int32
|
||||
type: integer
|
||||
name:
|
||||
type: string
|
||||
protocol:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
readinessProbe:
|
||||
properties:
|
||||
exec:
|
||||
properties:
|
||||
command:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
failureThreshold:
|
||||
format: int32
|
||||
type: integer
|
||||
grpc:
|
||||
properties:
|
||||
port:
|
||||
format: int32
|
||||
type: integer
|
||||
service:
|
||||
type: string
|
||||
type: object
|
||||
httpGet:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
httpHeaders:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
path:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
scheme:
|
||||
type: string
|
||||
type: object
|
||||
initialDelaySeconds:
|
||||
format: int32
|
||||
type: integer
|
||||
periodSeconds:
|
||||
format: int32
|
||||
type: integer
|
||||
successThreshold:
|
||||
format: int32
|
||||
type: integer
|
||||
tcpSocket:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
type: object
|
||||
terminationGracePeriodSeconds:
|
||||
format: int64
|
||||
type: integer
|
||||
timeoutSeconds:
|
||||
format: int32
|
||||
type: integer
|
||||
type: object
|
||||
resources:
|
||||
properties:
|
||||
claims:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
limits:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
requests:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
securityContext:
|
||||
properties:
|
||||
allowPrivilegeEscalation:
|
||||
type: boolean
|
||||
capabilities:
|
||||
properties:
|
||||
add:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
drop:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
privileged:
|
||||
type: boolean
|
||||
procMount:
|
||||
type: string
|
||||
readOnlyRootFilesystem:
|
||||
type: boolean
|
||||
runAsGroup:
|
||||
format: int64
|
||||
type: integer
|
||||
runAsNonRoot:
|
||||
type: boolean
|
||||
runAsUser:
|
||||
format: int64
|
||||
type: integer
|
||||
seLinuxOptions:
|
||||
properties:
|
||||
level:
|
||||
type: string
|
||||
role:
|
||||
type: string
|
||||
type:
|
||||
type: string
|
||||
user:
|
||||
type: string
|
||||
type: object
|
||||
seccompProfile:
|
||||
properties:
|
||||
localhostProfile:
|
||||
type: string
|
||||
type:
|
||||
type: string
|
||||
type: object
|
||||
windowsOptions:
|
||||
properties:
|
||||
gmsaCredentialSpec:
|
||||
type: string
|
||||
gmsaCredentialSpecName:
|
||||
type: string
|
||||
hostProcess:
|
||||
type: boolean
|
||||
runAsUserName:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
startupProbe:
|
||||
properties:
|
||||
exec:
|
||||
properties:
|
||||
command:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
failureThreshold:
|
||||
format: int32
|
||||
type: integer
|
||||
grpc:
|
||||
properties:
|
||||
port:
|
||||
format: int32
|
||||
type: integer
|
||||
service:
|
||||
type: string
|
||||
type: object
|
||||
httpGet:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
httpHeaders:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
path:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
scheme:
|
||||
type: string
|
||||
type: object
|
||||
initialDelaySeconds:
|
||||
format: int32
|
||||
type: integer
|
||||
periodSeconds:
|
||||
format: int32
|
||||
type: integer
|
||||
successThreshold:
|
||||
format: int32
|
||||
type: integer
|
||||
tcpSocket:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
type: object
|
||||
terminationGracePeriodSeconds:
|
||||
format: int64
|
||||
type: integer
|
||||
timeoutSeconds:
|
||||
format: int32
|
||||
type: integer
|
||||
type: object
|
||||
volumeMounts:
|
||||
items:
|
||||
properties:
|
||||
mountPath:
|
||||
type: string
|
||||
mountPropagation:
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
readOnly:
|
||||
type: boolean
|
||||
subPath:
|
||||
type: string
|
||||
subPathExpr:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
workingDir:
|
||||
type: string
|
||||
type: object
|
||||
jobsTemplates:
|
||||
properties:
|
||||
featurization:
|
||||
|
|
|
@ -621,493 +621,6 @@ v1beta1:
|
|||
mode:
|
||||
properties:
|
||||
sidecar:
|
||||
properties:
|
||||
args:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
command:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
controllerListenPort:
|
||||
format: int32
|
||||
type: integer
|
||||
env:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
valueFrom:
|
||||
properties:
|
||||
configMapKeyRef:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
optional:
|
||||
type: boolean
|
||||
type: object
|
||||
fieldRef:
|
||||
properties:
|
||||
apiVersion:
|
||||
type: string
|
||||
fieldPath:
|
||||
type: string
|
||||
type: object
|
||||
resourceFieldRef:
|
||||
properties:
|
||||
containerName:
|
||||
type: string
|
||||
divisor:
|
||||
type: string
|
||||
resource:
|
||||
type: string
|
||||
type: object
|
||||
secretKeyRef:
|
||||
properties:
|
||||
key:
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
optional:
|
||||
type: boolean
|
||||
type: object
|
||||
type: object
|
||||
type: object
|
||||
type: array
|
||||
envFrom:
|
||||
items:
|
||||
properties:
|
||||
configMapRef:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
optional:
|
||||
type: boolean
|
||||
type: object
|
||||
prefix:
|
||||
type: string
|
||||
secretRef:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
optional:
|
||||
type: boolean
|
||||
type: object
|
||||
type: object
|
||||
type: array
|
||||
image:
|
||||
type: string
|
||||
imagePullPolicy:
|
||||
type: string
|
||||
lifecycle:
|
||||
properties:
|
||||
postStart:
|
||||
properties:
|
||||
exec:
|
||||
properties:
|
||||
command:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
httpGet:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
httpHeaders:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
path:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
scheme:
|
||||
type: string
|
||||
type: object
|
||||
sleep:
|
||||
properties:
|
||||
seconds:
|
||||
format: int64
|
||||
type: integer
|
||||
type: object
|
||||
tcpSocket:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
preStop:
|
||||
properties:
|
||||
exec:
|
||||
properties:
|
||||
command:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
httpGet:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
httpHeaders:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
path:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
scheme:
|
||||
type: string
|
||||
type: object
|
||||
sleep:
|
||||
properties:
|
||||
seconds:
|
||||
format: int64
|
||||
type: integer
|
||||
type: object
|
||||
tcpSocket:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
type: object
|
||||
listenPort:
|
||||
format: int32
|
||||
type: integer
|
||||
livenessProbe:
|
||||
properties:
|
||||
exec:
|
||||
properties:
|
||||
command:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
failureThreshold:
|
||||
format: int32
|
||||
type: integer
|
||||
grpc:
|
||||
properties:
|
||||
port:
|
||||
format: int32
|
||||
type: integer
|
||||
service:
|
||||
type: string
|
||||
type: object
|
||||
httpGet:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
httpHeaders:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
path:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
scheme:
|
||||
type: string
|
||||
type: object
|
||||
initialDelaySeconds:
|
||||
format: int32
|
||||
type: integer
|
||||
periodSeconds:
|
||||
format: int32
|
||||
type: integer
|
||||
successThreshold:
|
||||
format: int32
|
||||
type: integer
|
||||
tcpSocket:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
type: object
|
||||
terminationGracePeriodSeconds:
|
||||
format: int64
|
||||
type: integer
|
||||
timeoutSeconds:
|
||||
format: int32
|
||||
type: integer
|
||||
type: object
|
||||
ports:
|
||||
items:
|
||||
properties:
|
||||
containerPort:
|
||||
format: int32
|
||||
type: integer
|
||||
hostIP:
|
||||
type: string
|
||||
hostPort:
|
||||
format: int32
|
||||
type: integer
|
||||
name:
|
||||
type: string
|
||||
protocol:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
readinessProbe:
|
||||
properties:
|
||||
exec:
|
||||
properties:
|
||||
command:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
failureThreshold:
|
||||
format: int32
|
||||
type: integer
|
||||
grpc:
|
||||
properties:
|
||||
port:
|
||||
format: int32
|
||||
type: integer
|
||||
service:
|
||||
type: string
|
||||
type: object
|
||||
httpGet:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
httpHeaders:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
path:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
scheme:
|
||||
type: string
|
||||
type: object
|
||||
initialDelaySeconds:
|
||||
format: int32
|
||||
type: integer
|
||||
periodSeconds:
|
||||
format: int32
|
||||
type: integer
|
||||
successThreshold:
|
||||
format: int32
|
||||
type: integer
|
||||
tcpSocket:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
type: object
|
||||
terminationGracePeriodSeconds:
|
||||
format: int64
|
||||
type: integer
|
||||
timeoutSeconds:
|
||||
format: int32
|
||||
type: integer
|
||||
type: object
|
||||
resources:
|
||||
properties:
|
||||
claims:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
limits:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
requests:
|
||||
additionalProperties:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
securityContext:
|
||||
properties:
|
||||
allowPrivilegeEscalation:
|
||||
type: boolean
|
||||
capabilities:
|
||||
properties:
|
||||
add:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
drop:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
privileged:
|
||||
type: boolean
|
||||
procMount:
|
||||
type: string
|
||||
readOnlyRootFilesystem:
|
||||
type: boolean
|
||||
runAsGroup:
|
||||
format: int64
|
||||
type: integer
|
||||
runAsNonRoot:
|
||||
type: boolean
|
||||
runAsUser:
|
||||
format: int64
|
||||
type: integer
|
||||
seLinuxOptions:
|
||||
properties:
|
||||
level:
|
||||
type: string
|
||||
role:
|
||||
type: string
|
||||
type:
|
||||
type: string
|
||||
user:
|
||||
type: string
|
||||
type: object
|
||||
seccompProfile:
|
||||
properties:
|
||||
localhostProfile:
|
||||
type: string
|
||||
type:
|
||||
type: string
|
||||
type: object
|
||||
windowsOptions:
|
||||
properties:
|
||||
gmsaCredentialSpec:
|
||||
type: string
|
||||
gmsaCredentialSpecName:
|
||||
type: string
|
||||
hostProcess:
|
||||
type: boolean
|
||||
runAsUserName:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
startupProbe:
|
||||
properties:
|
||||
exec:
|
||||
properties:
|
||||
command:
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
type: object
|
||||
failureThreshold:
|
||||
format: int32
|
||||
type: integer
|
||||
grpc:
|
||||
properties:
|
||||
port:
|
||||
format: int32
|
||||
type: integer
|
||||
service:
|
||||
type: string
|
||||
type: object
|
||||
httpGet:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
httpHeaders:
|
||||
items:
|
||||
properties:
|
||||
name:
|
||||
type: string
|
||||
value:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
path:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
scheme:
|
||||
type: string
|
||||
type: object
|
||||
initialDelaySeconds:
|
||||
format: int32
|
||||
type: integer
|
||||
periodSeconds:
|
||||
format: int32
|
||||
type: integer
|
||||
successThreshold:
|
||||
format: int32
|
||||
type: integer
|
||||
tcpSocket:
|
||||
properties:
|
||||
host:
|
||||
type: string
|
||||
port:
|
||||
format: int-or-string
|
||||
type: string
|
||||
type: object
|
||||
terminationGracePeriodSeconds:
|
||||
format: int64
|
||||
type: integer
|
||||
timeoutSeconds:
|
||||
format: int32
|
||||
type: integer
|
||||
type: object
|
||||
volumeMounts:
|
||||
items:
|
||||
properties:
|
||||
mountPath:
|
||||
type: string
|
||||
mountPropagation:
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
readOnly:
|
||||
type: boolean
|
||||
subPath:
|
||||
type: string
|
||||
subPathExpr:
|
||||
type: string
|
||||
type: object
|
||||
type: array
|
||||
workingDir:
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
type: object
|
||||
|
|
|
@ -20,7 +20,9 @@
|
|||
|
||||
package util
|
||||
|
||||
import "reflect"
|
||||
import (
|
||||
"reflect"
|
||||
)
|
||||
|
||||
// NewType returns a reference to a simple type with given value.
|
||||
func NewType[T interface{}](input T) *T {
|
||||
|
|
Loading…
Reference in a new issue