mirror of
https://github.com/arangodb/kube-arangodb.git
synced 2024-12-14 11:57:37 +00:00
[Feature] [Scheduler] Merge Strategy (#1721)
This commit is contained in:
parent
750d63213f
commit
e1e9d3f291
18 changed files with 438 additions and 49 deletions
|
@ -81,6 +81,8 @@ linters-settings:
|
||||||
pkg: github.com/arangodb/kube-arangodb/pkg/apis/scheduler/v1beta1/container/resources
|
pkg: github.com/arangodb/kube-arangodb/pkg/apis/scheduler/v1beta1/container/resources
|
||||||
- alias: schedulerIntegrationApi
|
- alias: schedulerIntegrationApi
|
||||||
pkg: github.com/arangodb/kube-arangodb/pkg/apis/scheduler/v1beta1/integration
|
pkg: github.com/arangodb/kube-arangodb/pkg/apis/scheduler/v1beta1/integration
|
||||||
|
- alias: schedulerPolicyApi
|
||||||
|
pkg: github.com/arangodb/kube-arangodb/pkg/apis/scheduler/v1beta1/policy
|
||||||
- alias: schedulerPodApi
|
- alias: schedulerPodApi
|
||||||
pkg: github.com/arangodb/kube-arangodb/pkg/apis/scheduler/v1beta1/pod
|
pkg: github.com/arangodb/kube-arangodb/pkg/apis/scheduler/v1beta1/pod
|
||||||
- alias: schedulerPodResourcesApi
|
- alias: schedulerPodResourcesApi
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
- (Feature) DebugPackage ArangoRoutes
|
- (Feature) DebugPackage ArangoRoutes
|
||||||
- (Feature) (Scheduler) Add Status Conditions
|
- (Feature) (Scheduler) Add Status Conditions
|
||||||
- (Bugfix) Versioning Alignment
|
- (Bugfix) Versioning Alignment
|
||||||
|
- (Feature) (Scheduler) Merge Strategy
|
||||||
|
|
||||||
## [1.2.42](https://github.com/arangodb/kube-arangodb/tree/1.2.42) (2024-07-23)
|
## [1.2.42](https://github.com/arangodb/kube-arangodb/tree/1.2.42) (2024-07-23)
|
||||||
- (Maintenance) Go 1.22.4 & Kubernetes 1.29.6 libraries
|
- (Maintenance) Go 1.22.4 & Kubernetes 1.29.6 libraries
|
||||||
|
|
6
Makefile
6
Makefile
|
@ -452,7 +452,7 @@ update-generated:
|
||||||
"github.com/arangodb/kube-arangodb/pkg/apis" \
|
"github.com/arangodb/kube-arangodb/pkg/apis" \
|
||||||
"shared:v1 \
|
"shared:v1 \
|
||||||
scheduler:v1alpha1/container scheduler:v1alpha1/container/resources scheduler:v1alpha1/pod scheduler:v1alpha1/pod/resources \
|
scheduler:v1alpha1/container scheduler:v1alpha1/container/resources scheduler:v1alpha1/pod scheduler:v1alpha1/pod/resources \
|
||||||
scheduler:v1beta1/integration scheduler:v1beta1/container scheduler:v1beta1/container/resources scheduler:v1beta1/pod scheduler:v1beta1/pod/resources" \
|
scheduler:v1beta1/integration scheduler:v1beta1/policy scheduler:v1beta1/container scheduler:v1beta1/container/resources scheduler:v1beta1/pod scheduler:v1beta1/pod/resources" \
|
||||||
--go-header-file "./tools/codegen/boilerplate.go.txt" \
|
--go-header-file "./tools/codegen/boilerplate.go.txt" \
|
||||||
$(VERIFYARGS)
|
$(VERIFYARGS)
|
||||||
|
|
||||||
|
@ -815,6 +815,7 @@ set-typed-api-version/%:
|
||||||
"$(ROOT)/pkg/handlers/" \
|
"$(ROOT)/pkg/handlers/" \
|
||||||
"$(ROOT)/pkg/apis/backup/" \
|
"$(ROOT)/pkg/apis/backup/" \
|
||||||
"$(ROOT)/pkg/apis/networking/" \
|
"$(ROOT)/pkg/apis/networking/" \
|
||||||
|
"$(ROOT)/pkg/apis/scheduler/" \
|
||||||
"$(ROOT)/pkg/upgrade/" \
|
"$(ROOT)/pkg/upgrade/" \
|
||||||
| cut -d ':' -f 1 | sort | uniq \
|
| cut -d ':' -f 1 | sort | uniq \
|
||||||
| xargs -n 1 $(SED) -i "s#github.com/arangodb/kube-arangodb/pkg/generated/clientset/versioned/typed/$*/v[A-Za-z0-9]\+#github.com/arangodb/kube-arangodb/pkg/generated/clientset/versioned/typed/$*/v$(API_VERSION)#g"
|
| xargs -n 1 $(SED) -i "s#github.com/arangodb/kube-arangodb/pkg/generated/clientset/versioned/typed/$*/v[A-Za-z0-9]\+#github.com/arangodb/kube-arangodb/pkg/generated/clientset/versioned/typed/$*/v$(API_VERSION)#g"
|
||||||
|
@ -832,6 +833,7 @@ set-api-version/%:
|
||||||
"$(ROOT)/pkg/handlers/" \
|
"$(ROOT)/pkg/handlers/" \
|
||||||
"$(ROOT)/pkg/apis/backup/" \
|
"$(ROOT)/pkg/apis/backup/" \
|
||||||
"$(ROOT)/pkg/apis/networking/" \
|
"$(ROOT)/pkg/apis/networking/" \
|
||||||
|
"$(ROOT)/pkg/apis/scheduler/" \
|
||||||
"$(ROOT)/pkg/upgrade/" \
|
"$(ROOT)/pkg/upgrade/" \
|
||||||
| cut -d ':' -f 1 | sort | uniq \
|
| cut -d ':' -f 1 | sort | uniq \
|
||||||
| xargs -n 1 $(SED) -i "s#github.com/arangodb/kube-arangodb/pkg/apis/$*/v[A-Za-z0-9]\+#github.com/arangodb/kube-arangodb/pkg/apis/$*/v$(API_VERSION)#g"
|
| xargs -n 1 $(SED) -i "s#github.com/arangodb/kube-arangodb/pkg/apis/$*/v[A-Za-z0-9]\+#github.com/arangodb/kube-arangodb/pkg/apis/$*/v$(API_VERSION)#g"
|
||||||
|
@ -846,6 +848,7 @@ set-api-version/%:
|
||||||
"$(ROOT)/pkg/handlers/" \
|
"$(ROOT)/pkg/handlers/" \
|
||||||
"$(ROOT)/pkg/apis/backup/" \
|
"$(ROOT)/pkg/apis/backup/" \
|
||||||
"$(ROOT)/pkg/apis/networking/" \
|
"$(ROOT)/pkg/apis/networking/" \
|
||||||
|
"$(ROOT)/pkg/apis/scheduler/" \
|
||||||
"$(ROOT)/pkg/upgrade/" \
|
"$(ROOT)/pkg/upgrade/" \
|
||||||
| cut -d ':' -f 1 | sort | uniq \
|
| cut -d ':' -f 1 | sort | uniq \
|
||||||
| xargs -n 1 $(SED) -i "s#DatabaseV[A-Za-z0-9]\+()\.#DatabaseV$(API_VERSION)().#g"
|
| xargs -n 1 $(SED) -i "s#DatabaseV[A-Za-z0-9]\+()\.#DatabaseV$(API_VERSION)().#g"
|
||||||
|
@ -860,6 +863,7 @@ set-api-version/%:
|
||||||
"$(ROOT)/pkg/handlers" \
|
"$(ROOT)/pkg/handlers" \
|
||||||
"$(ROOT)/pkg/apis/backup/" \
|
"$(ROOT)/pkg/apis/backup/" \
|
||||||
"$(ROOT)/pkg/apis/networking/" \
|
"$(ROOT)/pkg/apis/networking/" \
|
||||||
|
"$(ROOT)/pkg/apis/scheduler/" \
|
||||||
"$(ROOT)/pkg/upgrade/" \
|
"$(ROOT)/pkg/upgrade/" \
|
||||||
| cut -d ':' -f 1 | sort | uniq \
|
| cut -d ':' -f 1 | sort | uniq \
|
||||||
| xargs -n 1 $(SED) -i "s#ReplicationV[A-Za-z0-9]\+()\.#ReplicationV$(API_VERSION)().#g"
|
| xargs -n 1 $(SED) -i "s#ReplicationV[A-Za-z0-9]\+()\.#ReplicationV$(API_VERSION)().#g"
|
||||||
|
|
|
@ -3076,7 +3076,7 @@ By default, the image is determined by the operator.
|
||||||
|
|
||||||
### .spec.gateway.sidecar.args
|
### .spec.gateway.sidecar.args
|
||||||
|
|
||||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L50)</sup>
|
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L54)</sup>
|
||||||
|
|
||||||
Arguments to the entrypoint.
|
Arguments to the entrypoint.
|
||||||
The container image's CMD is used if this is not provided.
|
The container image's CMD is used if this is not provided.
|
||||||
|
@ -3093,7 +3093,7 @@ Links:
|
||||||
|
|
||||||
### .spec.gateway.sidecar.command
|
### .spec.gateway.sidecar.command
|
||||||
|
|
||||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L40)</sup>
|
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L44)</sup>
|
||||||
|
|
||||||
Entrypoint array. Not executed within a shell.
|
Entrypoint array. Not executed within a shell.
|
||||||
The container image's ENTRYPOINT is used if this is not provided.
|
The container image's ENTRYPOINT is used if this is not provided.
|
||||||
|
@ -3110,7 +3110,7 @@ Links:
|
||||||
|
|
||||||
### .spec.gateway.sidecar.controllerListenPort
|
### .spec.gateway.sidecar.controllerListenPort
|
||||||
|
|
||||||
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/integration/integration.go#L16)</sup>
|
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/integration/integration.go#L36)</sup>
|
||||||
|
|
||||||
ControllerListenPort defines on which port the sidecar container will be listening for controller requests
|
ControllerListenPort defines on which port the sidecar container will be listening for controller requests
|
||||||
|
|
||||||
|
@ -3168,7 +3168,7 @@ Lifecycle keeps actions that the management system should take in response to co
|
||||||
|
|
||||||
### .spec.gateway.sidecar.listenPort
|
### .spec.gateway.sidecar.listenPort
|
||||||
|
|
||||||
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/integration/integration.go#L12)</sup>
|
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/integration/integration.go#L32)</sup>
|
||||||
|
|
||||||
ListenPort defines on which port the sidecar container will be listening for connections
|
ListenPort defines on which port the sidecar container will be listening for connections
|
||||||
|
|
||||||
|
@ -3188,6 +3188,18 @@ Links:
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
|
### .spec.gateway.sidecar.method
|
||||||
|
|
||||||
|
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/policy/merge.go#L32)</sup>
|
||||||
|
|
||||||
|
Method defines the merge method
|
||||||
|
|
||||||
|
Possible Values:
|
||||||
|
* `"override"` (default) - Overrides values during configuration merge
|
||||||
|
* `"append"` - Appends, if possible, values during configuration merge
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
### .spec.gateway.sidecar.ports
|
### .spec.gateway.sidecar.ports
|
||||||
|
|
||||||
Type: `[]core.ContainerPort` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/networking.go#L39)</sup>
|
Type: `[]core.ContainerPort` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/networking.go#L39)</sup>
|
||||||
|
@ -3258,7 +3270,7 @@ VolumeMounts keeps list of pod volumes to mount into the container's filesystem.
|
||||||
|
|
||||||
### .spec.gateway.sidecar.workingDir
|
### .spec.gateway.sidecar.workingDir
|
||||||
|
|
||||||
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L55)</sup>
|
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L59)</sup>
|
||||||
|
|
||||||
Container's working directory.
|
Container's working directory.
|
||||||
If not specified, the container runtime's default will be used, which
|
If not specified, the container runtime's default will be used, which
|
||||||
|
|
|
@ -34,7 +34,7 @@ Links:
|
||||||
|
|
||||||
### .spec.deployment.args
|
### .spec.deployment.args
|
||||||
|
|
||||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L50)</sup>
|
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L54)</sup>
|
||||||
|
|
||||||
Arguments to the entrypoint.
|
Arguments to the entrypoint.
|
||||||
The container image's CMD is used if this is not provided.
|
The container image's CMD is used if this is not provided.
|
||||||
|
@ -59,7 +59,7 @@ AutomountServiceAccountToken indicates whether a service account token should be
|
||||||
|
|
||||||
### .spec.deployment.command
|
### .spec.deployment.command
|
||||||
|
|
||||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L40)</sup>
|
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L44)</sup>
|
||||||
|
|
||||||
Entrypoint array. Not executed within a shell.
|
Entrypoint array. Not executed within a shell.
|
||||||
The container image's ENTRYPOINT is used if this is not provided.
|
The container image's ENTRYPOINT is used if this is not provided.
|
||||||
|
@ -196,6 +196,18 @@ Links:
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
|
### .spec.deployment.method
|
||||||
|
|
||||||
|
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/policy/merge.go#L32)</sup>
|
||||||
|
|
||||||
|
Method defines the merge method
|
||||||
|
|
||||||
|
Possible Values:
|
||||||
|
* `"override"` (default) - Overrides values during configuration merge
|
||||||
|
* `"append"` - Appends, if possible, values during configuration merge
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
### .spec.deployment.nodeSelector
|
### .spec.deployment.nodeSelector
|
||||||
|
|
||||||
Type: `object` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/pod/resources/scheduling.go#L39)</sup>
|
Type: `object` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/pod/resources/scheduling.go#L39)</sup>
|
||||||
|
@ -408,7 +420,7 @@ Links:
|
||||||
|
|
||||||
### .spec.deployment.workingDir
|
### .spec.deployment.workingDir
|
||||||
|
|
||||||
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L55)</sup>
|
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L59)</sup>
|
||||||
|
|
||||||
Container's working directory.
|
Container's working directory.
|
||||||
If not specified, the container runtime's default will be used, which
|
If not specified, the container runtime's default will be used, which
|
||||||
|
@ -442,7 +454,7 @@ Links:
|
||||||
|
|
||||||
### .spec.init.args
|
### .spec.init.args
|
||||||
|
|
||||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L50)</sup>
|
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L54)</sup>
|
||||||
|
|
||||||
Arguments to the entrypoint.
|
Arguments to the entrypoint.
|
||||||
The container image's CMD is used if this is not provided.
|
The container image's CMD is used if this is not provided.
|
||||||
|
@ -467,7 +479,7 @@ AutomountServiceAccountToken indicates whether a service account token should be
|
||||||
|
|
||||||
### .spec.init.command
|
### .spec.init.command
|
||||||
|
|
||||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L40)</sup>
|
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L44)</sup>
|
||||||
|
|
||||||
Entrypoint array. Not executed within a shell.
|
Entrypoint array. Not executed within a shell.
|
||||||
The container image's ENTRYPOINT is used if this is not provided.
|
The container image's ENTRYPOINT is used if this is not provided.
|
||||||
|
@ -594,6 +606,18 @@ Links:
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
|
### .spec.init.method
|
||||||
|
|
||||||
|
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/policy/merge.go#L32)</sup>
|
||||||
|
|
||||||
|
Method defines the merge method
|
||||||
|
|
||||||
|
Possible Values:
|
||||||
|
* `"override"` (default) - Overrides values during configuration merge
|
||||||
|
* `"append"` - Appends, if possible, values during configuration merge
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
### .spec.init.nodeSelector
|
### .spec.init.nodeSelector
|
||||||
|
|
||||||
Type: `object` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/pod/resources/scheduling.go#L39)</sup>
|
Type: `object` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/pod/resources/scheduling.go#L39)</sup>
|
||||||
|
@ -754,7 +778,7 @@ Links:
|
||||||
|
|
||||||
### .spec.init.workingDir
|
### .spec.init.workingDir
|
||||||
|
|
||||||
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L55)</sup>
|
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L59)</sup>
|
||||||
|
|
||||||
Container's working directory.
|
Container's working directory.
|
||||||
If not specified, the container runtime's default will be used, which
|
If not specified, the container runtime's default will be used, which
|
||||||
|
@ -764,7 +788,7 @@ might be configured in the container image.
|
||||||
|
|
||||||
### .spec.integrationSidecar.args
|
### .spec.integrationSidecar.args
|
||||||
|
|
||||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L50)</sup>
|
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L54)</sup>
|
||||||
|
|
||||||
Arguments to the entrypoint.
|
Arguments to the entrypoint.
|
||||||
The container image's CMD is used if this is not provided.
|
The container image's CMD is used if this is not provided.
|
||||||
|
@ -781,7 +805,7 @@ Links:
|
||||||
|
|
||||||
### .spec.integrationSidecar.command
|
### .spec.integrationSidecar.command
|
||||||
|
|
||||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L40)</sup>
|
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L44)</sup>
|
||||||
|
|
||||||
Entrypoint array. Not executed within a shell.
|
Entrypoint array. Not executed within a shell.
|
||||||
The container image's ENTRYPOINT is used if this is not provided.
|
The container image's ENTRYPOINT is used if this is not provided.
|
||||||
|
@ -798,7 +822,7 @@ Links:
|
||||||
|
|
||||||
### .spec.integrationSidecar.controllerListenPort
|
### .spec.integrationSidecar.controllerListenPort
|
||||||
|
|
||||||
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/integration/integration.go#L16)</sup>
|
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/integration/integration.go#L36)</sup>
|
||||||
|
|
||||||
ControllerListenPort defines on which port the sidecar container will be listening for controller requests
|
ControllerListenPort defines on which port the sidecar container will be listening for controller requests
|
||||||
|
|
||||||
|
@ -856,7 +880,7 @@ Lifecycle keeps actions that the management system should take in response to co
|
||||||
|
|
||||||
### .spec.integrationSidecar.listenPort
|
### .spec.integrationSidecar.listenPort
|
||||||
|
|
||||||
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/integration/integration.go#L12)</sup>
|
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/integration/integration.go#L32)</sup>
|
||||||
|
|
||||||
ListenPort defines on which port the sidecar container will be listening for connections
|
ListenPort defines on which port the sidecar container will be listening for connections
|
||||||
|
|
||||||
|
@ -876,6 +900,18 @@ Links:
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
|
### .spec.integrationSidecar.method
|
||||||
|
|
||||||
|
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/policy/merge.go#L32)</sup>
|
||||||
|
|
||||||
|
Method defines the merge method
|
||||||
|
|
||||||
|
Possible Values:
|
||||||
|
* `"override"` (default) - Overrides values during configuration merge
|
||||||
|
* `"append"` - Appends, if possible, values during configuration merge
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
### .spec.integrationSidecar.ports
|
### .spec.integrationSidecar.ports
|
||||||
|
|
||||||
Type: `[]core.ContainerPort` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/networking.go#L39)</sup>
|
Type: `[]core.ContainerPort` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/networking.go#L39)</sup>
|
||||||
|
@ -946,7 +982,7 @@ VolumeMounts keeps list of pod volumes to mount into the container's filesystem.
|
||||||
|
|
||||||
### .spec.integrationSidecar.workingDir
|
### .spec.integrationSidecar.workingDir
|
||||||
|
|
||||||
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L55)</sup>
|
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L59)</sup>
|
||||||
|
|
||||||
Container's working directory.
|
Container's working directory.
|
||||||
If not specified, the container runtime's default will be used, which
|
If not specified, the container runtime's default will be used, which
|
||||||
|
@ -980,7 +1016,7 @@ Links:
|
||||||
|
|
||||||
### .spec.jobsTemplates.featurization.cpu.args
|
### .spec.jobsTemplates.featurization.cpu.args
|
||||||
|
|
||||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L50)</sup>
|
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L54)</sup>
|
||||||
|
|
||||||
Arguments to the entrypoint.
|
Arguments to the entrypoint.
|
||||||
The container image's CMD is used if this is not provided.
|
The container image's CMD is used if this is not provided.
|
||||||
|
@ -1005,7 +1041,7 @@ AutomountServiceAccountToken indicates whether a service account token should be
|
||||||
|
|
||||||
### .spec.jobsTemplates.featurization.cpu.command
|
### .spec.jobsTemplates.featurization.cpu.command
|
||||||
|
|
||||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L40)</sup>
|
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L44)</sup>
|
||||||
|
|
||||||
Entrypoint array. Not executed within a shell.
|
Entrypoint array. Not executed within a shell.
|
||||||
The container image's ENTRYPOINT is used if this is not provided.
|
The container image's ENTRYPOINT is used if this is not provided.
|
||||||
|
@ -1132,6 +1168,18 @@ Links:
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
|
### .spec.jobsTemplates.featurization.cpu.method
|
||||||
|
|
||||||
|
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/policy/merge.go#L32)</sup>
|
||||||
|
|
||||||
|
Method defines the merge method
|
||||||
|
|
||||||
|
Possible Values:
|
||||||
|
* `"override"` (default) - Overrides values during configuration merge
|
||||||
|
* `"append"` - Appends, if possible, values during configuration merge
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
### .spec.jobsTemplates.featurization.cpu.nodeSelector
|
### .spec.jobsTemplates.featurization.cpu.nodeSelector
|
||||||
|
|
||||||
Type: `object` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/pod/resources/scheduling.go#L39)</sup>
|
Type: `object` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/pod/resources/scheduling.go#L39)</sup>
|
||||||
|
@ -1292,7 +1340,7 @@ Links:
|
||||||
|
|
||||||
### .spec.jobsTemplates.featurization.cpu.workingDir
|
### .spec.jobsTemplates.featurization.cpu.workingDir
|
||||||
|
|
||||||
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L55)</sup>
|
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L59)</sup>
|
||||||
|
|
||||||
Container's working directory.
|
Container's working directory.
|
||||||
If not specified, the container runtime's default will be used, which
|
If not specified, the container runtime's default will be used, which
|
||||||
|
@ -1326,7 +1374,7 @@ Links:
|
||||||
|
|
||||||
### .spec.jobsTemplates.featurization.gpu.args
|
### .spec.jobsTemplates.featurization.gpu.args
|
||||||
|
|
||||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L50)</sup>
|
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L54)</sup>
|
||||||
|
|
||||||
Arguments to the entrypoint.
|
Arguments to the entrypoint.
|
||||||
The container image's CMD is used if this is not provided.
|
The container image's CMD is used if this is not provided.
|
||||||
|
@ -1351,7 +1399,7 @@ AutomountServiceAccountToken indicates whether a service account token should be
|
||||||
|
|
||||||
### .spec.jobsTemplates.featurization.gpu.command
|
### .spec.jobsTemplates.featurization.gpu.command
|
||||||
|
|
||||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L40)</sup>
|
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L44)</sup>
|
||||||
|
|
||||||
Entrypoint array. Not executed within a shell.
|
Entrypoint array. Not executed within a shell.
|
||||||
The container image's ENTRYPOINT is used if this is not provided.
|
The container image's ENTRYPOINT is used if this is not provided.
|
||||||
|
@ -1478,6 +1526,18 @@ Links:
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
|
### .spec.jobsTemplates.featurization.gpu.method
|
||||||
|
|
||||||
|
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/policy/merge.go#L32)</sup>
|
||||||
|
|
||||||
|
Method defines the merge method
|
||||||
|
|
||||||
|
Possible Values:
|
||||||
|
* `"override"` (default) - Overrides values during configuration merge
|
||||||
|
* `"append"` - Appends, if possible, values during configuration merge
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
### .spec.jobsTemplates.featurization.gpu.nodeSelector
|
### .spec.jobsTemplates.featurization.gpu.nodeSelector
|
||||||
|
|
||||||
Type: `object` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/pod/resources/scheduling.go#L39)</sup>
|
Type: `object` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/pod/resources/scheduling.go#L39)</sup>
|
||||||
|
@ -1638,7 +1698,7 @@ Links:
|
||||||
|
|
||||||
### .spec.jobsTemplates.featurization.gpu.workingDir
|
### .spec.jobsTemplates.featurization.gpu.workingDir
|
||||||
|
|
||||||
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L55)</sup>
|
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L59)</sup>
|
||||||
|
|
||||||
Container's working directory.
|
Container's working directory.
|
||||||
If not specified, the container runtime's default will be used, which
|
If not specified, the container runtime's default will be used, which
|
||||||
|
@ -1672,7 +1732,7 @@ Links:
|
||||||
|
|
||||||
### .spec.jobsTemplates.prediction.cpu.args
|
### .spec.jobsTemplates.prediction.cpu.args
|
||||||
|
|
||||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L50)</sup>
|
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L54)</sup>
|
||||||
|
|
||||||
Arguments to the entrypoint.
|
Arguments to the entrypoint.
|
||||||
The container image's CMD is used if this is not provided.
|
The container image's CMD is used if this is not provided.
|
||||||
|
@ -1697,7 +1757,7 @@ AutomountServiceAccountToken indicates whether a service account token should be
|
||||||
|
|
||||||
### .spec.jobsTemplates.prediction.cpu.command
|
### .spec.jobsTemplates.prediction.cpu.command
|
||||||
|
|
||||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L40)</sup>
|
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L44)</sup>
|
||||||
|
|
||||||
Entrypoint array. Not executed within a shell.
|
Entrypoint array. Not executed within a shell.
|
||||||
The container image's ENTRYPOINT is used if this is not provided.
|
The container image's ENTRYPOINT is used if this is not provided.
|
||||||
|
@ -1824,6 +1884,18 @@ Links:
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
|
### .spec.jobsTemplates.prediction.cpu.method
|
||||||
|
|
||||||
|
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/policy/merge.go#L32)</sup>
|
||||||
|
|
||||||
|
Method defines the merge method
|
||||||
|
|
||||||
|
Possible Values:
|
||||||
|
* `"override"` (default) - Overrides values during configuration merge
|
||||||
|
* `"append"` - Appends, if possible, values during configuration merge
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
### .spec.jobsTemplates.prediction.cpu.nodeSelector
|
### .spec.jobsTemplates.prediction.cpu.nodeSelector
|
||||||
|
|
||||||
Type: `object` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/pod/resources/scheduling.go#L39)</sup>
|
Type: `object` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/pod/resources/scheduling.go#L39)</sup>
|
||||||
|
@ -1984,7 +2056,7 @@ Links:
|
||||||
|
|
||||||
### .spec.jobsTemplates.prediction.cpu.workingDir
|
### .spec.jobsTemplates.prediction.cpu.workingDir
|
||||||
|
|
||||||
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L55)</sup>
|
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L59)</sup>
|
||||||
|
|
||||||
Container's working directory.
|
Container's working directory.
|
||||||
If not specified, the container runtime's default will be used, which
|
If not specified, the container runtime's default will be used, which
|
||||||
|
@ -2018,7 +2090,7 @@ Links:
|
||||||
|
|
||||||
### .spec.jobsTemplates.prediction.gpu.args
|
### .spec.jobsTemplates.prediction.gpu.args
|
||||||
|
|
||||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L50)</sup>
|
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L54)</sup>
|
||||||
|
|
||||||
Arguments to the entrypoint.
|
Arguments to the entrypoint.
|
||||||
The container image's CMD is used if this is not provided.
|
The container image's CMD is used if this is not provided.
|
||||||
|
@ -2043,7 +2115,7 @@ AutomountServiceAccountToken indicates whether a service account token should be
|
||||||
|
|
||||||
### .spec.jobsTemplates.prediction.gpu.command
|
### .spec.jobsTemplates.prediction.gpu.command
|
||||||
|
|
||||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L40)</sup>
|
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L44)</sup>
|
||||||
|
|
||||||
Entrypoint array. Not executed within a shell.
|
Entrypoint array. Not executed within a shell.
|
||||||
The container image's ENTRYPOINT is used if this is not provided.
|
The container image's ENTRYPOINT is used if this is not provided.
|
||||||
|
@ -2170,6 +2242,18 @@ Links:
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
|
### .spec.jobsTemplates.prediction.gpu.method
|
||||||
|
|
||||||
|
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/policy/merge.go#L32)</sup>
|
||||||
|
|
||||||
|
Method defines the merge method
|
||||||
|
|
||||||
|
Possible Values:
|
||||||
|
* `"override"` (default) - Overrides values during configuration merge
|
||||||
|
* `"append"` - Appends, if possible, values during configuration merge
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
### .spec.jobsTemplates.prediction.gpu.nodeSelector
|
### .spec.jobsTemplates.prediction.gpu.nodeSelector
|
||||||
|
|
||||||
Type: `object` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/pod/resources/scheduling.go#L39)</sup>
|
Type: `object` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/pod/resources/scheduling.go#L39)</sup>
|
||||||
|
@ -2330,7 +2414,7 @@ Links:
|
||||||
|
|
||||||
### .spec.jobsTemplates.prediction.gpu.workingDir
|
### .spec.jobsTemplates.prediction.gpu.workingDir
|
||||||
|
|
||||||
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L55)</sup>
|
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L59)</sup>
|
||||||
|
|
||||||
Container's working directory.
|
Container's working directory.
|
||||||
If not specified, the container runtime's default will be used, which
|
If not specified, the container runtime's default will be used, which
|
||||||
|
@ -2364,7 +2448,7 @@ Links:
|
||||||
|
|
||||||
### .spec.jobsTemplates.training.cpu.args
|
### .spec.jobsTemplates.training.cpu.args
|
||||||
|
|
||||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L50)</sup>
|
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L54)</sup>
|
||||||
|
|
||||||
Arguments to the entrypoint.
|
Arguments to the entrypoint.
|
||||||
The container image's CMD is used if this is not provided.
|
The container image's CMD is used if this is not provided.
|
||||||
|
@ -2389,7 +2473,7 @@ AutomountServiceAccountToken indicates whether a service account token should be
|
||||||
|
|
||||||
### .spec.jobsTemplates.training.cpu.command
|
### .spec.jobsTemplates.training.cpu.command
|
||||||
|
|
||||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L40)</sup>
|
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L44)</sup>
|
||||||
|
|
||||||
Entrypoint array. Not executed within a shell.
|
Entrypoint array. Not executed within a shell.
|
||||||
The container image's ENTRYPOINT is used if this is not provided.
|
The container image's ENTRYPOINT is used if this is not provided.
|
||||||
|
@ -2516,6 +2600,18 @@ Links:
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
|
### .spec.jobsTemplates.training.cpu.method
|
||||||
|
|
||||||
|
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/policy/merge.go#L32)</sup>
|
||||||
|
|
||||||
|
Method defines the merge method
|
||||||
|
|
||||||
|
Possible Values:
|
||||||
|
* `"override"` (default) - Overrides values during configuration merge
|
||||||
|
* `"append"` - Appends, if possible, values during configuration merge
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
### .spec.jobsTemplates.training.cpu.nodeSelector
|
### .spec.jobsTemplates.training.cpu.nodeSelector
|
||||||
|
|
||||||
Type: `object` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/pod/resources/scheduling.go#L39)</sup>
|
Type: `object` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/pod/resources/scheduling.go#L39)</sup>
|
||||||
|
@ -2676,7 +2772,7 @@ Links:
|
||||||
|
|
||||||
### .spec.jobsTemplates.training.cpu.workingDir
|
### .spec.jobsTemplates.training.cpu.workingDir
|
||||||
|
|
||||||
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L55)</sup>
|
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L59)</sup>
|
||||||
|
|
||||||
Container's working directory.
|
Container's working directory.
|
||||||
If not specified, the container runtime's default will be used, which
|
If not specified, the container runtime's default will be used, which
|
||||||
|
@ -2710,7 +2806,7 @@ Links:
|
||||||
|
|
||||||
### .spec.jobsTemplates.training.gpu.args
|
### .spec.jobsTemplates.training.gpu.args
|
||||||
|
|
||||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L50)</sup>
|
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L54)</sup>
|
||||||
|
|
||||||
Arguments to the entrypoint.
|
Arguments to the entrypoint.
|
||||||
The container image's CMD is used if this is not provided.
|
The container image's CMD is used if this is not provided.
|
||||||
|
@ -2735,7 +2831,7 @@ AutomountServiceAccountToken indicates whether a service account token should be
|
||||||
|
|
||||||
### .spec.jobsTemplates.training.gpu.command
|
### .spec.jobsTemplates.training.gpu.command
|
||||||
|
|
||||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L40)</sup>
|
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L44)</sup>
|
||||||
|
|
||||||
Entrypoint array. Not executed within a shell.
|
Entrypoint array. Not executed within a shell.
|
||||||
The container image's ENTRYPOINT is used if this is not provided.
|
The container image's ENTRYPOINT is used if this is not provided.
|
||||||
|
@ -2862,6 +2958,18 @@ Links:
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
|
### .spec.jobsTemplates.training.gpu.method
|
||||||
|
|
||||||
|
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/policy/merge.go#L32)</sup>
|
||||||
|
|
||||||
|
Method defines the merge method
|
||||||
|
|
||||||
|
Possible Values:
|
||||||
|
* `"override"` (default) - Overrides values during configuration merge
|
||||||
|
* `"append"` - Appends, if possible, values during configuration merge
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
### .spec.jobsTemplates.training.gpu.nodeSelector
|
### .spec.jobsTemplates.training.gpu.nodeSelector
|
||||||
|
|
||||||
Type: `object` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/pod/resources/scheduling.go#L39)</sup>
|
Type: `object` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/pod/resources/scheduling.go#L39)</sup>
|
||||||
|
@ -3022,7 +3130,7 @@ Links:
|
||||||
|
|
||||||
### .spec.jobsTemplates.training.gpu.workingDir
|
### .spec.jobsTemplates.training.gpu.workingDir
|
||||||
|
|
||||||
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L55)</sup>
|
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L59)</sup>
|
||||||
|
|
||||||
Container's working directory.
|
Container's working directory.
|
||||||
If not specified, the container runtime's default will be used, which
|
If not specified, the container runtime's default will be used, which
|
||||||
|
|
|
@ -48,7 +48,7 @@ VolumeMounts keeps list of pod volumes to mount into the container's filesystem.
|
||||||
|
|
||||||
### .spec.template.container.containers.\<string\>.args
|
### .spec.template.container.containers.\<string\>.args
|
||||||
|
|
||||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L50)</sup>
|
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L54)</sup>
|
||||||
|
|
||||||
Arguments to the entrypoint.
|
Arguments to the entrypoint.
|
||||||
The container image's CMD is used if this is not provided.
|
The container image's CMD is used if this is not provided.
|
||||||
|
@ -65,7 +65,7 @@ Links:
|
||||||
|
|
||||||
### .spec.template.container.containers.\<string\>.command
|
### .spec.template.container.containers.\<string\>.command
|
||||||
|
|
||||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L40)</sup>
|
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L44)</sup>
|
||||||
|
|
||||||
Entrypoint array. Not executed within a shell.
|
Entrypoint array. Not executed within a shell.
|
||||||
The container image's ENTRYPOINT is used if this is not provided.
|
The container image's ENTRYPOINT is used if this is not provided.
|
||||||
|
@ -140,6 +140,18 @@ Links:
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
|
### .spec.template.container.containers.\<string\>.method
|
||||||
|
|
||||||
|
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/policy/merge.go#L32)</sup>
|
||||||
|
|
||||||
|
Method defines the merge method
|
||||||
|
|
||||||
|
Possible Values:
|
||||||
|
* `"override"` (default) - Overrides values during configuration merge
|
||||||
|
* `"append"` - Appends, if possible, values during configuration merge
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
### .spec.template.container.containers.\<string\>.ports
|
### .spec.template.container.containers.\<string\>.ports
|
||||||
|
|
||||||
Type: `[]core.ContainerPort` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/networking.go#L39)</sup>
|
Type: `[]core.ContainerPort` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/networking.go#L39)</sup>
|
||||||
|
@ -210,7 +222,7 @@ VolumeMounts keeps list of pod volumes to mount into the container's filesystem.
|
||||||
|
|
||||||
### .spec.template.container.containers.\<string\>.workingDir
|
### .spec.template.container.containers.\<string\>.workingDir
|
||||||
|
|
||||||
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L55)</sup>
|
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L59)</sup>
|
||||||
|
|
||||||
Container's working directory.
|
Container's working directory.
|
||||||
If not specified, the container runtime's default will be used, which
|
If not specified, the container runtime's default will be used, which
|
||||||
|
@ -394,5 +406,5 @@ Links:
|
||||||
|
|
||||||
### .spec.template.priority
|
### .spec.template.priority
|
||||||
|
|
||||||
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/profile_template.go#L31)</sup>
|
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/profile_template.go#L32)</sup>
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ Links:
|
||||||
|
|
||||||
### .spec.deployment.args
|
### .spec.deployment.args
|
||||||
|
|
||||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L50)</sup>
|
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L54)</sup>
|
||||||
|
|
||||||
Arguments to the entrypoint.
|
Arguments to the entrypoint.
|
||||||
The container image's CMD is used if this is not provided.
|
The container image's CMD is used if this is not provided.
|
||||||
|
@ -59,7 +59,7 @@ AutomountServiceAccountToken indicates whether a service account token should be
|
||||||
|
|
||||||
### .spec.deployment.command
|
### .spec.deployment.command
|
||||||
|
|
||||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L40)</sup>
|
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L44)</sup>
|
||||||
|
|
||||||
Entrypoint array. Not executed within a shell.
|
Entrypoint array. Not executed within a shell.
|
||||||
The container image's ENTRYPOINT is used if this is not provided.
|
The container image's ENTRYPOINT is used if this is not provided.
|
||||||
|
@ -186,6 +186,18 @@ Links:
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
|
### .spec.deployment.method
|
||||||
|
|
||||||
|
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/policy/merge.go#L32)</sup>
|
||||||
|
|
||||||
|
Method defines the merge method
|
||||||
|
|
||||||
|
Possible Values:
|
||||||
|
* `"override"` (default) - Overrides values during configuration merge
|
||||||
|
* `"append"` - Appends, if possible, values during configuration merge
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
### .spec.deployment.nodeSelector
|
### .spec.deployment.nodeSelector
|
||||||
|
|
||||||
Type: `object` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/pod/resources/scheduling.go#L39)</sup>
|
Type: `object` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/pod/resources/scheduling.go#L39)</sup>
|
||||||
|
@ -388,7 +400,7 @@ Links:
|
||||||
|
|
||||||
### .spec.deployment.workingDir
|
### .spec.deployment.workingDir
|
||||||
|
|
||||||
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L55)</sup>
|
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L59)</sup>
|
||||||
|
|
||||||
Container's working directory.
|
Container's working directory.
|
||||||
If not specified, the container runtime's default will be used, which
|
If not specified, the container runtime's default will be used, which
|
||||||
|
@ -406,7 +418,7 @@ DeploymentName define deployment name used in the object. Immutable
|
||||||
|
|
||||||
### .spec.integrationSidecar.args
|
### .spec.integrationSidecar.args
|
||||||
|
|
||||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L50)</sup>
|
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L54)</sup>
|
||||||
|
|
||||||
Arguments to the entrypoint.
|
Arguments to the entrypoint.
|
||||||
The container image's CMD is used if this is not provided.
|
The container image's CMD is used if this is not provided.
|
||||||
|
@ -423,7 +435,7 @@ Links:
|
||||||
|
|
||||||
### .spec.integrationSidecar.command
|
### .spec.integrationSidecar.command
|
||||||
|
|
||||||
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L40)</sup>
|
Type: `array` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L44)</sup>
|
||||||
|
|
||||||
Entrypoint array. Not executed within a shell.
|
Entrypoint array. Not executed within a shell.
|
||||||
The container image's ENTRYPOINT is used if this is not provided.
|
The container image's ENTRYPOINT is used if this is not provided.
|
||||||
|
@ -440,7 +452,7 @@ Links:
|
||||||
|
|
||||||
### .spec.integrationSidecar.controllerListenPort
|
### .spec.integrationSidecar.controllerListenPort
|
||||||
|
|
||||||
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/integration/integration.go#L16)</sup>
|
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/integration/integration.go#L36)</sup>
|
||||||
|
|
||||||
ControllerListenPort defines on which port the sidecar container will be listening for controller requests
|
ControllerListenPort defines on which port the sidecar container will be listening for controller requests
|
||||||
|
|
||||||
|
@ -498,7 +510,7 @@ Lifecycle keeps actions that the management system should take in response to co
|
||||||
|
|
||||||
### .spec.integrationSidecar.listenPort
|
### .spec.integrationSidecar.listenPort
|
||||||
|
|
||||||
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/integration/integration.go#L12)</sup>
|
Type: `integer` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/integration/integration.go#L32)</sup>
|
||||||
|
|
||||||
ListenPort defines on which port the sidecar container will be listening for connections
|
ListenPort defines on which port the sidecar container will be listening for connections
|
||||||
|
|
||||||
|
@ -518,6 +530,18 @@ Links:
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
|
### .spec.integrationSidecar.method
|
||||||
|
|
||||||
|
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/policy/merge.go#L32)</sup>
|
||||||
|
|
||||||
|
Method defines the merge method
|
||||||
|
|
||||||
|
Possible Values:
|
||||||
|
* `"override"` (default) - Overrides values during configuration merge
|
||||||
|
* `"append"` - Appends, if possible, values during configuration merge
|
||||||
|
|
||||||
|
***
|
||||||
|
|
||||||
### .spec.integrationSidecar.ports
|
### .spec.integrationSidecar.ports
|
||||||
|
|
||||||
Type: `[]core.ContainerPort` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/networking.go#L39)</sup>
|
Type: `[]core.ContainerPort` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/networking.go#L39)</sup>
|
||||||
|
@ -588,7 +612,7 @@ VolumeMounts keeps list of pod volumes to mount into the container's filesystem.
|
||||||
|
|
||||||
### .spec.integrationSidecar.workingDir
|
### .spec.integrationSidecar.workingDir
|
||||||
|
|
||||||
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L55)</sup>
|
Type: `string` <sup>[\[ref\]](https://github.com/arangodb/kube-arangodb/blob/1.2.42/pkg/apis/scheduler/v1beta1/container/resources/core.go#L59)</sup>
|
||||||
|
|
||||||
Container's working directory.
|
Container's working directory.
|
||||||
If not specified, the container runtime's default will be used, which
|
If not specified, the container runtime's default will be used, which
|
||||||
|
|
|
@ -183,6 +183,7 @@ func Test_GenerateAPIDocs(t *testing.T) {
|
||||||
"scheduler/v1beta1/integration",
|
"scheduler/v1beta1/integration",
|
||||||
"scheduler/v1beta1/pod",
|
"scheduler/v1beta1/pod",
|
||||||
"scheduler/v1beta1/pod/resources",
|
"scheduler/v1beta1/pod/resources",
|
||||||
|
"scheduler/v1beta1/policy",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -257,6 +258,7 @@ func Test_GenerateAPIDocs(t *testing.T) {
|
||||||
"scheduler/v1beta1/integration",
|
"scheduler/v1beta1/integration",
|
||||||
"scheduler/v1beta1/pod",
|
"scheduler/v1beta1/pod",
|
||||||
"scheduler/v1beta1/pod/resources",
|
"scheduler/v1beta1/pod/resources",
|
||||||
|
"scheduler/v1beta1/policy",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -289,6 +291,7 @@ func Test_GenerateAPIDocs(t *testing.T) {
|
||||||
"scheduler/v1beta1/integration",
|
"scheduler/v1beta1/integration",
|
||||||
"scheduler/v1beta1/pod",
|
"scheduler/v1beta1/pod",
|
||||||
"scheduler/v1beta1/pod/resources",
|
"scheduler/v1beta1/pod/resources",
|
||||||
|
"scheduler/v1beta1/policy",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -329,6 +332,7 @@ func Test_GenerateAPIDocs(t *testing.T) {
|
||||||
"scheduler/v1beta1/integration",
|
"scheduler/v1beta1/integration",
|
||||||
"scheduler/v1beta1/pod",
|
"scheduler/v1beta1/pod",
|
||||||
"scheduler/v1beta1/pod/resources",
|
"scheduler/v1beta1/pod/resources",
|
||||||
|
"scheduler/v1beta1/policy",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -24,11 +24,15 @@ import (
|
||||||
core "k8s.io/api/core/v1"
|
core "k8s.io/api/core/v1"
|
||||||
|
|
||||||
"github.com/arangodb/kube-arangodb/pkg/apis/scheduler/v1beta1/interfaces"
|
"github.com/arangodb/kube-arangodb/pkg/apis/scheduler/v1beta1/interfaces"
|
||||||
|
schedulerPolicyApi "github.com/arangodb/kube-arangodb/pkg/apis/scheduler/v1beta1/policy"
|
||||||
|
shared "github.com/arangodb/kube-arangodb/pkg/apis/shared"
|
||||||
)
|
)
|
||||||
|
|
||||||
var _ interfaces.Container[Core] = &Core{}
|
var _ interfaces.Container[Core] = &Core{}
|
||||||
|
|
||||||
type Core struct {
|
type Core struct {
|
||||||
|
*schedulerPolicyApi.Policy `json:",inline"`
|
||||||
|
|
||||||
// Entrypoint array. Not executed within a shell.
|
// Entrypoint array. Not executed within a shell.
|
||||||
// The container image's ENTRYPOINT is used if this is not provided.
|
// 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
|
// Variable references $(VAR_NAME) are expanded using the container's environment. If a variable
|
||||||
|
@ -78,9 +82,25 @@ func (c *Core) With(other *Core) *Core {
|
||||||
return c.DeepCopy()
|
return c.DeepCopy()
|
||||||
}
|
}
|
||||||
|
|
||||||
return other.DeepCopy()
|
if c == nil {
|
||||||
|
return other.DeepCopy()
|
||||||
|
}
|
||||||
|
|
||||||
|
o := other.DeepCopy()
|
||||||
|
|
||||||
|
if o.GetMethod(schedulerPolicyApi.Override) == schedulerPolicyApi.Append {
|
||||||
|
o.Args = append(c.Args, o.Args...)
|
||||||
|
}
|
||||||
|
|
||||||
|
return o
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Core) Validate() error {
|
func (c *Core) Validate() error {
|
||||||
return nil
|
if c == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return shared.WithErrors(
|
||||||
|
shared.ValidateOptionalInterface(c.Policy),
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,6 +25,9 @@ import (
|
||||||
|
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
core "k8s.io/api/core/v1"
|
core "k8s.io/api/core/v1"
|
||||||
|
|
||||||
|
schedulerPolicyApi "github.com/arangodb/kube-arangodb/pkg/apis/scheduler/v1beta1/policy"
|
||||||
|
"github.com/arangodb/kube-arangodb/pkg/util"
|
||||||
)
|
)
|
||||||
|
|
||||||
func applyCore(t *testing.T, template *core.PodTemplateSpec, container *core.Container, ns ...*Core) func(in func(t *testing.T, pod *core.PodTemplateSpec, container *core.Container)) {
|
func applyCore(t *testing.T, template *core.PodTemplateSpec, container *core.Container, ns ...*Core) func(in func(t *testing.T, pod *core.PodTemplateSpec, container *core.Container)) {
|
||||||
|
@ -101,6 +104,28 @@ func Test_Core(t *testing.T) {
|
||||||
require.Len(t, container.Command, 1)
|
require.Len(t, container.Command, 1)
|
||||||
require.Contains(t, container.Command, "B")
|
require.Contains(t, container.Command, "B")
|
||||||
|
|
||||||
|
require.EqualValues(t, "", container.WorkingDir)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
t.Run("With Append", func(t *testing.T) {
|
||||||
|
applyCore(t, &core.PodTemplateSpec{}, &core.Container{}, &Core{
|
||||||
|
Command: []string{"B"},
|
||||||
|
Args: []string{"A"},
|
||||||
|
}, &Core{
|
||||||
|
Policy: &schedulerPolicyApi.Policy{
|
||||||
|
Method: util.NewType(schedulerPolicyApi.Append),
|
||||||
|
},
|
||||||
|
Command: []string{"C"},
|
||||||
|
Args: []string{"D"},
|
||||||
|
})(func(t *testing.T, _ *core.PodTemplateSpec, container *core.Container) {
|
||||||
|
require.Len(t, container.Args, 2)
|
||||||
|
require.Contains(t, container.Args, "A")
|
||||||
|
require.Contains(t, container.Args, "D")
|
||||||
|
require.Equal(t, []string{"A", "D"}, container.Args)
|
||||||
|
|
||||||
|
require.Len(t, container.Command, 1)
|
||||||
|
require.Contains(t, container.Command, "C")
|
||||||
|
|
||||||
require.EqualValues(t, "", container.WorkingDir)
|
require.EqualValues(t, "", container.WorkingDir)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -26,12 +26,18 @@
|
||||||
package resources
|
package resources
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
policy "github.com/arangodb/kube-arangodb/pkg/apis/scheduler/v1beta1/policy"
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
func (in *Core) DeepCopyInto(out *Core) {
|
func (in *Core) DeepCopyInto(out *Core) {
|
||||||
*out = *in
|
*out = *in
|
||||||
|
if in.Policy != nil {
|
||||||
|
in, out := &in.Policy, &out.Policy
|
||||||
|
*out = new(policy.Policy)
|
||||||
|
(*in).DeepCopyInto(*out)
|
||||||
|
}
|
||||||
if in.Command != nil {
|
if in.Command != nil {
|
||||||
in, out := &in.Command, &out.Command
|
in, out := &in.Command, &out.Command
|
||||||
*out = make([]string, len(*in))
|
*out = make([]string, len(*in))
|
||||||
|
|
23
pkg/apis/scheduler/v1beta1/policy/doc.go
Normal file
23
pkg/apis/scheduler/v1beta1/policy/doc.go
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
//
|
||||||
|
// 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
|
||||||
|
//
|
||||||
|
|
||||||
|
// +k8s:deepcopy-gen=package
|
||||||
|
// +groupName=scheduler.arangodb.com
|
||||||
|
package policy
|
71
pkg/apis/scheduler/v1beta1/policy/merge.go
Normal file
71
pkg/apis/scheduler/v1beta1/policy/merge.go
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
//
|
||||||
|
// 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 policy
|
||||||
|
|
||||||
|
import (
|
||||||
|
shared "github.com/arangodb/kube-arangodb/pkg/apis/shared"
|
||||||
|
"github.com/arangodb/kube-arangodb/pkg/util/errors"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Policy struct {
|
||||||
|
// Method defines the merge method
|
||||||
|
// +doc/enum: override|Overrides values during configuration merge
|
||||||
|
// +doc/enum: append|Appends, if possible, values during configuration merge
|
||||||
|
Method *Method `json:"method,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *Policy) Validate() error {
|
||||||
|
if m == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return shared.WithErrors(
|
||||||
|
shared.PrefixResourceErrors("method", shared.ValidateOptionalInterface(m.Method)),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *Policy) GetMethod(d Method) Method {
|
||||||
|
if m == nil || m.Method == nil {
|
||||||
|
return d
|
||||||
|
}
|
||||||
|
|
||||||
|
return *m.Method
|
||||||
|
}
|
||||||
|
|
||||||
|
type Method string
|
||||||
|
|
||||||
|
func (m *Method) Validate() error {
|
||||||
|
if m == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
switch v := *m; v {
|
||||||
|
case Override, Append:
|
||||||
|
return nil
|
||||||
|
default:
|
||||||
|
return errors.Errorf("Invalid method: %s", v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
Override Method = "override"
|
||||||
|
Append Method = "append"
|
||||||
|
)
|
47
pkg/apis/scheduler/v1beta1/policy/zz_generated.deepcopy.go
generated
Normal file
47
pkg/apis/scheduler/v1beta1/policy/zz_generated.deepcopy.go
generated
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
//go:build !ignore_autogenerated
|
||||||
|
// +build !ignore_autogenerated
|
||||||
|
|
||||||
|
//
|
||||||
|
// 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
|
||||||
|
//
|
||||||
|
|
||||||
|
// Code generated by deepcopy-gen. DO NOT EDIT.
|
||||||
|
|
||||||
|
package policy
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *Policy) DeepCopyInto(out *Policy) {
|
||||||
|
*out = *in
|
||||||
|
if in.Method != nil {
|
||||||
|
in, out := &in.Method, &out.Method
|
||||||
|
*out = new(Method)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Policy.
|
||||||
|
func (in *Policy) DeepCopy() *Policy {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(Policy)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
|
@ -594,6 +594,8 @@ v1alpha1:
|
||||||
format: int32
|
format: int32
|
||||||
type: integer
|
type: integer
|
||||||
type: object
|
type: object
|
||||||
|
method:
|
||||||
|
type: string
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
additionalProperties:
|
additionalProperties:
|
||||||
type: string
|
type: string
|
||||||
|
@ -1898,6 +1900,8 @@ v1alpha1:
|
||||||
format: int32
|
format: int32
|
||||||
type: integer
|
type: integer
|
||||||
type: object
|
type: object
|
||||||
|
method:
|
||||||
|
type: string
|
||||||
ports:
|
ports:
|
||||||
items:
|
items:
|
||||||
properties:
|
properties:
|
||||||
|
|
|
@ -6828,6 +6828,8 @@ v1:
|
||||||
format: int32
|
format: int32
|
||||||
type: integer
|
type: integer
|
||||||
type: object
|
type: object
|
||||||
|
method:
|
||||||
|
type: string
|
||||||
ports:
|
ports:
|
||||||
items:
|
items:
|
||||||
properties:
|
properties:
|
||||||
|
@ -23350,6 +23352,8 @@ v1alpha:
|
||||||
format: int32
|
format: int32
|
||||||
type: integer
|
type: integer
|
||||||
type: object
|
type: object
|
||||||
|
method:
|
||||||
|
type: string
|
||||||
ports:
|
ports:
|
||||||
items:
|
items:
|
||||||
properties:
|
properties:
|
||||||
|
@ -39872,6 +39876,8 @@ v2alpha1:
|
||||||
format: int32
|
format: int32
|
||||||
type: integer
|
type: integer
|
||||||
type: object
|
type: object
|
||||||
|
method:
|
||||||
|
type: string
|
||||||
ports:
|
ports:
|
||||||
items:
|
items:
|
||||||
properties:
|
properties:
|
||||||
|
|
|
@ -13624,6 +13624,8 @@ v1beta1:
|
||||||
format: int32
|
format: int32
|
||||||
type: integer
|
type: integer
|
||||||
type: object
|
type: object
|
||||||
|
method:
|
||||||
|
type: string
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
additionalProperties:
|
additionalProperties:
|
||||||
type: string
|
type: string
|
||||||
|
@ -15262,6 +15264,8 @@ v1beta1:
|
||||||
format: int32
|
format: int32
|
||||||
type: integer
|
type: integer
|
||||||
type: object
|
type: object
|
||||||
|
method:
|
||||||
|
type: string
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
additionalProperties:
|
additionalProperties:
|
||||||
type: string
|
type: string
|
||||||
|
@ -16533,6 +16537,8 @@ v1beta1:
|
||||||
format: int32
|
format: int32
|
||||||
type: integer
|
type: integer
|
||||||
type: object
|
type: object
|
||||||
|
method:
|
||||||
|
type: string
|
||||||
ports:
|
ports:
|
||||||
items:
|
items:
|
||||||
properties:
|
properties:
|
||||||
|
@ -17371,6 +17377,8 @@ v1beta1:
|
||||||
format: int32
|
format: int32
|
||||||
type: integer
|
type: integer
|
||||||
type: object
|
type: object
|
||||||
|
method:
|
||||||
|
type: string
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
additionalProperties:
|
additionalProperties:
|
||||||
type: string
|
type: string
|
||||||
|
@ -18987,6 +18995,8 @@ v1beta1:
|
||||||
format: int32
|
format: int32
|
||||||
type: integer
|
type: integer
|
||||||
type: object
|
type: object
|
||||||
|
method:
|
||||||
|
type: string
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
additionalProperties:
|
additionalProperties:
|
||||||
type: string
|
type: string
|
||||||
|
@ -20606,6 +20616,8 @@ v1beta1:
|
||||||
format: int32
|
format: int32
|
||||||
type: integer
|
type: integer
|
||||||
type: object
|
type: object
|
||||||
|
method:
|
||||||
|
type: string
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
additionalProperties:
|
additionalProperties:
|
||||||
type: string
|
type: string
|
||||||
|
@ -22222,6 +22234,8 @@ v1beta1:
|
||||||
format: int32
|
format: int32
|
||||||
type: integer
|
type: integer
|
||||||
type: object
|
type: object
|
||||||
|
method:
|
||||||
|
type: string
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
additionalProperties:
|
additionalProperties:
|
||||||
type: string
|
type: string
|
||||||
|
@ -23841,6 +23855,8 @@ v1beta1:
|
||||||
format: int32
|
format: int32
|
||||||
type: integer
|
type: integer
|
||||||
type: object
|
type: object
|
||||||
|
method:
|
||||||
|
type: string
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
additionalProperties:
|
additionalProperties:
|
||||||
type: string
|
type: string
|
||||||
|
@ -25457,6 +25473,8 @@ v1beta1:
|
||||||
format: int32
|
format: int32
|
||||||
type: integer
|
type: integer
|
||||||
type: object
|
type: object
|
||||||
|
method:
|
||||||
|
type: string
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
additionalProperties:
|
additionalProperties:
|
||||||
type: string
|
type: string
|
||||||
|
|
|
@ -2111,6 +2111,8 @@ v1beta1:
|
||||||
format: int32
|
format: int32
|
||||||
type: integer
|
type: integer
|
||||||
type: object
|
type: object
|
||||||
|
method:
|
||||||
|
type: string
|
||||||
ports:
|
ports:
|
||||||
items:
|
items:
|
||||||
properties:
|
properties:
|
||||||
|
|
Loading…
Reference in a new issue