From b27a8167202ef4d270924d7b2ce179a9864d10a7 Mon Sep 17 00:00:00 2001 From: ajanikow <12255597+ajanikow@users.noreply.github.com> Date: Fri, 17 Jan 2025 09:26:55 +0000 Subject: [PATCH] [Feature] Fix CRD Generation and golangci version --- .golangci.yaml | 12 +- CHANGELOG.md | 1 + Makefile | 4 +- .../crds/backups-backup.yaml | 44 - .../crds/backups-backuppolicy.yaml | 23 - .../crds/database-deployment.yaml | 7 - .../crds/database-task.yaml | 7 - .../replication-deploymentreplication.yaml | 7 - .../crds/backups-backup.yaml | 44 - .../crds/backups-backuppolicy.yaml | 23 - .../crds/database-deployment.yaml | 7 - .../crds/database-task.yaml | 7 - .../replication-deploymentreplication.yaml | 7 - .../crds/backups-backup.yaml | 44 - .../crds/backups-backuppolicy.yaml | 23 - .../crds/database-deployment.yaml | 7 - .../crds/database-task.yaml | 7 - .../replication-deploymentreplication.yaml | 7 - chart/kube-arangodb/crds/backups-backup.yaml | 44 - .../crds/backups-backuppolicy.yaml | 23 - .../crds/database-deployment.yaml | 7 - chart/kube-arangodb/crds/database-task.yaml | 7 - .../replication-deploymentreplication.yaml | 7 - internal/cr_validation_test.go | 93 +- .../crds/backups-backup.schema.generated.yaml | 93 - pkg/crd/crds/backups-backup.yaml | 44 - ...backups-backuppolicy.schema.generated.yaml | 99 - pkg/crd/crds/backups-backuppolicy.yaml | 23 - .../database-deployment.schema.generated.yaml | 16888 ---------------- pkg/crd/crds/database-deployment.yaml | 7 - .../crds/database-task.schema.generated.yaml | 16 - pkg/crd/crds/database-task.yaml | 7 - .../crds/ml-extension.schema.generated.yaml | 30 + pkg/crd/crds/ml-storage.schema.generated.yaml | 21 + ...eploymentreplication.schema.generated.yaml | 115 - .../replication-deploymentreplication.yaml | 7 - .../scheduler-batchjob.schema.generated.yaml | 1 + .../scheduler-cronjob.schema.generated.yaml | 1 + ...scheduler-deployment.schema.generated.yaml | 1 + .../crds/scheduler-pod.schema.generated.yaml | 1 + .../scheduler-profile.schema.generated.yaml | 10 + .../reconcile/action_wait_for_member_up.go | 62 +- pkg/deployment/reconcile/plan_builder_test.go | 4 +- pkg/handlers/backup/finalizer.go | 4 +- pkg/handlers/backup/handler.go | 4 +- pkg/handlers/policy/handler.go | 6 +- pkg/util/k8sutil/helm/client_test.go | 4 +- 47 files changed, 149 insertions(+), 17761 deletions(-) diff --git a/.golangci.yaml b/.golangci.yaml index 78a74808d..fe0d7f620 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -1,7 +1,8 @@ run: issues-exit-code: 3 timeout: 30m - skip-dirs: +issues: + exclude-dirs: - vendor - .gobuild - deps @@ -20,6 +21,15 @@ linters: - importas - gci linters-settings: + govet: + disable: + - printf + staticcheck: + checks: + - all + - -SA1019 + unparam: + check-exported: false importas: no-unaliased: true alias: diff --git a/CHANGELOG.md b/CHANGELOG.md index ac20f3c68..543ab62e8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -47,6 +47,7 @@ - (Feature) Helm Chart Values merge methods - (Feature) (Platform) Expose Route Name via Header - (Feature) (Platform) Route Upstream Timeout +- (Maintenance) Fix CRD Generation and golangci version ## [1.2.43](https://github.com/arangodb/kube-arangodb/tree/1.2.43) (2024-10-14) - (Feature) ArangoRoute CRD diff --git a/Makefile b/Makefile index 7fd17fff1..8b7d0dd69 100644 --- a/Makefile +++ b/Makefile @@ -774,11 +774,11 @@ init: vendor tools update-generated $(BIN) .PHONY: tools-min tools-min: update-vendor @echo ">> Fetching golangci-lint linter" - @GOBIN=$(GOPATH)/bin go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.56.2 + @GOBIN=$(GOPATH)/bin go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.63.4 @echo ">> Fetching goimports" @GOBIN=$(GOPATH)/bin go install golang.org/x/tools/cmd/goimports@v0.19.0 @echo ">> Fetching license check" - @GOBIN=$(GOPATH)/bin go install github.com/google/addlicense@6d92264d717064f28b32464f0f9693a5b4ef0239 + @GOBIN=$(GOPATH)/bin go install github.com/google/addlicense@v1.1.1 @echo ">> Fetching yamlfmt" @GOBIN=$(GOPATH)/bin go install github.com/google/yamlfmt/cmd/yamlfmt@v0.10.0 @echo ">> Fetching protolinter" diff --git a/chart/kube-arangodb-arm64/crds/backups-backup.yaml b/chart/kube-arangodb-arm64/crds/backups-backup.yaml index 577574362..16625a363 100644 --- a/chart/kube-arangodb-arm64/crds/backups-backup.yaml +++ b/chart/kube-arangodb-arm64/crds/backups-backup.yaml @@ -57,47 +57,3 @@ spec: type: string subresources: status: {} - - name: v1alpha - schema: - openAPIV3Schema: - type: object - x-kubernetes-preserve-unknown-fields: true - served: true - storage: false - additionalPrinterColumns: - - jsonPath: .spec.policyName - description: Policy name - name: Policy - type: string - - jsonPath: .spec.deployment.name - description: Deployment name - name: Deployment - type: string - - jsonPath: .status.backup.version - description: Backup Version - name: Version - type: string - - jsonPath: .status.backup.createdAt - description: Backup Creation Timestamp - name: Created - type: string - - jsonPath: .status.backup.sizeInBytes - description: Backup Size in Bytes - name: Size - type: integer - format: byte - - jsonPath: .status.backup.numberOfDBServers - description: Backup Number of the DB Servers - name: DBServers - type: integer - - jsonPath: .status.state - description: The actual state of the ArangoBackup - name: State - type: string - - jsonPath: .status.message - priority: 1 - description: Message of the ArangoBackup object - name: Message - type: string - subresources: - status: {} diff --git a/chart/kube-arangodb-arm64/crds/backups-backuppolicy.yaml b/chart/kube-arangodb-arm64/crds/backups-backuppolicy.yaml index e0ca6c623..c0d759199 100644 --- a/chart/kube-arangodb-arm64/crds/backups-backuppolicy.yaml +++ b/chart/kube-arangodb-arm64/crds/backups-backuppolicy.yaml @@ -37,26 +37,3 @@ spec: type: string subresources: status: {} - - name: v1alpha - schema: - openAPIV3Schema: - type: object - x-kubernetes-preserve-unknown-fields: true - served: true - storage: false - additionalPrinterColumns: - - jsonPath: .spec.schedule - description: Schedule - name: Schedule - type: string - - jsonPath: .status.scheduled - description: Scheduled - name: Scheduled - type: string - - jsonPath: .status.message - priority: 1 - description: Message of the ArangoBackupPolicy object - name: Message - type: string - subresources: - status: {} diff --git a/chart/kube-arangodb-arm64/crds/database-deployment.yaml b/chart/kube-arangodb-arm64/crds/database-deployment.yaml index 22f9d1acf..5fc5a3883 100644 --- a/chart/kube-arangodb-arm64/crds/database-deployment.yaml +++ b/chart/kube-arangodb-arm64/crds/database-deployment.yaml @@ -21,13 +21,6 @@ spec: x-kubernetes-preserve-unknown-fields: true served: true storage: true - - name: v1alpha - schema: - openAPIV3Schema: - type: object - x-kubernetes-preserve-unknown-fields: true - served: true - storage: false - name: v2alpha1 schema: openAPIV3Schema: diff --git a/chart/kube-arangodb-arm64/crds/database-task.yaml b/chart/kube-arangodb-arm64/crds/database-task.yaml index 85d452000..ccab9cbad 100644 --- a/chart/kube-arangodb-arm64/crds/database-task.yaml +++ b/chart/kube-arangodb-arm64/crds/database-task.yaml @@ -18,13 +18,6 @@ spec: x-kubernetes-preserve-unknown-fields: true served: true storage: true - - name: v1alpha - schema: - openAPIV3Schema: - type: object - x-kubernetes-preserve-unknown-fields: true - served: true - storage: false - name: v2alpha1 schema: openAPIV3Schema: diff --git a/chart/kube-arangodb-arm64/crds/replication-deploymentreplication.yaml b/chart/kube-arangodb-arm64/crds/replication-deploymentreplication.yaml index e3918b355..26633936d 100644 --- a/chart/kube-arangodb-arm64/crds/replication-deploymentreplication.yaml +++ b/chart/kube-arangodb-arm64/crds/replication-deploymentreplication.yaml @@ -20,13 +20,6 @@ spec: x-kubernetes-preserve-unknown-fields: true served: true storage: true - - name: v1alpha - schema: - openAPIV3Schema: - type: object - x-kubernetes-preserve-unknown-fields: true - served: true - storage: false - name: v2alpha1 schema: openAPIV3Schema: diff --git a/chart/kube-arangodb-enterprise-arm64/crds/backups-backup.yaml b/chart/kube-arangodb-enterprise-arm64/crds/backups-backup.yaml index 577574362..16625a363 100644 --- a/chart/kube-arangodb-enterprise-arm64/crds/backups-backup.yaml +++ b/chart/kube-arangodb-enterprise-arm64/crds/backups-backup.yaml @@ -57,47 +57,3 @@ spec: type: string subresources: status: {} - - name: v1alpha - schema: - openAPIV3Schema: - type: object - x-kubernetes-preserve-unknown-fields: true - served: true - storage: false - additionalPrinterColumns: - - jsonPath: .spec.policyName - description: Policy name - name: Policy - type: string - - jsonPath: .spec.deployment.name - description: Deployment name - name: Deployment - type: string - - jsonPath: .status.backup.version - description: Backup Version - name: Version - type: string - - jsonPath: .status.backup.createdAt - description: Backup Creation Timestamp - name: Created - type: string - - jsonPath: .status.backup.sizeInBytes - description: Backup Size in Bytes - name: Size - type: integer - format: byte - - jsonPath: .status.backup.numberOfDBServers - description: Backup Number of the DB Servers - name: DBServers - type: integer - - jsonPath: .status.state - description: The actual state of the ArangoBackup - name: State - type: string - - jsonPath: .status.message - priority: 1 - description: Message of the ArangoBackup object - name: Message - type: string - subresources: - status: {} diff --git a/chart/kube-arangodb-enterprise-arm64/crds/backups-backuppolicy.yaml b/chart/kube-arangodb-enterprise-arm64/crds/backups-backuppolicy.yaml index e0ca6c623..c0d759199 100644 --- a/chart/kube-arangodb-enterprise-arm64/crds/backups-backuppolicy.yaml +++ b/chart/kube-arangodb-enterprise-arm64/crds/backups-backuppolicy.yaml @@ -37,26 +37,3 @@ spec: type: string subresources: status: {} - - name: v1alpha - schema: - openAPIV3Schema: - type: object - x-kubernetes-preserve-unknown-fields: true - served: true - storage: false - additionalPrinterColumns: - - jsonPath: .spec.schedule - description: Schedule - name: Schedule - type: string - - jsonPath: .status.scheduled - description: Scheduled - name: Scheduled - type: string - - jsonPath: .status.message - priority: 1 - description: Message of the ArangoBackupPolicy object - name: Message - type: string - subresources: - status: {} diff --git a/chart/kube-arangodb-enterprise-arm64/crds/database-deployment.yaml b/chart/kube-arangodb-enterprise-arm64/crds/database-deployment.yaml index 22f9d1acf..5fc5a3883 100644 --- a/chart/kube-arangodb-enterprise-arm64/crds/database-deployment.yaml +++ b/chart/kube-arangodb-enterprise-arm64/crds/database-deployment.yaml @@ -21,13 +21,6 @@ spec: x-kubernetes-preserve-unknown-fields: true served: true storage: true - - name: v1alpha - schema: - openAPIV3Schema: - type: object - x-kubernetes-preserve-unknown-fields: true - served: true - storage: false - name: v2alpha1 schema: openAPIV3Schema: diff --git a/chart/kube-arangodb-enterprise-arm64/crds/database-task.yaml b/chart/kube-arangodb-enterprise-arm64/crds/database-task.yaml index 85d452000..ccab9cbad 100644 --- a/chart/kube-arangodb-enterprise-arm64/crds/database-task.yaml +++ b/chart/kube-arangodb-enterprise-arm64/crds/database-task.yaml @@ -18,13 +18,6 @@ spec: x-kubernetes-preserve-unknown-fields: true served: true storage: true - - name: v1alpha - schema: - openAPIV3Schema: - type: object - x-kubernetes-preserve-unknown-fields: true - served: true - storage: false - name: v2alpha1 schema: openAPIV3Schema: diff --git a/chart/kube-arangodb-enterprise-arm64/crds/replication-deploymentreplication.yaml b/chart/kube-arangodb-enterprise-arm64/crds/replication-deploymentreplication.yaml index e3918b355..26633936d 100644 --- a/chart/kube-arangodb-enterprise-arm64/crds/replication-deploymentreplication.yaml +++ b/chart/kube-arangodb-enterprise-arm64/crds/replication-deploymentreplication.yaml @@ -20,13 +20,6 @@ spec: x-kubernetes-preserve-unknown-fields: true served: true storage: true - - name: v1alpha - schema: - openAPIV3Schema: - type: object - x-kubernetes-preserve-unknown-fields: true - served: true - storage: false - name: v2alpha1 schema: openAPIV3Schema: diff --git a/chart/kube-arangodb-enterprise/crds/backups-backup.yaml b/chart/kube-arangodb-enterprise/crds/backups-backup.yaml index 577574362..16625a363 100644 --- a/chart/kube-arangodb-enterprise/crds/backups-backup.yaml +++ b/chart/kube-arangodb-enterprise/crds/backups-backup.yaml @@ -57,47 +57,3 @@ spec: type: string subresources: status: {} - - name: v1alpha - schema: - openAPIV3Schema: - type: object - x-kubernetes-preserve-unknown-fields: true - served: true - storage: false - additionalPrinterColumns: - - jsonPath: .spec.policyName - description: Policy name - name: Policy - type: string - - jsonPath: .spec.deployment.name - description: Deployment name - name: Deployment - type: string - - jsonPath: .status.backup.version - description: Backup Version - name: Version - type: string - - jsonPath: .status.backup.createdAt - description: Backup Creation Timestamp - name: Created - type: string - - jsonPath: .status.backup.sizeInBytes - description: Backup Size in Bytes - name: Size - type: integer - format: byte - - jsonPath: .status.backup.numberOfDBServers - description: Backup Number of the DB Servers - name: DBServers - type: integer - - jsonPath: .status.state - description: The actual state of the ArangoBackup - name: State - type: string - - jsonPath: .status.message - priority: 1 - description: Message of the ArangoBackup object - name: Message - type: string - subresources: - status: {} diff --git a/chart/kube-arangodb-enterprise/crds/backups-backuppolicy.yaml b/chart/kube-arangodb-enterprise/crds/backups-backuppolicy.yaml index e0ca6c623..c0d759199 100644 --- a/chart/kube-arangodb-enterprise/crds/backups-backuppolicy.yaml +++ b/chart/kube-arangodb-enterprise/crds/backups-backuppolicy.yaml @@ -37,26 +37,3 @@ spec: type: string subresources: status: {} - - name: v1alpha - schema: - openAPIV3Schema: - type: object - x-kubernetes-preserve-unknown-fields: true - served: true - storage: false - additionalPrinterColumns: - - jsonPath: .spec.schedule - description: Schedule - name: Schedule - type: string - - jsonPath: .status.scheduled - description: Scheduled - name: Scheduled - type: string - - jsonPath: .status.message - priority: 1 - description: Message of the ArangoBackupPolicy object - name: Message - type: string - subresources: - status: {} diff --git a/chart/kube-arangodb-enterprise/crds/database-deployment.yaml b/chart/kube-arangodb-enterprise/crds/database-deployment.yaml index 22f9d1acf..5fc5a3883 100644 --- a/chart/kube-arangodb-enterprise/crds/database-deployment.yaml +++ b/chart/kube-arangodb-enterprise/crds/database-deployment.yaml @@ -21,13 +21,6 @@ spec: x-kubernetes-preserve-unknown-fields: true served: true storage: true - - name: v1alpha - schema: - openAPIV3Schema: - type: object - x-kubernetes-preserve-unknown-fields: true - served: true - storage: false - name: v2alpha1 schema: openAPIV3Schema: diff --git a/chart/kube-arangodb-enterprise/crds/database-task.yaml b/chart/kube-arangodb-enterprise/crds/database-task.yaml index 85d452000..ccab9cbad 100644 --- a/chart/kube-arangodb-enterprise/crds/database-task.yaml +++ b/chart/kube-arangodb-enterprise/crds/database-task.yaml @@ -18,13 +18,6 @@ spec: x-kubernetes-preserve-unknown-fields: true served: true storage: true - - name: v1alpha - schema: - openAPIV3Schema: - type: object - x-kubernetes-preserve-unknown-fields: true - served: true - storage: false - name: v2alpha1 schema: openAPIV3Schema: diff --git a/chart/kube-arangodb-enterprise/crds/replication-deploymentreplication.yaml b/chart/kube-arangodb-enterprise/crds/replication-deploymentreplication.yaml index e3918b355..26633936d 100644 --- a/chart/kube-arangodb-enterprise/crds/replication-deploymentreplication.yaml +++ b/chart/kube-arangodb-enterprise/crds/replication-deploymentreplication.yaml @@ -20,13 +20,6 @@ spec: x-kubernetes-preserve-unknown-fields: true served: true storage: true - - name: v1alpha - schema: - openAPIV3Schema: - type: object - x-kubernetes-preserve-unknown-fields: true - served: true - storage: false - name: v2alpha1 schema: openAPIV3Schema: diff --git a/chart/kube-arangodb/crds/backups-backup.yaml b/chart/kube-arangodb/crds/backups-backup.yaml index 577574362..16625a363 100644 --- a/chart/kube-arangodb/crds/backups-backup.yaml +++ b/chart/kube-arangodb/crds/backups-backup.yaml @@ -57,47 +57,3 @@ spec: type: string subresources: status: {} - - name: v1alpha - schema: - openAPIV3Schema: - type: object - x-kubernetes-preserve-unknown-fields: true - served: true - storage: false - additionalPrinterColumns: - - jsonPath: .spec.policyName - description: Policy name - name: Policy - type: string - - jsonPath: .spec.deployment.name - description: Deployment name - name: Deployment - type: string - - jsonPath: .status.backup.version - description: Backup Version - name: Version - type: string - - jsonPath: .status.backup.createdAt - description: Backup Creation Timestamp - name: Created - type: string - - jsonPath: .status.backup.sizeInBytes - description: Backup Size in Bytes - name: Size - type: integer - format: byte - - jsonPath: .status.backup.numberOfDBServers - description: Backup Number of the DB Servers - name: DBServers - type: integer - - jsonPath: .status.state - description: The actual state of the ArangoBackup - name: State - type: string - - jsonPath: .status.message - priority: 1 - description: Message of the ArangoBackup object - name: Message - type: string - subresources: - status: {} diff --git a/chart/kube-arangodb/crds/backups-backuppolicy.yaml b/chart/kube-arangodb/crds/backups-backuppolicy.yaml index e0ca6c623..c0d759199 100644 --- a/chart/kube-arangodb/crds/backups-backuppolicy.yaml +++ b/chart/kube-arangodb/crds/backups-backuppolicy.yaml @@ -37,26 +37,3 @@ spec: type: string subresources: status: {} - - name: v1alpha - schema: - openAPIV3Schema: - type: object - x-kubernetes-preserve-unknown-fields: true - served: true - storage: false - additionalPrinterColumns: - - jsonPath: .spec.schedule - description: Schedule - name: Schedule - type: string - - jsonPath: .status.scheduled - description: Scheduled - name: Scheduled - type: string - - jsonPath: .status.message - priority: 1 - description: Message of the ArangoBackupPolicy object - name: Message - type: string - subresources: - status: {} diff --git a/chart/kube-arangodb/crds/database-deployment.yaml b/chart/kube-arangodb/crds/database-deployment.yaml index 22f9d1acf..5fc5a3883 100644 --- a/chart/kube-arangodb/crds/database-deployment.yaml +++ b/chart/kube-arangodb/crds/database-deployment.yaml @@ -21,13 +21,6 @@ spec: x-kubernetes-preserve-unknown-fields: true served: true storage: true - - name: v1alpha - schema: - openAPIV3Schema: - type: object - x-kubernetes-preserve-unknown-fields: true - served: true - storage: false - name: v2alpha1 schema: openAPIV3Schema: diff --git a/chart/kube-arangodb/crds/database-task.yaml b/chart/kube-arangodb/crds/database-task.yaml index 85d452000..ccab9cbad 100644 --- a/chart/kube-arangodb/crds/database-task.yaml +++ b/chart/kube-arangodb/crds/database-task.yaml @@ -18,13 +18,6 @@ spec: x-kubernetes-preserve-unknown-fields: true served: true storage: true - - name: v1alpha - schema: - openAPIV3Schema: - type: object - x-kubernetes-preserve-unknown-fields: true - served: true - storage: false - name: v2alpha1 schema: openAPIV3Schema: diff --git a/chart/kube-arangodb/crds/replication-deploymentreplication.yaml b/chart/kube-arangodb/crds/replication-deploymentreplication.yaml index e3918b355..26633936d 100644 --- a/chart/kube-arangodb/crds/replication-deploymentreplication.yaml +++ b/chart/kube-arangodb/crds/replication-deploymentreplication.yaml @@ -20,13 +20,6 @@ spec: x-kubernetes-preserve-unknown-fields: true served: true storage: true - - name: v1alpha - schema: - openAPIV3Schema: - type: object - x-kubernetes-preserve-unknown-fields: true - served: true - storage: false - name: v2alpha1 schema: openAPIV3Schema: diff --git a/internal/cr_validation_test.go b/internal/cr_validation_test.go index c3f37e3de..4b6907ab4 100644 --- a/internal/cr_validation_test.go +++ b/internal/cr_validation_test.go @@ -1,7 +1,7 @@ // // DISCLAIMER // -// Copyright 2023-2024 ArangoDB GmbH, Cologne, Germany +// Copyright 2023-2025 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. @@ -76,7 +76,7 @@ func Test_GenerateCRValidationSchemas(t *testing.T) { // CR file prefix -> packages to parse -> versions -> obj input := map[string]map[string]map[string]genSpec{ "apps-job": { - fmt.Sprintf("%s/pkg/apis/apps/v1", root): { + fmt.Sprintf("%s/pkg/apis/apps", root): { "v1": { objects: map[string]interface{}{ "spec": appsv1.ArangoJob{}.Spec, @@ -85,47 +85,30 @@ func Test_GenerateCRValidationSchemas(t *testing.T) { }, }, "backups-backup": { - fmt.Sprintf("%s/pkg/apis/backup/v1", root): { + fmt.Sprintf("%s/pkg/apis/backup", root): { "v1": { objects: map[string]interface{}{ "spec": backupv1.ArangoBackup{}.Spec, }, }, - "v1alpha": { - objects: map[string]interface{}{ - "spec": backupv1.ArangoBackup{}.Spec, - }, - }, }, }, "backups-backuppolicy": { - fmt.Sprintf("%s/pkg/apis/backup/v1", root): { + fmt.Sprintf("%s/pkg/apis/backup", root): { "v1": { objects: map[string]interface{}{ "spec": backupv1.ArangoBackupPolicy{}.Spec, }, }, - "v1alpha": { - objects: map[string]interface{}{ - "spec": backupv1.ArangoBackupPolicy{}.Spec, - }, - }, }, }, "database-deployment": { - fmt.Sprintf("%s/pkg/apis/deployment/v1", root): { + fmt.Sprintf("%s/pkg/apis/deployment", root): { "v1": { objects: map[string]interface{}{ "spec": deploymentv1.ArangoDeployment{}.Spec, }, }, - "v1alpha": { - objects: map[string]interface{}{ - "spec": deploymentv1.ArangoDeployment{}.Spec, - }, - }, - }, - fmt.Sprintf("%s/pkg/apis/deployment/v2alpha1", root): { "v2alpha1": { objects: map[string]interface{}{ "spec": deploymentv2alpha1.ArangoDeployment{}.Spec, @@ -134,14 +117,12 @@ func Test_GenerateCRValidationSchemas(t *testing.T) { }, }, "database-member": { - fmt.Sprintf("%s/pkg/apis/deployment/v1", root): { + fmt.Sprintf("%s/pkg/apis/deployment", root): { "v1": { objects: map[string]interface{}{ "spec": deploymentv1.ArangoMember{}.Spec, }, }, - }, - fmt.Sprintf("%s/pkg/apis/deployment/v2alpha1", root): { "v2alpha1": { objects: map[string]interface{}{ "spec": deploymentv2alpha1.ArangoMember{}.Spec, @@ -150,14 +131,12 @@ func Test_GenerateCRValidationSchemas(t *testing.T) { }, }, "database-clustersynchronization": { - fmt.Sprintf("%s/pkg/apis/deployment/v1", root): { + fmt.Sprintf("%s/pkg/apis/deployment", root): { "v1": { objects: map[string]interface{}{ "spec": deploymentv1.ArangoClusterSynchronization{}.Spec, }, }, - }, - fmt.Sprintf("%s/pkg/apis/deployment/v2alpha1", root): { "v2alpha1": { objects: map[string]interface{}{ "spec": deploymentv2alpha1.ArangoClusterSynchronization{}.Spec, @@ -166,19 +145,12 @@ func Test_GenerateCRValidationSchemas(t *testing.T) { }, }, "database-task": { - fmt.Sprintf("%s/pkg/apis/deployment/v1", root): { + fmt.Sprintf("%s/pkg/apis/deployment", root): { "v1": { objects: map[string]interface{}{ "spec": deploymentv1.ArangoTask{}.Spec, }, }, - "v1alpha": { - objects: map[string]interface{}{ - "spec": deploymentv1.ArangoTask{}.Spec, - }, - }, - }, - fmt.Sprintf("%s/pkg/apis/deployment/v2alpha1", root): { "v2alpha1": { objects: map[string]interface{}{ "spec": deploymentv2alpha1.ArangoTask{}.Spec, @@ -187,19 +159,12 @@ func Test_GenerateCRValidationSchemas(t *testing.T) { }, }, "replication-deploymentreplication": { - fmt.Sprintf("%s/pkg/apis/replication/v1", root): { + fmt.Sprintf("%s/pkg/apis/replication", root): { "v1": { objects: map[string]interface{}{ "spec": replicationv1.ArangoDeploymentReplication{}.Spec, }, }, - "v1alpha": { - objects: map[string]interface{}{ - "spec": replicationv1.ArangoDeploymentReplication{}.Spec, - }, - }, - }, - fmt.Sprintf("%s/pkg/apis/replication/v2alpha1", root): { "v2alpha1": { objects: map[string]interface{}{ "spec": replicationv2alpha1.ArangoDeploymentReplication{}.Spec, @@ -208,7 +173,7 @@ func Test_GenerateCRValidationSchemas(t *testing.T) { }, }, "storage-localstorage": { - fmt.Sprintf("%s/pkg/apis/storage/v1alpha", root): { + fmt.Sprintf("%s/pkg/apis/storage", root): { "v1alpha": { objects: map[string]interface{}{ "spec": storagev1alpha.ArangoLocalStorage{}.Spec, @@ -217,7 +182,7 @@ func Test_GenerateCRValidationSchemas(t *testing.T) { }, }, "scheduler-profile": { - fmt.Sprintf("%s/pkg/apis/scheduler/v1alpha1", root): { + fmt.Sprintf("%s/pkg/apis/scheduler", root): { "v1alpha1": { objects: map[string]interface{}{ "spec": schedulerApiv1alpha1.ArangoProfile{}.Spec, @@ -231,7 +196,7 @@ func Test_GenerateCRValidationSchemas(t *testing.T) { }, }, "scheduler-pod": { - fmt.Sprintf("%s/pkg/apis/scheduler/v1alpha1", root): { + fmt.Sprintf("%s/pkg/apis/scheduler", root): { "v1beta1": { objects: map[string]interface{}{ "spec": schedulerApi.ArangoSchedulerPod{}.Spec, @@ -240,7 +205,7 @@ func Test_GenerateCRValidationSchemas(t *testing.T) { }, }, "scheduler-deployment": { - fmt.Sprintf("%s/pkg/apis/scheduler/v1alpha1", root): { + fmt.Sprintf("%s/pkg/apis/scheduler", root): { "v1beta1": { objects: map[string]interface{}{ "spec": schedulerApi.ArangoSchedulerDeployment{}.Spec, @@ -249,7 +214,7 @@ func Test_GenerateCRValidationSchemas(t *testing.T) { }, }, "scheduler-batchjob": { - fmt.Sprintf("%s/pkg/apis/scheduler/v1alpha1", root): { + fmt.Sprintf("%s/pkg/apis/scheduler", root): { "v1beta1": { objects: map[string]interface{}{ "spec": schedulerApi.ArangoSchedulerBatchJob{}.Spec, @@ -258,7 +223,7 @@ func Test_GenerateCRValidationSchemas(t *testing.T) { }, }, "scheduler-cronjob": { - fmt.Sprintf("%s/pkg/apis/scheduler/v1alpha1", root): { + fmt.Sprintf("%s/pkg/apis/scheduler", root): { "v1beta1": { objects: map[string]interface{}{ "spec": schedulerApi.ArangoSchedulerCronJob{}.Spec, @@ -267,7 +232,7 @@ func Test_GenerateCRValidationSchemas(t *testing.T) { }, }, "ml-extension": { - fmt.Sprintf("%s/pkg/apis/ml/v1alpha1", root): { + fmt.Sprintf("%s/pkg/apis/ml", root): { "v1alpha1": { objects: map[string]interface{}{ "spec": mlApiv1alpha1.ArangoMLExtension{}.Spec, @@ -281,7 +246,7 @@ func Test_GenerateCRValidationSchemas(t *testing.T) { }, }, "ml-storage": { - fmt.Sprintf("%s/pkg/apis/ml/v1alpha1", root): { + fmt.Sprintf("%s/pkg/apis/ml", root): { "v1alpha1": { objects: map[string]interface{}{ "spec": mlApiv1alpha1.ArangoMLStorage{}.Spec, @@ -295,7 +260,7 @@ func Test_GenerateCRValidationSchemas(t *testing.T) { }, }, "ml-job-cron": { - fmt.Sprintf("%s/pkg/apis/ml/v1alpha1", root): { + fmt.Sprintf("%s/pkg/apis/ml", root): { "v1alpha1": { objects: map[string]interface{}{ "spec": mlApiv1alpha1.ArangoMLCronJob{}.Spec, @@ -304,7 +269,7 @@ func Test_GenerateCRValidationSchemas(t *testing.T) { }, }, "ml-job-batch": { - fmt.Sprintf("%s/pkg/apis/ml/v1alpha1", root): { + fmt.Sprintf("%s/pkg/apis/ml", root): { "v1alpha1": { objects: map[string]interface{}{ "spec": mlApiv1alpha1.ArangoMLBatchJob{}.Spec, @@ -313,7 +278,7 @@ func Test_GenerateCRValidationSchemas(t *testing.T) { }, }, "analytics-graphanalyticsengine": { - fmt.Sprintf("%s/pkg/apis/analytics/v1alpha1", root): { + fmt.Sprintf("%s/pkg/apis/analytics", root): { "v1alpha1": { objects: map[string]interface{}{ "spec": analyticsApi.GraphAnalyticsEngine{}.Spec, @@ -322,7 +287,7 @@ func Test_GenerateCRValidationSchemas(t *testing.T) { }, }, "networking-route": { - fmt.Sprintf("%s/pkg/apis/networking/v1alpha1", root): { + fmt.Sprintf("%s/pkg/apis/networking", root): { "v1alpha1": { objects: map[string]interface{}{ "spec": networkingApi.ArangoRoute{}.Spec, @@ -331,7 +296,7 @@ func Test_GenerateCRValidationSchemas(t *testing.T) { }, }, "platform-storage": { - fmt.Sprintf("%s/pkg/apis/platform/v1alpha1", root): { + fmt.Sprintf("%s/pkg/apis/platform", root): { "v1alpha1": { objects: map[string]interface{}{ "spec": platformApi.ArangoPlatformStorage{}.Spec, @@ -340,7 +305,7 @@ func Test_GenerateCRValidationSchemas(t *testing.T) { }, }, "platform-chart": { - fmt.Sprintf("%s/pkg/apis/platform/v1alpha1", root): { + fmt.Sprintf("%s/pkg/apis/platform", root): { "v1alpha1": { objects: map[string]interface{}{ "spec": platformApi.ArangoPlatformChart{}.Spec, @@ -362,14 +327,14 @@ func Test_GenerateCRValidationSchemas(t *testing.T) { validationPerVersion := make(map[string]apiextensions.CustomResourceValidation, len(packagesToVersion)) for apiDir, versionMap := range packagesToVersion { - fields := parseSourceFiles(t, root, fset, apiDir) + for version, generationSpec := range versionMap { + fields := parseSourceFiles(t, root, fset, path.Join(apiDir, version)) - for n, f := range sharedFields { - require.NotContains(t, fields, n) - fields[n] = f - } + for n, f := range sharedFields { + require.NotContains(t, fields, n) + fields[n] = f + } - for version, generationSpec := range versionMap { crdVersion := findCRDVersion(t, crd, version) t.Log(crdVersion.Schema) diff --git a/pkg/crd/crds/backups-backup.schema.generated.yaml b/pkg/crd/crds/backups-backup.schema.generated.yaml index 20d2ed022..127eb16c1 100644 --- a/pkg/crd/crds/backups-backup.schema.generated.yaml +++ b/pkg/crd/crds/backups-backup.schema.generated.yaml @@ -91,96 +91,3 @@ v1: type: object x-kubernetes-preserve-unknown-fields: true type: object -v1alpha: - openAPIV3Schema: - properties: - spec: - properties: - backoff: - properties: - iterations: - description: Iterations defines number of iterations before reaching MaxDelay. Default to 5 - format: int32 - type: integer - max_delay: - description: MaxDelay defines maximum delay in seconds. Default to 600 - format: int32 - type: integer - max_iterations: - description: MaxIterations defines maximum number of iterations after backoff will be disabled. Default to nil (no limit) - format: int32 - type: integer - min_delay: - description: MinDelay defines minimum delay in seconds. Default to 30 - format: int32 - type: integer - type: object - deployment: - description: Deployment describes the deployment which should have a backup - properties: - name: - description: Name of the ArangoDeployment Custom Resource within same namespace as ArangoBackup Custom Resource. - type: string - type: object - download: - description: Download Backup download settings - properties: - autoDelete: - description: AutoDelete removes the ArangoBackup resource (which removes the backup from the cluster) after successful upload - type: boolean - credentialsSecretName: - description: CredentialsSecretName is the name of the secret used while accessing repository - type: string - id: - description: ID of the ArangoBackup to be downloaded - type: string - repositoryURL: - description: |- - RepositoryURL is the URL path for file storage - Same repositoryURL needs to be defined in `credentialsSecretName` if protocol is other than local. - Format: `:/` - type: string - type: object - lifetime: - description: 'Lifetime is the time after which the backup will be deleted. Format: "1.5h" or "2h45m".' - type: string - options: - description: Options specifies backup options - properties: - allowInconsistent: - description: |- - AllowInconsistent flag for Backup creation request. - If this value is set to true, backup is taken even if we are not able to acquire lock. - type: boolean - timeout: - description: Timeout for Backup creation request in seconds. Works only when AsyncBackupCreation feature is set to false. - format: float - type: number - type: object - policyName: - description: PolicyName name of the ArangoBackupPolicy which created this Custom Resource - type: string - upload: - description: |- - Upload Backup upload settings. - This field can be removed and created again with different values. This operation will trigger upload again. - properties: - autoDelete: - description: AutoDelete removes the ArangoBackup resource (which removes the backup from the cluster) after successful upload - type: boolean - credentialsSecretName: - description: CredentialsSecretName is the name of the secret used while accessing repository - type: string - repositoryURL: - description: |- - RepositoryURL is the URL path for file storage - Same repositoryURL needs to be defined in `credentialsSecretName` if protocol is other than local. - Format: `:/` - type: string - type: object - type: object - status: - description: Object with preserved fields for backward compatibility - type: object - x-kubernetes-preserve-unknown-fields: true - type: object diff --git a/pkg/crd/crds/backups-backup.yaml b/pkg/crd/crds/backups-backup.yaml index 577574362..16625a363 100644 --- a/pkg/crd/crds/backups-backup.yaml +++ b/pkg/crd/crds/backups-backup.yaml @@ -57,47 +57,3 @@ spec: type: string subresources: status: {} - - name: v1alpha - schema: - openAPIV3Schema: - type: object - x-kubernetes-preserve-unknown-fields: true - served: true - storage: false - additionalPrinterColumns: - - jsonPath: .spec.policyName - description: Policy name - name: Policy - type: string - - jsonPath: .spec.deployment.name - description: Deployment name - name: Deployment - type: string - - jsonPath: .status.backup.version - description: Backup Version - name: Version - type: string - - jsonPath: .status.backup.createdAt - description: Backup Creation Timestamp - name: Created - type: string - - jsonPath: .status.backup.sizeInBytes - description: Backup Size in Bytes - name: Size - type: integer - format: byte - - jsonPath: .status.backup.numberOfDBServers - description: Backup Number of the DB Servers - name: DBServers - type: integer - - jsonPath: .status.state - description: The actual state of the ArangoBackup - name: State - type: string - - jsonPath: .status.message - priority: 1 - description: Message of the ArangoBackup object - name: Message - type: string - subresources: - status: {} diff --git a/pkg/crd/crds/backups-backuppolicy.schema.generated.yaml b/pkg/crd/crds/backups-backuppolicy.schema.generated.yaml index ee14fb976..6fc76ab02 100644 --- a/pkg/crd/crds/backups-backuppolicy.schema.generated.yaml +++ b/pkg/crd/crds/backups-backuppolicy.schema.generated.yaml @@ -97,102 +97,3 @@ v1: type: object x-kubernetes-preserve-unknown-fields: true type: object -v1alpha: - openAPIV3Schema: - properties: - spec: - properties: - allowConcurrent: - description: AllowConcurrent if false, ArangoBackup will not be created when previous Backups are not finished - type: boolean - maxBackups: - description: |- - MaxBackups defines how many backups should be kept in history (per deployment). Oldest healthy Backups will be deleted. - If not specified or 0 then no limit is applied - format: int32 - type: integer - schedule: - description: |- - Schedule is cron-compatible specification of backup schedule - Parsed by https://godoc.org/github.com/robfig/cron - type: string - selector: - description: DeploymentSelector Selector definition for selecting matching ArangoBackup Custom Resources. - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - template: - description: ArangoBackupTemplate specifies additional options for newly created ArangoBackup - properties: - backoff: - properties: - iterations: - description: Iterations defines number of iterations before reaching MaxDelay. Default to 5 - format: int32 - type: integer - max_delay: - description: MaxDelay defines maximum delay in seconds. Default to 600 - format: int32 - type: integer - max_iterations: - description: MaxIterations defines maximum number of iterations after backoff will be disabled. Default to nil (no limit) - format: int32 - type: integer - min_delay: - description: MinDelay defines minimum delay in seconds. Default to 30 - format: int32 - type: integer - type: object - lifetime: - description: 'Lifetime is the time after which the backup will be deleted. Format: "1.5h" or "2h45m".' - type: string - options: - properties: - allowInconsistent: - description: |- - AllowInconsistent flag for Backup creation request. - If this value is set to true, backup is taken even if we are not able to acquire lock. - type: boolean - timeout: - description: Timeout for Backup creation request in seconds. Works only when AsyncBackupCreation feature is set to false. - format: float - type: number - type: object - upload: - properties: - autoDelete: - description: AutoDelete removes the ArangoBackup resource (which removes the backup from the cluster) after successful upload - type: boolean - credentialsSecretName: - description: CredentialsSecretName is the name of the secret used while accessing repository - type: string - repositoryURL: - description: |- - RepositoryURL is the URL path for file storage - Same repositoryURL needs to be defined in `credentialsSecretName` if protocol is other than local. - Format: `:/` - type: string - type: object - type: object - type: object - status: - description: Object with preserved fields for backward compatibility - type: object - x-kubernetes-preserve-unknown-fields: true - type: object diff --git a/pkg/crd/crds/backups-backuppolicy.yaml b/pkg/crd/crds/backups-backuppolicy.yaml index e0ca6c623..c0d759199 100644 --- a/pkg/crd/crds/backups-backuppolicy.yaml +++ b/pkg/crd/crds/backups-backuppolicy.yaml @@ -37,26 +37,3 @@ spec: type: string subresources: status: {} - - name: v1alpha - schema: - openAPIV3Schema: - type: object - x-kubernetes-preserve-unknown-fields: true - served: true - storage: false - additionalPrinterColumns: - - jsonPath: .spec.schedule - description: Schedule - name: Schedule - type: string - - jsonPath: .status.scheduled - description: Scheduled - name: Scheduled - type: string - - jsonPath: .status.message - priority: 1 - description: Message of the ArangoBackupPolicy object - name: Message - type: string - subresources: - status: {} diff --git a/pkg/crd/crds/database-deployment.schema.generated.yaml b/pkg/crd/crds/database-deployment.schema.generated.yaml index f16523776..79e36ed27 100644 --- a/pkg/crd/crds/database-deployment.schema.generated.yaml +++ b/pkg/crd/crds/database-deployment.schema.generated.yaml @@ -16886,16894 +16886,6 @@ v1: type: object x-kubernetes-preserve-unknown-fields: true type: object -v1alpha: - openAPIV3Schema: - properties: - spec: - properties: - ClusterDomain: - description: |- - ClusterDomain define domain used in the kubernetes cluster. - Required only of domain is not set to default (cluster.local) - type: string - agents: - description: Agents contains specification for Agency pods running in deployment mode `Cluster` or `ActiveFailover`. - properties: - affinity: - description: Affinity specified additional affinity settings in ArangoDB Pod definitions - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - format: int32 - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - allowMemberRecreation: - description: |- - AllowMemberRecreation allows to recreate member. - This setting changes the member recreation logic based on group: - - For Sync Masters, Sync Workers, Coordinator and DB-Servers it determines if a member can be recreated in case of failure (default `true`) - - For Agents and Single this value is hardcoded to `false` and the value provided in spec is ignored. - type: boolean - annotations: - additionalProperties: - type: string - description: |- - Annotations specified the annotations added to Pods in this group. - Annotations are merged with `spec.annotations`. - type: object - annotationsIgnoreList: - description: AnnotationsIgnoreList list regexp or plain definitions which annotations should be ignored - items: - type: string - type: array - annotationsMode: - description: AnnotationsMode Define annotations mode which should be use while overriding annotations - type: string - antiAffinity: - description: AntiAffinity specified additional antiAffinity settings in ArangoDB Pod definitions - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - format: int32 - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - args: - description: Args setting specifies additional command-line arguments passed to all servers of this group. - items: - type: string - type: array - count: - description: |- - Count setting specifies the number of servers to start for the given group. - For the Agent group, this value must be a positive, odd number. - The default value is `3` for all groups except `single` (there the default is `1` - for `spec.mode: Single` and `2` for `spec.mode: ActiveFailover`). - For the `syncworkers` group, it is highly recommended to use the same number - as for the `dbservers` group. - format: int32 - type: integer - entrypoint: - description: Entrypoint overrides container executable - type: string - envs: - description: Envs allow to specify additional envs in this group. - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - ephemeralVolumes: - description: EphemeralVolumes keeps information about ephemeral volumes. - properties: - apps: - description: Apps define apps ephemeral volume in case if `ephemeral-volumes` feature is enabled. - properties: - size: - description: Size define size of the ephemeral volume - type: string - type: object - temp: - description: Temp define temp ephemeral volume in case if `ephemeral-volumes` feature is enabled. - properties: - size: - description: Size define size of the ephemeral volume - type: string - type: object - type: object - exporterPort: - description: ExporterPort define Port used by exporter - format: int32 - type: integer - extendedRotationCheck: - description: ExtendedRotationCheck extend checks for rotation - type: boolean - externalPortEnabled: - description: ExternalPortEnabled if external port should be enabled. If is set to false, ports needs to be exposed via sidecar. Only for ArangoD members - type: boolean - indexMethod: - description: IndexMethod define group Indexing method - enum: - - random - - ordered - type: string - initContainers: - description: InitContainers Init containers specification - properties: - containers: - description: Containers contains list of containers - items: - properties: - args: - items: - type: string - type: array - command: - items: - type: string - type: array - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - name: - type: string - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - type: object - type: array - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - restartPolicy: - type: string - securityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - stdin: - type: boolean - stdinOnce: - type: boolean - terminationMessagePath: - type: string - terminationMessagePolicy: - type: string - tty: - type: boolean - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - type: object - type: array - workingDir: - type: string - type: object - type: array - mode: - description: Mode keep container replace mode - enum: - - update - - ignore - type: string - type: object - internalPort: - description: InternalPort define port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members - format: int32 - type: integer - internalPortProtocol: - description: InternalPortProtocol define protocol of port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members - type: string - labels: - additionalProperties: - type: string - description: Labels specified the labels added to Pods in this group. - type: object - labelsIgnoreList: - description: LabelsIgnoreList list regexp or plain definitions which labels should be ignored - items: - type: string - type: array - labelsMode: - description: LabelsMode Define labels mode which should be use while overriding labels - type: string - maxCount: - description: MaxCount specifies a maximum for the count of servers. If set, a specification is invalid if `count > maxCount`. - format: int32 - type: integer - memoryReservation: - description: |- - MemoryReservation determines the system reservation of memory while calculating `ARANGODB_OVERRIDE_DETECTED_TOTAL_MEMORY` value. - If this field is set, `ARANGODB_OVERRIDE_DETECTED_TOTAL_MEMORY` is reduced by a specified value in percent. - Accepted Range <0, 50>. If the value is outside the accepted range, it is adjusted to the closest value. - format: int64 - type: integer - minCount: - description: MinCount specifies a minimum for the count of servers. If set, a specification is invalid if `count < minCount`. - format: int32 - type: integer - nodeAffinity: - description: NodeAffinity specified additional nodeAffinity settings in ArangoDB Pod definitions - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - weight: - format: int32 - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - type: array - type: object - type: object - nodeSelector: - additionalProperties: - type: string - description: NodeSelector setting specifies a set of labels to be used as `nodeSelector` for Pods of this node. - type: object - numactl: - description: Numactl define Numactl options passed to the process - properties: - args: - description: Args define list of the numactl process - items: - type: string - type: array - enabled: - description: Enabled define if numactl should be enabled - type: boolean - path: - description: Path define numactl path within the container - type: string - type: object - overrideDetectedNumberOfCores: - description: |- - OverrideDetectedNumberOfCores determines if number of cores should be overridden based on values in resources. - If is set to true and Container CPU Limits are set, it sets Container Environment Variable `ARANGODB_OVERRIDE_DETECTED_NUMBER_OF_CORES` to the value from the Container CPU Limits. - type: boolean - overrideDetectedTotalMemory: - description: |- - OverrideDetectedTotalMemory determines if memory should be overridden based on values in resources. - If is set to true and Container Memory Limits are set, it sets Container Environment Variable `ARANGODB_OVERRIDE_DETECTED_TOTAL_MEMORY` to the value from the Container Memory Limits. - type: boolean - podModes: - description: PodModes define additional modes enabled on the Pod level - properties: - network: - type: string - pid: - type: string - type: object - port: - description: Port define Port used by member - format: int32 - type: integer - priorityClassName: - description: |- - PriorityClassName specifies a priority class name - Will be forwarded to the pod spec. - type: string - probes: - description: Probes specifies additional behaviour for probes - properties: - ReadinessProbeDisabled: - description: OldReadinessProbeDisabled if true readinessProbes are disabled - type: boolean - livenessProbeDisabled: - description: LivenessProbeDisabled if set to true, the operator does not generate a liveness probe for new pods belonging to this group - type: boolean - livenessProbeSpec: - description: LivenessProbeSpec override liveness probe configuration - properties: - failureThreshold: - description: |- - FailureThreshold when a Pod starts and the probe fails, Kubernetes will try failureThreshold times before giving up. - Giving up means restarting the container. - Minimum value is 1. - format: int32 - type: integer - initialDelaySeconds: - description: |- - InitialDelaySeconds specifies number of seconds after the container has started before liveness or readiness probes are initiated. - Minimum value is 0. - format: int32 - type: integer - periodSeconds: - description: |- - PeriodSeconds How often (in seconds) to perform the probe. - Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - SuccessThreshold Minimum consecutive successes for the probe to be considered successful after having failed. - Minimum value is 1. - format: int32 - type: integer - timeoutSeconds: - description: |- - TimeoutSeconds specifies number of seconds after which the probe times out - Minimum value is 1. - format: int32 - type: integer - type: object - readinessProbeDisabled: - description: ReadinessProbeDisabled override flag for probe disabled in good manner (lowercase) with backward compatibility - type: boolean - readinessProbeSpec: - description: ReadinessProbeSpec override readiness probe configuration - properties: - failureThreshold: - description: |- - FailureThreshold when a Pod starts and the probe fails, Kubernetes will try failureThreshold times before giving up. - Giving up means restarting the container. - Minimum value is 1. - format: int32 - type: integer - initialDelaySeconds: - description: |- - InitialDelaySeconds specifies number of seconds after the container has started before liveness or readiness probes are initiated. - Minimum value is 0. - format: int32 - type: integer - periodSeconds: - description: |- - PeriodSeconds How often (in seconds) to perform the probe. - Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - SuccessThreshold Minimum consecutive successes for the probe to be considered successful after having failed. - Minimum value is 1. - format: int32 - type: integer - timeoutSeconds: - description: |- - TimeoutSeconds specifies number of seconds after which the probe times out - Minimum value is 1. - format: int32 - type: integer - type: object - startupProbeDisabled: - description: StartupProbeDisabled if true startupProbes are disabled - type: boolean - startupProbeSpec: - description: StartupProbeSpec override startup probe configuration - properties: - failureThreshold: - description: |- - FailureThreshold when a Pod starts and the probe fails, Kubernetes will try failureThreshold times before giving up. - Giving up means restarting the container. - Minimum value is 1. - format: int32 - type: integer - initialDelaySeconds: - description: |- - InitialDelaySeconds specifies number of seconds after the container has started before liveness or readiness probes are initiated. - Minimum value is 0. - format: int32 - type: integer - periodSeconds: - description: |- - PeriodSeconds How often (in seconds) to perform the probe. - Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - SuccessThreshold Minimum consecutive successes for the probe to be considered successful after having failed. - Minimum value is 1. - format: int32 - type: integer - timeoutSeconds: - description: |- - TimeoutSeconds specifies number of seconds after which the probe times out - Minimum value is 1. - format: int32 - type: integer - type: object - type: object - pvcResizeMode: - description: VolumeResizeMode specified resize mode for PVCs and PVs - enum: - - runtime - - rotate - type: string - resources: - description: Resources holds resource requests & limits - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - schedulerName: - description: SchedulerName define scheduler name used for group - type: string - securityContext: - description: |- - SecurityContext specifies additional `securityContext` settings in ArangoDB Pod definitions. - This is similar (but not fully compatible) to k8s SecurityContext definition. - properties: - addCapabilities: - description: AddCapabilities add new capabilities to containers - items: - type: string - type: array - allowPrivilegeEscalation: - description: AllowPrivilegeEscalation Controls whether a process can gain more privileges than its parent process. - type: boolean - dropAllCapabilities: - description: DropAllCapabilities specifies if capabilities should be dropped for this pod containers - type: boolean - fsGroup: - description: FSGroup is a special supplemental group that applies to all containers in a pod. - format: int64 - type: integer - privileged: - description: |- - Privileged If true, runs container in privileged mode. Processes in privileged containers are - essentially equivalent to root on the host. - type: boolean - readOnlyRootFilesystem: - description: ReadOnlyRootFilesystem if true, mounts the container's root filesystem as read-only. - type: boolean - runAsGroup: - description: RunAsGroup is the GID to run the entrypoint of the container process. - format: int64 - type: integer - runAsNonRoot: - description: RunAsNonRoot if true, indicates that the container must run as a non-root user. - type: boolean - runAsUser: - description: RunAsUser is the UID to run the entrypoint of the container process. - format: int64 - type: integer - seLinuxOptions: - description: SELinuxOptions are the labels to be applied to the container - properties: - level: - type: string - role: - type: string - type: - type: string - user: - type: string - type: object - seccompProfile: - description: SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set. - properties: - localhostProfile: - type: string - type: - type: string - type: object - supplementalGroups: - description: |- - SupplementalGroups is a list of groups applied to the first process run in each container, in addition to the container's primary GID, - the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. - items: - format: int64 - type: integer - type: array - sysctls: - additionalProperties: - type: string - x-kubernetes-int-or-string: true - description: |- - Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported - sysctls (by the container runtime) might fail to launch. - Map Value can be String or Int - type: object - type: object - serviceAccountName: - description: |- - ServiceAccountName setting specifies the `serviceAccountName` for the `Pods` created - for each server of this group. If empty, it defaults to using the - `default` service account. - Using an alternative `ServiceAccount` is typically used to separate access rights. - The ArangoDB deployments need some very minimal access rights. With the - deployment of the operator, we grant the rights to 'get' all 'pod' resources. - If you are using a different service account, please grant these rights - to that service account. - type: string - shutdownDelay: - description: ShutdownDelay define how long operator should delay finalizer removal after shutdown - format: int32 - type: integer - shutdownMethod: - description: ShutdownMethod describe procedure of member shutdown taken by Operator - type: string - sidecarCoreNames: - description: |- - SidecarCoreNames is a list of sidecar containers which must run in the pod. - Some names (e.g.: "server", "worker") are reserved, and they don't have any impact. - items: - type: string - type: array - sidecars: - description: Sidecars specifies a list of additional containers to be started - items: - properties: - args: - items: - type: string - type: array - command: - items: - type: string - type: array - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - name: - type: string - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - type: object - type: array - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - restartPolicy: - type: string - securityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - stdin: - type: boolean - stdinOnce: - type: boolean - terminationMessagePath: - type: string - terminationMessagePolicy: - type: string - tty: - type: boolean - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - type: object - type: array - workingDir: - type: string - type: object - type: array - storageClassName: - description: StorageClassName specifies the classname for storage of the servers. - type: string - terminationGracePeriodSeconds: - description: TerminationGracePeriodSeconds override default TerminationGracePeriodSeconds for pods - via silent rotation - format: int64 - type: integer - tolerations: - description: |- - Tolerations specifies the tolerations added to Pods in this group. - By default, suitable tolerations are set for the following keys with the `NoExecute` effect: - - `node.kubernetes.io/not-ready` - - `node.kubernetes.io/unreachable` - - `node.alpha.kubernetes.io/unreachable` (will be removed in future version) - For more information on tolerations, consult the https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - format: int64 - type: integer - value: - type: string - type: object - type: array - volumeAllowShrink: - description: VolumeAllowShrink allows shrinking of the volume - type: boolean - volumeClaimTemplate: - description: |- - VolumeClaimTemplate specifies a volumeClaimTemplate used by operator to create to volume claims for pods of this group. - This setting is not available for group `coordinators`, `syncmasters` & `syncworkers`. - The default value describes a volume with `8Gi` storage, `ReadWriteOnce` access mode and volume mode set to `PersistentVolumeFilesystem`. - If this field is not set and `spec..resources.requests.storage` is set, then a default volume claim - with size as specified by `spec..resources.requests.storage` will be created. In that case `storage` - and `iops` is not forwarded to the pods resource requirements. - properties: - apiVersion: - type: string - kind: - type: string - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - creationTimestamp: - format: date-time - type: string - deletionGracePeriodSeconds: - format: int64 - type: integer - deletionTimestamp: - format: date-time - type: string - finalizers: - items: - type: string - type: array - generateName: - type: string - generation: - format: int64 - type: integer - labels: - additionalProperties: - type: string - type: object - managedFields: - items: - properties: - apiVersion: - type: string - fieldsType: - type: string - fieldsV1: - type: object - manager: - type: string - operation: - type: string - subresource: - type: string - time: - format: date-time - type: string - type: object - type: array - name: - type: string - namespace: - type: string - ownerReferences: - items: - properties: - apiVersion: - type: string - blockOwnerDeletion: - type: boolean - controller: - type: boolean - kind: - type: string - name: - type: string - uid: - type: string - type: object - type: array - resourceVersion: - type: string - selfLink: - type: string - uid: - type: string - type: object - spec: - properties: - accessModes: - items: - type: string - type: array - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - type: object - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - type: object - resources: - properties: - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string - volumeAttributesClassName: - type: string - volumeMode: - type: string - volumeName: - type: string - type: object - status: - properties: - accessModes: - items: - type: string - type: array - allocatedResourceStatuses: - additionalProperties: - type: string - type: object - allocatedResources: - additionalProperties: - type: string - type: object - capacity: - additionalProperties: - type: string - type: object - conditions: - items: - properties: - lastProbeTime: - format: date-time - type: string - lastTransitionTime: - format: date-time - type: string - message: - type: string - reason: - type: string - status: - type: string - type: - type: string - type: object - type: array - currentVolumeAttributesClassName: - type: string - modifyVolumeStatus: - properties: - status: - type: string - targetVolumeAttributesClassName: - type: string - type: object - phase: - type: string - type: object - type: object - volumeMounts: - description: VolumeMounts define list of volume mounts mounted into server container - items: - properties: - mountPath: - description: |- - Path within the container at which the volume should be mounted. Must - not contain ':'. - type: string - mountPropagation: - description: |- - mountPropagation determines how mounts are propagated from the host - to container and the other way around. - When not set, MountPropagationNone is used. - This field is beta in 1.10. - When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified - (which defaults to None). - type: string - name: - description: This must match the Name of a Volume. - type: string - readOnly: - description: |- - Mounted read-only if true, read-write otherwise (false or unspecified). - Defaults to false. - type: boolean - subPath: - description: |- - Path within the volume from which the container's volume should be mounted. - Defaults to "" (volume's root). - type: string - subPathExpr: - description: |- - Expanded path within the volume from which the container's volume should be mounted. - Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. - Defaults to "" (volume's root). - SubPathExpr and SubPath are mutually exclusive. - type: string - type: object - type: array - volumes: - description: Volumes define list of volumes mounted to pod - items: - properties: - configMap: - description: ConfigMap which should be mounted into pod - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - type: object - type: array - name: - type: string - optional: - type: boolean - type: object - emptyDir: - description: EmptyDir - properties: - medium: - type: string - sizeLimit: - type: string - type: object - hostPath: - description: HostPath - properties: - path: - type: string - type: - type: string - type: object - name: - description: Name of volume - type: string - persistentVolumeClaim: - description: PersistentVolumeClaim - properties: - claimName: - type: string - readOnly: - type: boolean - type: object - secret: - description: Secret which should be mounted into pod - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - type: object - type: array - optional: - type: boolean - secretName: - type: string - type: object - type: object - type: array - type: object - allowUnsafeUpgrade: - description: AllowUnsafeUpgrade determines if upgrade on missing member or with not in sync shards is allowed - type: boolean - annotations: - additionalProperties: - type: string - description: Annotations specifies the annotations added to all ArangoDeployment owned resources (pods, services, PVC’s, PDB’s). - type: object - annotationsIgnoreList: - description: AnnotationsIgnoreList list regexp or plain definitions which annotations should be ignored - items: - type: string - type: array - annotationsMode: - description: AnnotationsMode defines annotations mode which should be use while overriding annotations. - enum: - - disabled - - append - - replace - type: string - architecture: - description: |- - Architecture defines the list of supported architectures. - First element on the list is marked as default architecture. - Possible values are: - - `amd64`: Use processors with the x86-64 architecture. - - `arm64`: Use processors with the 64-bit ARM architecture. - The setting expects a list of strings, but you should only specify a single - list item for the architecture, except when you want to migrate from one - architecture to the other. The first list item defines the new default - architecture for the deployment that you want to migrate to. - items: - type: string - type: array - auth: - description: Authentication holds authentication configuration settings - properties: - jwtSecretName: - description: |- - JWTSecretName setting specifies the name of a kubernetes `Secret` that contains a secret key used for generating - JWT tokens to access all ArangoDB servers. - When no name is specified, it defaults to `-jwt`. - To disable authentication, set this value to `None`. - If you specify a name of a `Secret`, that secret must have the key value in a data field named `token`. - If you specify a name of a `Secret` that does not exist, a random key is created and stored in a `Secret` with given name. - Changing secret key results in restarting of a whole cluster. - type: string - type: object - bootstrap: - description: Bootstrap contains information for cluster bootstrapping - properties: - passwordSecretNames: - additionalProperties: - type: string - description: |- - PasswordSecretNames contains a map of username to password-secret-name - This setting specifies a secret name for the credentials per specific users. - When a deployment is created the operator will setup the user accounts - according to the credentials given by the secret. If the secret doesn't exist - the operator creates a secret with a random password. - There are two magic values for the secret name: - - `None` specifies no action. This disables root password randomization. This is the default value. (Thus the root password is empty - not recommended) - - `Auto` specifies automatic name generation, which is `-root-password`. - type: object - type: object - chaos: - description: ChaosSpec can be used for chaos-monkey testing of your ArangoDeployment - properties: - enabled: - description: Enabled switches the chaos monkey for a deployment on or off. - type: boolean - interval: - description: Interval is the time between events - format: int64 - type: integer - kill-pod-probability: - description: KillPodProbability is the chance of a pod being killed during an event - format: int32 - type: integer - type: object - communicationMethod: - description: CommunicationMethod define communication method used in deployment - enum: - - headless - - dns - - short-dns - - headless-dns - - ip - type: string - coordinators: - description: Coordinators contains specification for Coordinator pods running in deployment mode `Cluster` or `ActiveFailover`. - properties: - affinity: - description: Affinity specified additional affinity settings in ArangoDB Pod definitions - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - format: int32 - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - allowMemberRecreation: - description: |- - AllowMemberRecreation allows to recreate member. - This setting changes the member recreation logic based on group: - - For Sync Masters, Sync Workers, Coordinator and DB-Servers it determines if a member can be recreated in case of failure (default `true`) - - For Agents and Single this value is hardcoded to `false` and the value provided in spec is ignored. - type: boolean - annotations: - additionalProperties: - type: string - description: |- - Annotations specified the annotations added to Pods in this group. - Annotations are merged with `spec.annotations`. - type: object - annotationsIgnoreList: - description: AnnotationsIgnoreList list regexp or plain definitions which annotations should be ignored - items: - type: string - type: array - annotationsMode: - description: AnnotationsMode Define annotations mode which should be use while overriding annotations - type: string - antiAffinity: - description: AntiAffinity specified additional antiAffinity settings in ArangoDB Pod definitions - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - format: int32 - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - args: - description: Args setting specifies additional command-line arguments passed to all servers of this group. - items: - type: string - type: array - count: - description: |- - Count setting specifies the number of servers to start for the given group. - For the Agent group, this value must be a positive, odd number. - The default value is `3` for all groups except `single` (there the default is `1` - for `spec.mode: Single` and `2` for `spec.mode: ActiveFailover`). - For the `syncworkers` group, it is highly recommended to use the same number - as for the `dbservers` group. - format: int32 - type: integer - entrypoint: - description: Entrypoint overrides container executable - type: string - envs: - description: Envs allow to specify additional envs in this group. - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - ephemeralVolumes: - description: EphemeralVolumes keeps information about ephemeral volumes. - properties: - apps: - description: Apps define apps ephemeral volume in case if `ephemeral-volumes` feature is enabled. - properties: - size: - description: Size define size of the ephemeral volume - type: string - type: object - temp: - description: Temp define temp ephemeral volume in case if `ephemeral-volumes` feature is enabled. - properties: - size: - description: Size define size of the ephemeral volume - type: string - type: object - type: object - exporterPort: - description: ExporterPort define Port used by exporter - format: int32 - type: integer - extendedRotationCheck: - description: ExtendedRotationCheck extend checks for rotation - type: boolean - externalPortEnabled: - description: ExternalPortEnabled if external port should be enabled. If is set to false, ports needs to be exposed via sidecar. Only for ArangoD members - type: boolean - indexMethod: - description: IndexMethod define group Indexing method - enum: - - random - - ordered - type: string - initContainers: - description: InitContainers Init containers specification - properties: - containers: - description: Containers contains list of containers - items: - properties: - args: - items: - type: string - type: array - command: - items: - type: string - type: array - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - name: - type: string - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - type: object - type: array - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - restartPolicy: - type: string - securityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - stdin: - type: boolean - stdinOnce: - type: boolean - terminationMessagePath: - type: string - terminationMessagePolicy: - type: string - tty: - type: boolean - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - type: object - type: array - workingDir: - type: string - type: object - type: array - mode: - description: Mode keep container replace mode - enum: - - update - - ignore - type: string - type: object - internalPort: - description: InternalPort define port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members - format: int32 - type: integer - internalPortProtocol: - description: InternalPortProtocol define protocol of port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members - type: string - labels: - additionalProperties: - type: string - description: Labels specified the labels added to Pods in this group. - type: object - labelsIgnoreList: - description: LabelsIgnoreList list regexp or plain definitions which labels should be ignored - items: - type: string - type: array - labelsMode: - description: LabelsMode Define labels mode which should be use while overriding labels - type: string - maxCount: - description: MaxCount specifies a maximum for the count of servers. If set, a specification is invalid if `count > maxCount`. - format: int32 - type: integer - memoryReservation: - description: |- - MemoryReservation determines the system reservation of memory while calculating `ARANGODB_OVERRIDE_DETECTED_TOTAL_MEMORY` value. - If this field is set, `ARANGODB_OVERRIDE_DETECTED_TOTAL_MEMORY` is reduced by a specified value in percent. - Accepted Range <0, 50>. If the value is outside the accepted range, it is adjusted to the closest value. - format: int64 - type: integer - minCount: - description: MinCount specifies a minimum for the count of servers. If set, a specification is invalid if `count < minCount`. - format: int32 - type: integer - nodeAffinity: - description: NodeAffinity specified additional nodeAffinity settings in ArangoDB Pod definitions - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - weight: - format: int32 - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - type: array - type: object - type: object - nodeSelector: - additionalProperties: - type: string - description: NodeSelector setting specifies a set of labels to be used as `nodeSelector` for Pods of this node. - type: object - numactl: - description: Numactl define Numactl options passed to the process - properties: - args: - description: Args define list of the numactl process - items: - type: string - type: array - enabled: - description: Enabled define if numactl should be enabled - type: boolean - path: - description: Path define numactl path within the container - type: string - type: object - overrideDetectedNumberOfCores: - description: |- - OverrideDetectedNumberOfCores determines if number of cores should be overridden based on values in resources. - If is set to true and Container CPU Limits are set, it sets Container Environment Variable `ARANGODB_OVERRIDE_DETECTED_NUMBER_OF_CORES` to the value from the Container CPU Limits. - type: boolean - overrideDetectedTotalMemory: - description: |- - OverrideDetectedTotalMemory determines if memory should be overridden based on values in resources. - If is set to true and Container Memory Limits are set, it sets Container Environment Variable `ARANGODB_OVERRIDE_DETECTED_TOTAL_MEMORY` to the value from the Container Memory Limits. - type: boolean - podModes: - description: PodModes define additional modes enabled on the Pod level - properties: - network: - type: string - pid: - type: string - type: object - port: - description: Port define Port used by member - format: int32 - type: integer - priorityClassName: - description: |- - PriorityClassName specifies a priority class name - Will be forwarded to the pod spec. - type: string - probes: - description: Probes specifies additional behaviour for probes - properties: - ReadinessProbeDisabled: - description: OldReadinessProbeDisabled if true readinessProbes are disabled - type: boolean - livenessProbeDisabled: - description: LivenessProbeDisabled if set to true, the operator does not generate a liveness probe for new pods belonging to this group - type: boolean - livenessProbeSpec: - description: LivenessProbeSpec override liveness probe configuration - properties: - failureThreshold: - description: |- - FailureThreshold when a Pod starts and the probe fails, Kubernetes will try failureThreshold times before giving up. - Giving up means restarting the container. - Minimum value is 1. - format: int32 - type: integer - initialDelaySeconds: - description: |- - InitialDelaySeconds specifies number of seconds after the container has started before liveness or readiness probes are initiated. - Minimum value is 0. - format: int32 - type: integer - periodSeconds: - description: |- - PeriodSeconds How often (in seconds) to perform the probe. - Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - SuccessThreshold Minimum consecutive successes for the probe to be considered successful after having failed. - Minimum value is 1. - format: int32 - type: integer - timeoutSeconds: - description: |- - TimeoutSeconds specifies number of seconds after which the probe times out - Minimum value is 1. - format: int32 - type: integer - type: object - readinessProbeDisabled: - description: ReadinessProbeDisabled override flag for probe disabled in good manner (lowercase) with backward compatibility - type: boolean - readinessProbeSpec: - description: ReadinessProbeSpec override readiness probe configuration - properties: - failureThreshold: - description: |- - FailureThreshold when a Pod starts and the probe fails, Kubernetes will try failureThreshold times before giving up. - Giving up means restarting the container. - Minimum value is 1. - format: int32 - type: integer - initialDelaySeconds: - description: |- - InitialDelaySeconds specifies number of seconds after the container has started before liveness or readiness probes are initiated. - Minimum value is 0. - format: int32 - type: integer - periodSeconds: - description: |- - PeriodSeconds How often (in seconds) to perform the probe. - Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - SuccessThreshold Minimum consecutive successes for the probe to be considered successful after having failed. - Minimum value is 1. - format: int32 - type: integer - timeoutSeconds: - description: |- - TimeoutSeconds specifies number of seconds after which the probe times out - Minimum value is 1. - format: int32 - type: integer - type: object - startupProbeDisabled: - description: StartupProbeDisabled if true startupProbes are disabled - type: boolean - startupProbeSpec: - description: StartupProbeSpec override startup probe configuration - properties: - failureThreshold: - description: |- - FailureThreshold when a Pod starts and the probe fails, Kubernetes will try failureThreshold times before giving up. - Giving up means restarting the container. - Minimum value is 1. - format: int32 - type: integer - initialDelaySeconds: - description: |- - InitialDelaySeconds specifies number of seconds after the container has started before liveness or readiness probes are initiated. - Minimum value is 0. - format: int32 - type: integer - periodSeconds: - description: |- - PeriodSeconds How often (in seconds) to perform the probe. - Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - SuccessThreshold Minimum consecutive successes for the probe to be considered successful after having failed. - Minimum value is 1. - format: int32 - type: integer - timeoutSeconds: - description: |- - TimeoutSeconds specifies number of seconds after which the probe times out - Minimum value is 1. - format: int32 - type: integer - type: object - type: object - pvcResizeMode: - description: VolumeResizeMode specified resize mode for PVCs and PVs - enum: - - runtime - - rotate - type: string - resources: - description: Resources holds resource requests & limits - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - schedulerName: - description: SchedulerName define scheduler name used for group - type: string - securityContext: - description: |- - SecurityContext specifies additional `securityContext` settings in ArangoDB Pod definitions. - This is similar (but not fully compatible) to k8s SecurityContext definition. - properties: - addCapabilities: - description: AddCapabilities add new capabilities to containers - items: - type: string - type: array - allowPrivilegeEscalation: - description: AllowPrivilegeEscalation Controls whether a process can gain more privileges than its parent process. - type: boolean - dropAllCapabilities: - description: DropAllCapabilities specifies if capabilities should be dropped for this pod containers - type: boolean - fsGroup: - description: FSGroup is a special supplemental group that applies to all containers in a pod. - format: int64 - type: integer - privileged: - description: |- - Privileged If true, runs container in privileged mode. Processes in privileged containers are - essentially equivalent to root on the host. - type: boolean - readOnlyRootFilesystem: - description: ReadOnlyRootFilesystem if true, mounts the container's root filesystem as read-only. - type: boolean - runAsGroup: - description: RunAsGroup is the GID to run the entrypoint of the container process. - format: int64 - type: integer - runAsNonRoot: - description: RunAsNonRoot if true, indicates that the container must run as a non-root user. - type: boolean - runAsUser: - description: RunAsUser is the UID to run the entrypoint of the container process. - format: int64 - type: integer - seLinuxOptions: - description: SELinuxOptions are the labels to be applied to the container - properties: - level: - type: string - role: - type: string - type: - type: string - user: - type: string - type: object - seccompProfile: - description: SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set. - properties: - localhostProfile: - type: string - type: - type: string - type: object - supplementalGroups: - description: |- - SupplementalGroups is a list of groups applied to the first process run in each container, in addition to the container's primary GID, - the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. - items: - format: int64 - type: integer - type: array - sysctls: - additionalProperties: - type: string - x-kubernetes-int-or-string: true - description: |- - Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported - sysctls (by the container runtime) might fail to launch. - Map Value can be String or Int - type: object - type: object - serviceAccountName: - description: |- - ServiceAccountName setting specifies the `serviceAccountName` for the `Pods` created - for each server of this group. If empty, it defaults to using the - `default` service account. - Using an alternative `ServiceAccount` is typically used to separate access rights. - The ArangoDB deployments need some very minimal access rights. With the - deployment of the operator, we grant the rights to 'get' all 'pod' resources. - If you are using a different service account, please grant these rights - to that service account. - type: string - shutdownDelay: - description: ShutdownDelay define how long operator should delay finalizer removal after shutdown - format: int32 - type: integer - shutdownMethod: - description: ShutdownMethod describe procedure of member shutdown taken by Operator - type: string - sidecarCoreNames: - description: |- - SidecarCoreNames is a list of sidecar containers which must run in the pod. - Some names (e.g.: "server", "worker") are reserved, and they don't have any impact. - items: - type: string - type: array - sidecars: - description: Sidecars specifies a list of additional containers to be started - items: - properties: - args: - items: - type: string - type: array - command: - items: - type: string - type: array - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - name: - type: string - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - type: object - type: array - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - restartPolicy: - type: string - securityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - stdin: - type: boolean - stdinOnce: - type: boolean - terminationMessagePath: - type: string - terminationMessagePolicy: - type: string - tty: - type: boolean - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - type: object - type: array - workingDir: - type: string - type: object - type: array - storageClassName: - description: StorageClassName specifies the classname for storage of the servers. - type: string - terminationGracePeriodSeconds: - description: TerminationGracePeriodSeconds override default TerminationGracePeriodSeconds for pods - via silent rotation - format: int64 - type: integer - tolerations: - description: |- - Tolerations specifies the tolerations added to Pods in this group. - By default, suitable tolerations are set for the following keys with the `NoExecute` effect: - - `node.kubernetes.io/not-ready` - - `node.kubernetes.io/unreachable` - - `node.alpha.kubernetes.io/unreachable` (will be removed in future version) - For more information on tolerations, consult the https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - format: int64 - type: integer - value: - type: string - type: object - type: array - volumeAllowShrink: - description: VolumeAllowShrink allows shrinking of the volume - type: boolean - volumeClaimTemplate: - description: |- - VolumeClaimTemplate specifies a volumeClaimTemplate used by operator to create to volume claims for pods of this group. - This setting is not available for group `coordinators`, `syncmasters` & `syncworkers`. - The default value describes a volume with `8Gi` storage, `ReadWriteOnce` access mode and volume mode set to `PersistentVolumeFilesystem`. - If this field is not set and `spec..resources.requests.storage` is set, then a default volume claim - with size as specified by `spec..resources.requests.storage` will be created. In that case `storage` - and `iops` is not forwarded to the pods resource requirements. - properties: - apiVersion: - type: string - kind: - type: string - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - creationTimestamp: - format: date-time - type: string - deletionGracePeriodSeconds: - format: int64 - type: integer - deletionTimestamp: - format: date-time - type: string - finalizers: - items: - type: string - type: array - generateName: - type: string - generation: - format: int64 - type: integer - labels: - additionalProperties: - type: string - type: object - managedFields: - items: - properties: - apiVersion: - type: string - fieldsType: - type: string - fieldsV1: - type: object - manager: - type: string - operation: - type: string - subresource: - type: string - time: - format: date-time - type: string - type: object - type: array - name: - type: string - namespace: - type: string - ownerReferences: - items: - properties: - apiVersion: - type: string - blockOwnerDeletion: - type: boolean - controller: - type: boolean - kind: - type: string - name: - type: string - uid: - type: string - type: object - type: array - resourceVersion: - type: string - selfLink: - type: string - uid: - type: string - type: object - spec: - properties: - accessModes: - items: - type: string - type: array - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - type: object - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - type: object - resources: - properties: - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string - volumeAttributesClassName: - type: string - volumeMode: - type: string - volumeName: - type: string - type: object - status: - properties: - accessModes: - items: - type: string - type: array - allocatedResourceStatuses: - additionalProperties: - type: string - type: object - allocatedResources: - additionalProperties: - type: string - type: object - capacity: - additionalProperties: - type: string - type: object - conditions: - items: - properties: - lastProbeTime: - format: date-time - type: string - lastTransitionTime: - format: date-time - type: string - message: - type: string - reason: - type: string - status: - type: string - type: - type: string - type: object - type: array - currentVolumeAttributesClassName: - type: string - modifyVolumeStatus: - properties: - status: - type: string - targetVolumeAttributesClassName: - type: string - type: object - phase: - type: string - type: object - type: object - volumeMounts: - description: VolumeMounts define list of volume mounts mounted into server container - items: - properties: - mountPath: - description: |- - Path within the container at which the volume should be mounted. Must - not contain ':'. - type: string - mountPropagation: - description: |- - mountPropagation determines how mounts are propagated from the host - to container and the other way around. - When not set, MountPropagationNone is used. - This field is beta in 1.10. - When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified - (which defaults to None). - type: string - name: - description: This must match the Name of a Volume. - type: string - readOnly: - description: |- - Mounted read-only if true, read-write otherwise (false or unspecified). - Defaults to false. - type: boolean - subPath: - description: |- - Path within the volume from which the container's volume should be mounted. - Defaults to "" (volume's root). - type: string - subPathExpr: - description: |- - Expanded path within the volume from which the container's volume should be mounted. - Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. - Defaults to "" (volume's root). - SubPathExpr and SubPath are mutually exclusive. - type: string - type: object - type: array - volumes: - description: Volumes define list of volumes mounted to pod - items: - properties: - configMap: - description: ConfigMap which should be mounted into pod - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - type: object - type: array - name: - type: string - optional: - type: boolean - type: object - emptyDir: - description: EmptyDir - properties: - medium: - type: string - sizeLimit: - type: string - type: object - hostPath: - description: HostPath - properties: - path: - type: string - type: - type: string - type: object - name: - description: Name of volume - type: string - persistentVolumeClaim: - description: PersistentVolumeClaim - properties: - claimName: - type: string - readOnly: - type: boolean - type: object - secret: - description: Secret which should be mounted into pod - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - type: object - type: array - optional: - type: boolean - secretName: - type: string - type: object - type: object - type: array - type: object - database: - description: Database holds information about database state, like maintenance mode - properties: - maintenance: - description: Maintenance manage maintenance mode on Cluster side. Requires maintenance feature to be enabled - type: boolean - type: object - dbservers: - description: DBServers contains specification for DBServer pods running in deployment mode `Cluster` or `ActiveFailover`. - properties: - affinity: - description: Affinity specified additional affinity settings in ArangoDB Pod definitions - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - format: int32 - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - allowMemberRecreation: - description: |- - AllowMemberRecreation allows to recreate member. - This setting changes the member recreation logic based on group: - - For Sync Masters, Sync Workers, Coordinator and DB-Servers it determines if a member can be recreated in case of failure (default `true`) - - For Agents and Single this value is hardcoded to `false` and the value provided in spec is ignored. - type: boolean - annotations: - additionalProperties: - type: string - description: |- - Annotations specified the annotations added to Pods in this group. - Annotations are merged with `spec.annotations`. - type: object - annotationsIgnoreList: - description: AnnotationsIgnoreList list regexp or plain definitions which annotations should be ignored - items: - type: string - type: array - annotationsMode: - description: AnnotationsMode Define annotations mode which should be use while overriding annotations - type: string - antiAffinity: - description: AntiAffinity specified additional antiAffinity settings in ArangoDB Pod definitions - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - format: int32 - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - args: - description: Args setting specifies additional command-line arguments passed to all servers of this group. - items: - type: string - type: array - count: - description: |- - Count setting specifies the number of servers to start for the given group. - For the Agent group, this value must be a positive, odd number. - The default value is `3` for all groups except `single` (there the default is `1` - for `spec.mode: Single` and `2` for `spec.mode: ActiveFailover`). - For the `syncworkers` group, it is highly recommended to use the same number - as for the `dbservers` group. - format: int32 - type: integer - entrypoint: - description: Entrypoint overrides container executable - type: string - envs: - description: Envs allow to specify additional envs in this group. - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - ephemeralVolumes: - description: EphemeralVolumes keeps information about ephemeral volumes. - properties: - apps: - description: Apps define apps ephemeral volume in case if `ephemeral-volumes` feature is enabled. - properties: - size: - description: Size define size of the ephemeral volume - type: string - type: object - temp: - description: Temp define temp ephemeral volume in case if `ephemeral-volumes` feature is enabled. - properties: - size: - description: Size define size of the ephemeral volume - type: string - type: object - type: object - exporterPort: - description: ExporterPort define Port used by exporter - format: int32 - type: integer - extendedRotationCheck: - description: ExtendedRotationCheck extend checks for rotation - type: boolean - externalPortEnabled: - description: ExternalPortEnabled if external port should be enabled. If is set to false, ports needs to be exposed via sidecar. Only for ArangoD members - type: boolean - indexMethod: - description: IndexMethod define group Indexing method - enum: - - random - - ordered - type: string - initContainers: - description: InitContainers Init containers specification - properties: - containers: - description: Containers contains list of containers - items: - properties: - args: - items: - type: string - type: array - command: - items: - type: string - type: array - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - name: - type: string - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - type: object - type: array - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - restartPolicy: - type: string - securityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - stdin: - type: boolean - stdinOnce: - type: boolean - terminationMessagePath: - type: string - terminationMessagePolicy: - type: string - tty: - type: boolean - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - type: object - type: array - workingDir: - type: string - type: object - type: array - mode: - description: Mode keep container replace mode - enum: - - update - - ignore - type: string - type: object - internalPort: - description: InternalPort define port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members - format: int32 - type: integer - internalPortProtocol: - description: InternalPortProtocol define protocol of port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members - type: string - labels: - additionalProperties: - type: string - description: Labels specified the labels added to Pods in this group. - type: object - labelsIgnoreList: - description: LabelsIgnoreList list regexp or plain definitions which labels should be ignored - items: - type: string - type: array - labelsMode: - description: LabelsMode Define labels mode which should be use while overriding labels - type: string - maxCount: - description: MaxCount specifies a maximum for the count of servers. If set, a specification is invalid if `count > maxCount`. - format: int32 - type: integer - memoryReservation: - description: |- - MemoryReservation determines the system reservation of memory while calculating `ARANGODB_OVERRIDE_DETECTED_TOTAL_MEMORY` value. - If this field is set, `ARANGODB_OVERRIDE_DETECTED_TOTAL_MEMORY` is reduced by a specified value in percent. - Accepted Range <0, 50>. If the value is outside the accepted range, it is adjusted to the closest value. - format: int64 - type: integer - minCount: - description: MinCount specifies a minimum for the count of servers. If set, a specification is invalid if `count < minCount`. - format: int32 - type: integer - nodeAffinity: - description: NodeAffinity specified additional nodeAffinity settings in ArangoDB Pod definitions - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - weight: - format: int32 - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - type: array - type: object - type: object - nodeSelector: - additionalProperties: - type: string - description: NodeSelector setting specifies a set of labels to be used as `nodeSelector` for Pods of this node. - type: object - numactl: - description: Numactl define Numactl options passed to the process - properties: - args: - description: Args define list of the numactl process - items: - type: string - type: array - enabled: - description: Enabled define if numactl should be enabled - type: boolean - path: - description: Path define numactl path within the container - type: string - type: object - overrideDetectedNumberOfCores: - description: |- - OverrideDetectedNumberOfCores determines if number of cores should be overridden based on values in resources. - If is set to true and Container CPU Limits are set, it sets Container Environment Variable `ARANGODB_OVERRIDE_DETECTED_NUMBER_OF_CORES` to the value from the Container CPU Limits. - type: boolean - overrideDetectedTotalMemory: - description: |- - OverrideDetectedTotalMemory determines if memory should be overridden based on values in resources. - If is set to true and Container Memory Limits are set, it sets Container Environment Variable `ARANGODB_OVERRIDE_DETECTED_TOTAL_MEMORY` to the value from the Container Memory Limits. - type: boolean - podModes: - description: PodModes define additional modes enabled on the Pod level - properties: - network: - type: string - pid: - type: string - type: object - port: - description: Port define Port used by member - format: int32 - type: integer - priorityClassName: - description: |- - PriorityClassName specifies a priority class name - Will be forwarded to the pod spec. - type: string - probes: - description: Probes specifies additional behaviour for probes - properties: - ReadinessProbeDisabled: - description: OldReadinessProbeDisabled if true readinessProbes are disabled - type: boolean - livenessProbeDisabled: - description: LivenessProbeDisabled if set to true, the operator does not generate a liveness probe for new pods belonging to this group - type: boolean - livenessProbeSpec: - description: LivenessProbeSpec override liveness probe configuration - properties: - failureThreshold: - description: |- - FailureThreshold when a Pod starts and the probe fails, Kubernetes will try failureThreshold times before giving up. - Giving up means restarting the container. - Minimum value is 1. - format: int32 - type: integer - initialDelaySeconds: - description: |- - InitialDelaySeconds specifies number of seconds after the container has started before liveness or readiness probes are initiated. - Minimum value is 0. - format: int32 - type: integer - periodSeconds: - description: |- - PeriodSeconds How often (in seconds) to perform the probe. - Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - SuccessThreshold Minimum consecutive successes for the probe to be considered successful after having failed. - Minimum value is 1. - format: int32 - type: integer - timeoutSeconds: - description: |- - TimeoutSeconds specifies number of seconds after which the probe times out - Minimum value is 1. - format: int32 - type: integer - type: object - readinessProbeDisabled: - description: ReadinessProbeDisabled override flag for probe disabled in good manner (lowercase) with backward compatibility - type: boolean - readinessProbeSpec: - description: ReadinessProbeSpec override readiness probe configuration - properties: - failureThreshold: - description: |- - FailureThreshold when a Pod starts and the probe fails, Kubernetes will try failureThreshold times before giving up. - Giving up means restarting the container. - Minimum value is 1. - format: int32 - type: integer - initialDelaySeconds: - description: |- - InitialDelaySeconds specifies number of seconds after the container has started before liveness or readiness probes are initiated. - Minimum value is 0. - format: int32 - type: integer - periodSeconds: - description: |- - PeriodSeconds How often (in seconds) to perform the probe. - Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - SuccessThreshold Minimum consecutive successes for the probe to be considered successful after having failed. - Minimum value is 1. - format: int32 - type: integer - timeoutSeconds: - description: |- - TimeoutSeconds specifies number of seconds after which the probe times out - Minimum value is 1. - format: int32 - type: integer - type: object - startupProbeDisabled: - description: StartupProbeDisabled if true startupProbes are disabled - type: boolean - startupProbeSpec: - description: StartupProbeSpec override startup probe configuration - properties: - failureThreshold: - description: |- - FailureThreshold when a Pod starts and the probe fails, Kubernetes will try failureThreshold times before giving up. - Giving up means restarting the container. - Minimum value is 1. - format: int32 - type: integer - initialDelaySeconds: - description: |- - InitialDelaySeconds specifies number of seconds after the container has started before liveness or readiness probes are initiated. - Minimum value is 0. - format: int32 - type: integer - periodSeconds: - description: |- - PeriodSeconds How often (in seconds) to perform the probe. - Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - SuccessThreshold Minimum consecutive successes for the probe to be considered successful after having failed. - Minimum value is 1. - format: int32 - type: integer - timeoutSeconds: - description: |- - TimeoutSeconds specifies number of seconds after which the probe times out - Minimum value is 1. - format: int32 - type: integer - type: object - type: object - pvcResizeMode: - description: VolumeResizeMode specified resize mode for PVCs and PVs - enum: - - runtime - - rotate - type: string - resources: - description: Resources holds resource requests & limits - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - schedulerName: - description: SchedulerName define scheduler name used for group - type: string - securityContext: - description: |- - SecurityContext specifies additional `securityContext` settings in ArangoDB Pod definitions. - This is similar (but not fully compatible) to k8s SecurityContext definition. - properties: - addCapabilities: - description: AddCapabilities add new capabilities to containers - items: - type: string - type: array - allowPrivilegeEscalation: - description: AllowPrivilegeEscalation Controls whether a process can gain more privileges than its parent process. - type: boolean - dropAllCapabilities: - description: DropAllCapabilities specifies if capabilities should be dropped for this pod containers - type: boolean - fsGroup: - description: FSGroup is a special supplemental group that applies to all containers in a pod. - format: int64 - type: integer - privileged: - description: |- - Privileged If true, runs container in privileged mode. Processes in privileged containers are - essentially equivalent to root on the host. - type: boolean - readOnlyRootFilesystem: - description: ReadOnlyRootFilesystem if true, mounts the container's root filesystem as read-only. - type: boolean - runAsGroup: - description: RunAsGroup is the GID to run the entrypoint of the container process. - format: int64 - type: integer - runAsNonRoot: - description: RunAsNonRoot if true, indicates that the container must run as a non-root user. - type: boolean - runAsUser: - description: RunAsUser is the UID to run the entrypoint of the container process. - format: int64 - type: integer - seLinuxOptions: - description: SELinuxOptions are the labels to be applied to the container - properties: - level: - type: string - role: - type: string - type: - type: string - user: - type: string - type: object - seccompProfile: - description: SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set. - properties: - localhostProfile: - type: string - type: - type: string - type: object - supplementalGroups: - description: |- - SupplementalGroups is a list of groups applied to the first process run in each container, in addition to the container's primary GID, - the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. - items: - format: int64 - type: integer - type: array - sysctls: - additionalProperties: - type: string - x-kubernetes-int-or-string: true - description: |- - Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported - sysctls (by the container runtime) might fail to launch. - Map Value can be String or Int - type: object - type: object - serviceAccountName: - description: |- - ServiceAccountName setting specifies the `serviceAccountName` for the `Pods` created - for each server of this group. If empty, it defaults to using the - `default` service account. - Using an alternative `ServiceAccount` is typically used to separate access rights. - The ArangoDB deployments need some very minimal access rights. With the - deployment of the operator, we grant the rights to 'get' all 'pod' resources. - If you are using a different service account, please grant these rights - to that service account. - type: string - shutdownDelay: - description: ShutdownDelay define how long operator should delay finalizer removal after shutdown - format: int32 - type: integer - shutdownMethod: - description: ShutdownMethod describe procedure of member shutdown taken by Operator - type: string - sidecarCoreNames: - description: |- - SidecarCoreNames is a list of sidecar containers which must run in the pod. - Some names (e.g.: "server", "worker") are reserved, and they don't have any impact. - items: - type: string - type: array - sidecars: - description: Sidecars specifies a list of additional containers to be started - items: - properties: - args: - items: - type: string - type: array - command: - items: - type: string - type: array - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - name: - type: string - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - type: object - type: array - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - restartPolicy: - type: string - securityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - stdin: - type: boolean - stdinOnce: - type: boolean - terminationMessagePath: - type: string - terminationMessagePolicy: - type: string - tty: - type: boolean - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - type: object - type: array - workingDir: - type: string - type: object - type: array - storageClassName: - description: StorageClassName specifies the classname for storage of the servers. - type: string - terminationGracePeriodSeconds: - description: TerminationGracePeriodSeconds override default TerminationGracePeriodSeconds for pods - via silent rotation - format: int64 - type: integer - tolerations: - description: |- - Tolerations specifies the tolerations added to Pods in this group. - By default, suitable tolerations are set for the following keys with the `NoExecute` effect: - - `node.kubernetes.io/not-ready` - - `node.kubernetes.io/unreachable` - - `node.alpha.kubernetes.io/unreachable` (will be removed in future version) - For more information on tolerations, consult the https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - format: int64 - type: integer - value: - type: string - type: object - type: array - volumeAllowShrink: - description: VolumeAllowShrink allows shrinking of the volume - type: boolean - volumeClaimTemplate: - description: |- - VolumeClaimTemplate specifies a volumeClaimTemplate used by operator to create to volume claims for pods of this group. - This setting is not available for group `coordinators`, `syncmasters` & `syncworkers`. - The default value describes a volume with `8Gi` storage, `ReadWriteOnce` access mode and volume mode set to `PersistentVolumeFilesystem`. - If this field is not set and `spec..resources.requests.storage` is set, then a default volume claim - with size as specified by `spec..resources.requests.storage` will be created. In that case `storage` - and `iops` is not forwarded to the pods resource requirements. - properties: - apiVersion: - type: string - kind: - type: string - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - creationTimestamp: - format: date-time - type: string - deletionGracePeriodSeconds: - format: int64 - type: integer - deletionTimestamp: - format: date-time - type: string - finalizers: - items: - type: string - type: array - generateName: - type: string - generation: - format: int64 - type: integer - labels: - additionalProperties: - type: string - type: object - managedFields: - items: - properties: - apiVersion: - type: string - fieldsType: - type: string - fieldsV1: - type: object - manager: - type: string - operation: - type: string - subresource: - type: string - time: - format: date-time - type: string - type: object - type: array - name: - type: string - namespace: - type: string - ownerReferences: - items: - properties: - apiVersion: - type: string - blockOwnerDeletion: - type: boolean - controller: - type: boolean - kind: - type: string - name: - type: string - uid: - type: string - type: object - type: array - resourceVersion: - type: string - selfLink: - type: string - uid: - type: string - type: object - spec: - properties: - accessModes: - items: - type: string - type: array - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - type: object - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - type: object - resources: - properties: - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string - volumeAttributesClassName: - type: string - volumeMode: - type: string - volumeName: - type: string - type: object - status: - properties: - accessModes: - items: - type: string - type: array - allocatedResourceStatuses: - additionalProperties: - type: string - type: object - allocatedResources: - additionalProperties: - type: string - type: object - capacity: - additionalProperties: - type: string - type: object - conditions: - items: - properties: - lastProbeTime: - format: date-time - type: string - lastTransitionTime: - format: date-time - type: string - message: - type: string - reason: - type: string - status: - type: string - type: - type: string - type: object - type: array - currentVolumeAttributesClassName: - type: string - modifyVolumeStatus: - properties: - status: - type: string - targetVolumeAttributesClassName: - type: string - type: object - phase: - type: string - type: object - type: object - volumeMounts: - description: VolumeMounts define list of volume mounts mounted into server container - items: - properties: - mountPath: - description: |- - Path within the container at which the volume should be mounted. Must - not contain ':'. - type: string - mountPropagation: - description: |- - mountPropagation determines how mounts are propagated from the host - to container and the other way around. - When not set, MountPropagationNone is used. - This field is beta in 1.10. - When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified - (which defaults to None). - type: string - name: - description: This must match the Name of a Volume. - type: string - readOnly: - description: |- - Mounted read-only if true, read-write otherwise (false or unspecified). - Defaults to false. - type: boolean - subPath: - description: |- - Path within the volume from which the container's volume should be mounted. - Defaults to "" (volume's root). - type: string - subPathExpr: - description: |- - Expanded path within the volume from which the container's volume should be mounted. - Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. - Defaults to "" (volume's root). - SubPathExpr and SubPath are mutually exclusive. - type: string - type: object - type: array - volumes: - description: Volumes define list of volumes mounted to pod - items: - properties: - configMap: - description: ConfigMap which should be mounted into pod - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - type: object - type: array - name: - type: string - optional: - type: boolean - type: object - emptyDir: - description: EmptyDir - properties: - medium: - type: string - sizeLimit: - type: string - type: object - hostPath: - description: HostPath - properties: - path: - type: string - type: - type: string - type: object - name: - description: Name of volume - type: string - persistentVolumeClaim: - description: PersistentVolumeClaim - properties: - claimName: - type: string - readOnly: - type: boolean - type: object - secret: - description: Secret which should be mounted into pod - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - type: object - type: array - optional: - type: boolean - secretName: - type: string - type: object - type: object - type: array - type: object - disableIPv6: - description: |- - DisableIPv6 setting prevents the use of IPv6 addresses by ArangoDB servers. - This setting cannot be changed after the deployment has been created. - type: boolean - downtimeAllowed: - description: |- - DowntimeAllowed setting is used to allow automatic reconciliation actions that yield some downtime of the ArangoDB deployment. - When this setting is set to false, no automatic action that may result in downtime is allowed. - If the need for such an action is detected, an event is added to the ArangoDeployment. - Once this setting is set to true, the automatic action is executed. - Operations that may result in downtime are: - - Rotating TLS CA certificate - Note: It is still possible that there is some downtime when the Kubernetes cluster is down, or in a bad state, irrespective of the value of this setting. - type: boolean - environment: - description: Environment setting specifies the type of environment in which the deployment is created. - enum: - - Development - - Production - type: string - externalAccess: - description: ExternalAccess holds configuration for the external access provided for the deployment. - properties: - advertisedEndpoint: - description: AdvertisedEndpoint is passed to the coordinators/single servers for advertising a specific endpoint - type: string - loadBalancerIP: - description: |- - LoadBalancerIP define optional IP used to configure a load-balancer on, in case of Auto or LoadBalancer type. - If you do not specify this setting, an IP will be chosen automatically by the load-balancer provisioner. - type: string - loadBalancerSourceRanges: - description: |- - LoadBalancerSourceRanges define LoadBalancerSourceRanges used for LoadBalancer Service type - If specified and supported by the platform, this will restrict traffic through the cloud-provider - load-balancer will be restricted to the specified client IPs. This field will be ignored if the - cloud-provider does not support the feature. - items: - type: string - type: array - managedServiceNames: - description: |- - ManagedServiceNames keeps names of services which are not managed by KubeArangoDB. - It is only relevant when type of service is `managed`. - items: - type: string - type: array - nodePort: - description: |- - NodePort define optional port used in case of Auto or NodePort type. - This setting is used when `spec.externalAccess.type` is set to `NodePort` or `Auto`. - If you do not specify this setting, a random port will be chosen automatically. - format: int32 - type: integer - type: - description: Type specifies the type of Service that will be created to provide access to the ArangoDB deployment from outside the Kubernetes cluster. - enum: - - Auto - - None - - LoadBalancer - - NodePort - type: string - type: object - features: - description: Features allows to configure feature flags - properties: - foxx.queues: - type: boolean - type: object - gateway: - description: Gateway defined main Gateway configuration. - properties: - dynamic: - description: |- - Dynamic setting enables/disables support dynamic configuration of the gateway in the cluster. - When enabled, gateway config will be reloaded by ConfigMap live updates. - type: boolean - enabled: - description: |- - Enabled setting enables/disables support for gateway in the cluster. - When enabled, the cluster will contain a number of `gateway` servers. - type: boolean - image: - description: |- - Image is the image to use for the gateway. - By default, the image is determined by the operator. - type: string - type: object - gateways: - description: Gateways contain specification for Gateway pods running in deployment mode `Single` or `Cluster`. - properties: - affinity: - description: Affinity specified additional affinity settings in ArangoDB Pod definitions - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - format: int32 - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - allowMemberRecreation: - description: |- - AllowMemberRecreation allows to recreate member. - This setting changes the member recreation logic based on group: - - For Sync Masters, Sync Workers, Coordinator and DB-Servers it determines if a member can be recreated in case of failure (default `true`) - - For Agents and Single this value is hardcoded to `false` and the value provided in spec is ignored. - type: boolean - annotations: - additionalProperties: - type: string - description: |- - Annotations specified the annotations added to Pods in this group. - Annotations are merged with `spec.annotations`. - type: object - annotationsIgnoreList: - description: AnnotationsIgnoreList list regexp or plain definitions which annotations should be ignored - items: - type: string - type: array - annotationsMode: - description: AnnotationsMode Define annotations mode which should be use while overriding annotations - type: string - antiAffinity: - description: AntiAffinity specified additional antiAffinity settings in ArangoDB Pod definitions - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - format: int32 - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - args: - description: Args setting specifies additional command-line arguments passed to all servers of this group. - items: - type: string - type: array - count: - description: |- - Count setting specifies the number of servers to start for the given group. - For the Agent group, this value must be a positive, odd number. - The default value is `3` for all groups except `single` (there the default is `1` - for `spec.mode: Single` and `2` for `spec.mode: ActiveFailover`). - For the `syncworkers` group, it is highly recommended to use the same number - as for the `dbservers` group. - format: int32 - type: integer - entrypoint: - description: Entrypoint overrides container executable - type: string - envs: - description: Envs allow to specify additional envs in this group. - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - ephemeralVolumes: - description: EphemeralVolumes keeps information about ephemeral volumes. - properties: - apps: - description: Apps define apps ephemeral volume in case if `ephemeral-volumes` feature is enabled. - properties: - size: - description: Size define size of the ephemeral volume - type: string - type: object - temp: - description: Temp define temp ephemeral volume in case if `ephemeral-volumes` feature is enabled. - properties: - size: - description: Size define size of the ephemeral volume - type: string - type: object - type: object - exporterPort: - description: ExporterPort define Port used by exporter - format: int32 - type: integer - extendedRotationCheck: - description: ExtendedRotationCheck extend checks for rotation - type: boolean - externalPortEnabled: - description: ExternalPortEnabled if external port should be enabled. If is set to false, ports needs to be exposed via sidecar. Only for ArangoD members - type: boolean - indexMethod: - description: IndexMethod define group Indexing method - enum: - - random - - ordered - type: string - initContainers: - description: InitContainers Init containers specification - properties: - containers: - description: Containers contains list of containers - items: - properties: - args: - items: - type: string - type: array - command: - items: - type: string - type: array - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - name: - type: string - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - type: object - type: array - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - restartPolicy: - type: string - securityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - stdin: - type: boolean - stdinOnce: - type: boolean - terminationMessagePath: - type: string - terminationMessagePolicy: - type: string - tty: - type: boolean - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - type: object - type: array - workingDir: - type: string - type: object - type: array - mode: - description: Mode keep container replace mode - enum: - - update - - ignore - type: string - type: object - internalPort: - description: InternalPort define port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members - format: int32 - type: integer - internalPortProtocol: - description: InternalPortProtocol define protocol of port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members - type: string - labels: - additionalProperties: - type: string - description: Labels specified the labels added to Pods in this group. - type: object - labelsIgnoreList: - description: LabelsIgnoreList list regexp or plain definitions which labels should be ignored - items: - type: string - type: array - labelsMode: - description: LabelsMode Define labels mode which should be use while overriding labels - type: string - maxCount: - description: MaxCount specifies a maximum for the count of servers. If set, a specification is invalid if `count > maxCount`. - format: int32 - type: integer - memoryReservation: - description: |- - MemoryReservation determines the system reservation of memory while calculating `ARANGODB_OVERRIDE_DETECTED_TOTAL_MEMORY` value. - If this field is set, `ARANGODB_OVERRIDE_DETECTED_TOTAL_MEMORY` is reduced by a specified value in percent. - Accepted Range <0, 50>. If the value is outside the accepted range, it is adjusted to the closest value. - format: int64 - type: integer - minCount: - description: MinCount specifies a minimum for the count of servers. If set, a specification is invalid if `count < minCount`. - format: int32 - type: integer - nodeAffinity: - description: NodeAffinity specified additional nodeAffinity settings in ArangoDB Pod definitions - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - weight: - format: int32 - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - type: array - type: object - type: object - nodeSelector: - additionalProperties: - type: string - description: NodeSelector setting specifies a set of labels to be used as `nodeSelector` for Pods of this node. - type: object - numactl: - description: Numactl define Numactl options passed to the process - properties: - args: - description: Args define list of the numactl process - items: - type: string - type: array - enabled: - description: Enabled define if numactl should be enabled - type: boolean - path: - description: Path define numactl path within the container - type: string - type: object - overrideDetectedNumberOfCores: - description: |- - OverrideDetectedNumberOfCores determines if number of cores should be overridden based on values in resources. - If is set to true and Container CPU Limits are set, it sets Container Environment Variable `ARANGODB_OVERRIDE_DETECTED_NUMBER_OF_CORES` to the value from the Container CPU Limits. - type: boolean - overrideDetectedTotalMemory: - description: |- - OverrideDetectedTotalMemory determines if memory should be overridden based on values in resources. - If is set to true and Container Memory Limits are set, it sets Container Environment Variable `ARANGODB_OVERRIDE_DETECTED_TOTAL_MEMORY` to the value from the Container Memory Limits. - type: boolean - podModes: - description: PodModes define additional modes enabled on the Pod level - properties: - network: - type: string - pid: - type: string - type: object - port: - description: Port define Port used by member - format: int32 - type: integer - priorityClassName: - description: |- - PriorityClassName specifies a priority class name - Will be forwarded to the pod spec. - type: string - probes: - description: Probes specifies additional behaviour for probes - properties: - ReadinessProbeDisabled: - description: OldReadinessProbeDisabled if true readinessProbes are disabled - type: boolean - livenessProbeDisabled: - description: LivenessProbeDisabled if set to true, the operator does not generate a liveness probe for new pods belonging to this group - type: boolean - livenessProbeSpec: - description: LivenessProbeSpec override liveness probe configuration - properties: - failureThreshold: - description: |- - FailureThreshold when a Pod starts and the probe fails, Kubernetes will try failureThreshold times before giving up. - Giving up means restarting the container. - Minimum value is 1. - format: int32 - type: integer - initialDelaySeconds: - description: |- - InitialDelaySeconds specifies number of seconds after the container has started before liveness or readiness probes are initiated. - Minimum value is 0. - format: int32 - type: integer - periodSeconds: - description: |- - PeriodSeconds How often (in seconds) to perform the probe. - Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - SuccessThreshold Minimum consecutive successes for the probe to be considered successful after having failed. - Minimum value is 1. - format: int32 - type: integer - timeoutSeconds: - description: |- - TimeoutSeconds specifies number of seconds after which the probe times out - Minimum value is 1. - format: int32 - type: integer - type: object - readinessProbeDisabled: - description: ReadinessProbeDisabled override flag for probe disabled in good manner (lowercase) with backward compatibility - type: boolean - readinessProbeSpec: - description: ReadinessProbeSpec override readiness probe configuration - properties: - failureThreshold: - description: |- - FailureThreshold when a Pod starts and the probe fails, Kubernetes will try failureThreshold times before giving up. - Giving up means restarting the container. - Minimum value is 1. - format: int32 - type: integer - initialDelaySeconds: - description: |- - InitialDelaySeconds specifies number of seconds after the container has started before liveness or readiness probes are initiated. - Minimum value is 0. - format: int32 - type: integer - periodSeconds: - description: |- - PeriodSeconds How often (in seconds) to perform the probe. - Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - SuccessThreshold Minimum consecutive successes for the probe to be considered successful after having failed. - Minimum value is 1. - format: int32 - type: integer - timeoutSeconds: - description: |- - TimeoutSeconds specifies number of seconds after which the probe times out - Minimum value is 1. - format: int32 - type: integer - type: object - startupProbeDisabled: - description: StartupProbeDisabled if true startupProbes are disabled - type: boolean - startupProbeSpec: - description: StartupProbeSpec override startup probe configuration - properties: - failureThreshold: - description: |- - FailureThreshold when a Pod starts and the probe fails, Kubernetes will try failureThreshold times before giving up. - Giving up means restarting the container. - Minimum value is 1. - format: int32 - type: integer - initialDelaySeconds: - description: |- - InitialDelaySeconds specifies number of seconds after the container has started before liveness or readiness probes are initiated. - Minimum value is 0. - format: int32 - type: integer - periodSeconds: - description: |- - PeriodSeconds How often (in seconds) to perform the probe. - Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - SuccessThreshold Minimum consecutive successes for the probe to be considered successful after having failed. - Minimum value is 1. - format: int32 - type: integer - timeoutSeconds: - description: |- - TimeoutSeconds specifies number of seconds after which the probe times out - Minimum value is 1. - format: int32 - type: integer - type: object - type: object - pvcResizeMode: - description: VolumeResizeMode specified resize mode for PVCs and PVs - enum: - - runtime - - rotate - type: string - resources: - description: Resources holds resource requests & limits - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - schedulerName: - description: SchedulerName define scheduler name used for group - type: string - securityContext: - description: |- - SecurityContext specifies additional `securityContext` settings in ArangoDB Pod definitions. - This is similar (but not fully compatible) to k8s SecurityContext definition. - properties: - addCapabilities: - description: AddCapabilities add new capabilities to containers - items: - type: string - type: array - allowPrivilegeEscalation: - description: AllowPrivilegeEscalation Controls whether a process can gain more privileges than its parent process. - type: boolean - dropAllCapabilities: - description: DropAllCapabilities specifies if capabilities should be dropped for this pod containers - type: boolean - fsGroup: - description: FSGroup is a special supplemental group that applies to all containers in a pod. - format: int64 - type: integer - privileged: - description: |- - Privileged If true, runs container in privileged mode. Processes in privileged containers are - essentially equivalent to root on the host. - type: boolean - readOnlyRootFilesystem: - description: ReadOnlyRootFilesystem if true, mounts the container's root filesystem as read-only. - type: boolean - runAsGroup: - description: RunAsGroup is the GID to run the entrypoint of the container process. - format: int64 - type: integer - runAsNonRoot: - description: RunAsNonRoot if true, indicates that the container must run as a non-root user. - type: boolean - runAsUser: - description: RunAsUser is the UID to run the entrypoint of the container process. - format: int64 - type: integer - seLinuxOptions: - description: SELinuxOptions are the labels to be applied to the container - properties: - level: - type: string - role: - type: string - type: - type: string - user: - type: string - type: object - seccompProfile: - description: SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set. - properties: - localhostProfile: - type: string - type: - type: string - type: object - supplementalGroups: - description: |- - SupplementalGroups is a list of groups applied to the first process run in each container, in addition to the container's primary GID, - the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. - items: - format: int64 - type: integer - type: array - sysctls: - additionalProperties: - type: string - x-kubernetes-int-or-string: true - description: |- - Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported - sysctls (by the container runtime) might fail to launch. - Map Value can be String or Int - type: object - type: object - serviceAccountName: - description: |- - ServiceAccountName setting specifies the `serviceAccountName` for the `Pods` created - for each server of this group. If empty, it defaults to using the - `default` service account. - Using an alternative `ServiceAccount` is typically used to separate access rights. - The ArangoDB deployments need some very minimal access rights. With the - deployment of the operator, we grant the rights to 'get' all 'pod' resources. - If you are using a different service account, please grant these rights - to that service account. - type: string - shutdownDelay: - description: ShutdownDelay define how long operator should delay finalizer removal after shutdown - format: int32 - type: integer - shutdownMethod: - description: ShutdownMethod describe procedure of member shutdown taken by Operator - type: string - sidecarCoreNames: - description: |- - SidecarCoreNames is a list of sidecar containers which must run in the pod. - Some names (e.g.: "server", "worker") are reserved, and they don't have any impact. - items: - type: string - type: array - sidecars: - description: Sidecars specifies a list of additional containers to be started - items: - properties: - args: - items: - type: string - type: array - command: - items: - type: string - type: array - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - name: - type: string - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - type: object - type: array - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - restartPolicy: - type: string - securityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - stdin: - type: boolean - stdinOnce: - type: boolean - terminationMessagePath: - type: string - terminationMessagePolicy: - type: string - tty: - type: boolean - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - type: object - type: array - workingDir: - type: string - type: object - type: array - storageClassName: - description: StorageClassName specifies the classname for storage of the servers. - type: string - terminationGracePeriodSeconds: - description: TerminationGracePeriodSeconds override default TerminationGracePeriodSeconds for pods - via silent rotation - format: int64 - type: integer - tolerations: - description: |- - Tolerations specifies the tolerations added to Pods in this group. - By default, suitable tolerations are set for the following keys with the `NoExecute` effect: - - `node.kubernetes.io/not-ready` - - `node.kubernetes.io/unreachable` - - `node.alpha.kubernetes.io/unreachable` (will be removed in future version) - For more information on tolerations, consult the https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - format: int64 - type: integer - value: - type: string - type: object - type: array - volumeAllowShrink: - description: VolumeAllowShrink allows shrinking of the volume - type: boolean - volumeClaimTemplate: - description: |- - VolumeClaimTemplate specifies a volumeClaimTemplate used by operator to create to volume claims for pods of this group. - This setting is not available for group `coordinators`, `syncmasters` & `syncworkers`. - The default value describes a volume with `8Gi` storage, `ReadWriteOnce` access mode and volume mode set to `PersistentVolumeFilesystem`. - If this field is not set and `spec..resources.requests.storage` is set, then a default volume claim - with size as specified by `spec..resources.requests.storage` will be created. In that case `storage` - and `iops` is not forwarded to the pods resource requirements. - properties: - apiVersion: - type: string - kind: - type: string - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - creationTimestamp: - format: date-time - type: string - deletionGracePeriodSeconds: - format: int64 - type: integer - deletionTimestamp: - format: date-time - type: string - finalizers: - items: - type: string - type: array - generateName: - type: string - generation: - format: int64 - type: integer - labels: - additionalProperties: - type: string - type: object - managedFields: - items: - properties: - apiVersion: - type: string - fieldsType: - type: string - fieldsV1: - type: object - manager: - type: string - operation: - type: string - subresource: - type: string - time: - format: date-time - type: string - type: object - type: array - name: - type: string - namespace: - type: string - ownerReferences: - items: - properties: - apiVersion: - type: string - blockOwnerDeletion: - type: boolean - controller: - type: boolean - kind: - type: string - name: - type: string - uid: - type: string - type: object - type: array - resourceVersion: - type: string - selfLink: - type: string - uid: - type: string - type: object - spec: - properties: - accessModes: - items: - type: string - type: array - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - type: object - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - type: object - resources: - properties: - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string - volumeAttributesClassName: - type: string - volumeMode: - type: string - volumeName: - type: string - type: object - status: - properties: - accessModes: - items: - type: string - type: array - allocatedResourceStatuses: - additionalProperties: - type: string - type: object - allocatedResources: - additionalProperties: - type: string - type: object - capacity: - additionalProperties: - type: string - type: object - conditions: - items: - properties: - lastProbeTime: - format: date-time - type: string - lastTransitionTime: - format: date-time - type: string - message: - type: string - reason: - type: string - status: - type: string - type: - type: string - type: object - type: array - currentVolumeAttributesClassName: - type: string - modifyVolumeStatus: - properties: - status: - type: string - targetVolumeAttributesClassName: - type: string - type: object - phase: - type: string - type: object - type: object - volumeMounts: - description: VolumeMounts define list of volume mounts mounted into server container - items: - properties: - mountPath: - description: |- - Path within the container at which the volume should be mounted. Must - not contain ':'. - type: string - mountPropagation: - description: |- - mountPropagation determines how mounts are propagated from the host - to container and the other way around. - When not set, MountPropagationNone is used. - This field is beta in 1.10. - When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified - (which defaults to None). - type: string - name: - description: This must match the Name of a Volume. - type: string - readOnly: - description: |- - Mounted read-only if true, read-write otherwise (false or unspecified). - Defaults to false. - type: boolean - subPath: - description: |- - Path within the volume from which the container's volume should be mounted. - Defaults to "" (volume's root). - type: string - subPathExpr: - description: |- - Expanded path within the volume from which the container's volume should be mounted. - Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. - Defaults to "" (volume's root). - SubPathExpr and SubPath are mutually exclusive. - type: string - type: object - type: array - volumes: - description: Volumes define list of volumes mounted to pod - items: - properties: - configMap: - description: ConfigMap which should be mounted into pod - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - type: object - type: array - name: - type: string - optional: - type: boolean - type: object - emptyDir: - description: EmptyDir - properties: - medium: - type: string - sizeLimit: - type: string - type: object - hostPath: - description: HostPath - properties: - path: - type: string - type: - type: string - type: object - name: - description: Name of volume - type: string - persistentVolumeClaim: - description: PersistentVolumeClaim - properties: - claimName: - type: string - readOnly: - type: boolean - type: object - secret: - description: Secret which should be mounted into pod - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - type: object - type: array - optional: - type: boolean - secretName: - type: string - type: object - type: object - type: array - type: object - id: - description: ServerIDGroupSpec contains the specification for Image Discovery image. - properties: - affinity: - description: Affinity specified additional affinity settings in ArangoDB Pod definitions - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - format: int32 - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - antiAffinity: - description: AntiAffinity specified additional antiAffinity settings in ArangoDB Pod definitions - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - format: int32 - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - args: - description: Args setting specifies additional command-line arguments passed to all servers of this group. - items: - type: string - type: array - entrypoint: - description: Entrypoint overrides container executable - type: string - nodeAffinity: - description: NodeAffinity specified additional nodeAffinity settings in ArangoDB Pod definitions - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - weight: - format: int32 - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - type: array - type: object - type: object - nodeSelector: - additionalProperties: - type: string - description: NodeSelector specifies a set of selectors for nodes - type: object - priorityClassName: - description: PriorityClassName specifies a priority class name - type: string - resources: - description: Resources holds resource requests & limits - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - securityContext: - description: SecurityContext specifies security context for group - properties: - addCapabilities: - description: AddCapabilities add new capabilities to containers - items: - type: string - type: array - allowPrivilegeEscalation: - description: AllowPrivilegeEscalation Controls whether a process can gain more privileges than its parent process. - type: boolean - dropAllCapabilities: - description: DropAllCapabilities specifies if capabilities should be dropped for this pod containers - type: boolean - fsGroup: - description: FSGroup is a special supplemental group that applies to all containers in a pod. - format: int64 - type: integer - privileged: - description: |- - Privileged If true, runs container in privileged mode. Processes in privileged containers are - essentially equivalent to root on the host. - type: boolean - readOnlyRootFilesystem: - description: ReadOnlyRootFilesystem if true, mounts the container's root filesystem as read-only. - type: boolean - runAsGroup: - description: RunAsGroup is the GID to run the entrypoint of the container process. - format: int64 - type: integer - runAsNonRoot: - description: RunAsNonRoot if true, indicates that the container must run as a non-root user. - type: boolean - runAsUser: - description: RunAsUser is the UID to run the entrypoint of the container process. - format: int64 - type: integer - seLinuxOptions: - description: SELinuxOptions are the labels to be applied to the container - properties: - level: - type: string - role: - type: string - type: - type: string - user: - type: string - type: object - seccompProfile: - description: SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set. - properties: - localhostProfile: - type: string - type: - type: string - type: object - supplementalGroups: - description: |- - SupplementalGroups is a list of groups applied to the first process run in each container, in addition to the container's primary GID, - the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. - items: - format: int64 - type: integer - type: array - sysctls: - additionalProperties: - type: string - x-kubernetes-int-or-string: true - description: |- - Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported - sysctls (by the container runtime) might fail to launch. - Map Value can be String or Int - type: object - type: object - serviceAccountName: - description: ServiceAccountName specifies the name of the service account used for Pods in this group. - type: string - tolerations: - description: Tolerations specifies the tolerations added to Pods in this group. - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - format: int64 - type: integer - value: - type: string - type: object - type: array - type: object - image: - description: |- - Image specifies the docker image to use for all ArangoDB servers. - In a development environment this setting defaults to arangodb/arangodb:latest. - For production environments this is a required setting without a default value. - It is highly recommend to use explicit version (not latest) for production environments. - type: string - imageDiscoveryMode: - description: ImageDiscoveryMode specifies the image discovery mode. - enum: - - kubelet - - direct - type: string - imagePullPolicy: - description: ImagePullPolicy specifies the pull policy for the docker image to use for all ArangoDB servers. - enum: - - Always - - Never - - IfNotPresent - type: string - imagePullSecrets: - description: ImagePullSecrets specifies the list of image pull secrets for the docker image to use for all ArangoDB servers. - items: - type: string - type: array - integration: - description: Integration defined main Integration configuration. - properties: - sidecar: - description: Sidecar 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - method: - type: string - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - 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 - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - 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 - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - type: object - type: array - workingDir: - type: string - type: object - type: object - labels: - additionalProperties: - type: string - description: Labels specifies the labels added to Pods in this group. - type: object - labelsIgnoreList: - description: LabelsIgnoreList list regexp or plain definitions which labels should be ignored - items: - type: string - type: array - labelsMode: - description: LabelsMode Define labels mode which should be use while overriding labels - enum: - - disabled - - append - - replace - type: string - license: - description: License holds license settings - properties: - secretName: - description: |- - SecretName setting specifies the name of a kubernetes `Secret` that contains - the license key token used for enterprise images. This value is not used for - the Community Edition. - type: string - type: object - lifecycle: - description: Lifecycle holds lifecycle configuration settings - properties: - resources: - description: Resources holds resource requests & limits - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - type: object - memberPropagationMode: - description: |- - MemberPropagationMode defines how changes to pod spec should be propogated. - Changes to a pod’s configuration require a restart of that pod in almost all cases. - Pods are restarted eagerly by default, which can cause more restarts than desired, especially when updating arangod as well as the operator. - The propagation of the configuration changes can be deferred to the next restart, either triggered manually by the user or by another operation like an upgrade. - This reduces the number of restarts for upgrading both the server and the operator from two to one. - enum: - - always - - on-restart - type: string - metrics: - description: Metrics holds metrics configuration settings - properties: - authentication: - properties: - jwtTokenSecretName: - description: JWTTokenSecretName contains the name of the JWT kubernetes secret used for authentication - type: string - type: object - enabled: - description: |- - Enabled if this is set to `true`, the operator runs a sidecar container for - every Agent, DB-Server, Coordinator and Single server. - type: boolean - extensions: - description: Extensions keeps the information about Metrics Extensions - properties: - usageMetrics: - description: UsageMetrics enables ArangoDB Usage metrics scrape. Affects only DBServers in the Cluster mode. - type: boolean - type: object - image: - description: Image used for the Metrics Sidecar - type: string - mode: - description: Mode define metrics exported mode - type: string - port: - format: int32 - type: integer - resources: - description: Resources holds resource requests & limits - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - serviceMonitor: - properties: - enabled: - type: boolean - labels: - additionalProperties: - type: string - type: object - type: object - tls: - description: |- - TLS defines if TLS should be enabled on Metrics exporter endpoint. - This option will enable TLS only if TLS is enabled on ArangoDeployment, - otherwise `true` value will not take any effect. - type: boolean - type: object - mode: - description: Mode specifies the type of ArangoDB deployment to create. - enum: - - Cluster - - ActiveFailover - - Single - type: string - networkAttachedVolumes: - description: |- - NetworkAttachedVolumes - If set to `true`, a ResignLeadership operation will be triggered when a DB-Server pod is evicted (rather than a CleanOutServer operation). - Furthermore, the pod will simply be redeployed on a different node, rather than cleaned and retired and replaced by a new member. - You must only set this option to true if your persistent volumes are “movable” in the sense that they can be mounted from a different k8s node, like in the case of network attached volumes. - If your persistent volumes are tied to a specific pod, you must leave this option on false. - type: boolean - rebalancer: - description: Rebalancer defines the rebalancer specification - properties: - enabled: - type: boolean - optimizers: - properties: - leader: - type: boolean - type: object - parallelMoves: - format: int32 - type: integer - readers: - properties: - count: - description: Count Enable Shard Count machanism - type: boolean - type: object - type: object - recovery: - description: Recovery specifies configuration related to cluster recovery. - properties: - autoRecover: - type: boolean - type: object - restoreEncryptionSecret: - description: RestoreEncryptionSecret specifies optional name of secret which contains encryption key used for restore - type: string - restoreFrom: - description: |- - RestoreFrom setting specifies a `ArangoBackup` resource name the cluster should be restored from. - After a restore or failure to do so, the status of the deployment contains information about the restore operation in the restore key. - It will contain some of the following fields: - - `requestedFrom`: name of the ArangoBackup used to restore from. - - `message`: optional message explaining why the restore failed. - - `state`: state indicating if the restore was successful or not. Possible values: Restoring, Restored, RestoreFailed - If the restoreFrom key is removed from the spec, the restore key is deleted as well. - A new restore attempt is made if and only if either in the status restore is not set or if spec.restoreFrom and status.requestedFrom are different. - type: string - rocksdb: - description: RocksDB holds rocksdb-specific configuration settings - properties: - encryption: - properties: - keySecretName: - description: |- - KeySecretName setting specifies the name of a Kubernetes `Secret` that contains an encryption key used for encrypting all data stored by ArangoDB servers. - When an encryption key is used, encryption of the data in the cluster is enabled, without it encryption is disabled. - The default value is empty. - This requires the Enterprise Edition. - The encryption key cannot be changed after the cluster has been created. - The secret specified by this setting, must have a data field named 'key' containing an encryption key that is exactly 32 bytes long. - type: string - type: object - type: object - single: - description: Single contains specification for servers running in deployment mode `Single` or `ActiveFailover`. - properties: - affinity: - description: Affinity specified additional affinity settings in ArangoDB Pod definitions - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - format: int32 - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - allowMemberRecreation: - description: |- - AllowMemberRecreation allows to recreate member. - This setting changes the member recreation logic based on group: - - For Sync Masters, Sync Workers, Coordinator and DB-Servers it determines if a member can be recreated in case of failure (default `true`) - - For Agents and Single this value is hardcoded to `false` and the value provided in spec is ignored. - type: boolean - annotations: - additionalProperties: - type: string - description: |- - Annotations specified the annotations added to Pods in this group. - Annotations are merged with `spec.annotations`. - type: object - annotationsIgnoreList: - description: AnnotationsIgnoreList list regexp or plain definitions which annotations should be ignored - items: - type: string - type: array - annotationsMode: - description: AnnotationsMode Define annotations mode which should be use while overriding annotations - type: string - antiAffinity: - description: AntiAffinity specified additional antiAffinity settings in ArangoDB Pod definitions - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - format: int32 - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - args: - description: Args setting specifies additional command-line arguments passed to all servers of this group. - items: - type: string - type: array - count: - description: |- - Count setting specifies the number of servers to start for the given group. - For the Agent group, this value must be a positive, odd number. - The default value is `3` for all groups except `single` (there the default is `1` - for `spec.mode: Single` and `2` for `spec.mode: ActiveFailover`). - For the `syncworkers` group, it is highly recommended to use the same number - as for the `dbservers` group. - format: int32 - type: integer - entrypoint: - description: Entrypoint overrides container executable - type: string - envs: - description: Envs allow to specify additional envs in this group. - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - ephemeralVolumes: - description: EphemeralVolumes keeps information about ephemeral volumes. - properties: - apps: - description: Apps define apps ephemeral volume in case if `ephemeral-volumes` feature is enabled. - properties: - size: - description: Size define size of the ephemeral volume - type: string - type: object - temp: - description: Temp define temp ephemeral volume in case if `ephemeral-volumes` feature is enabled. - properties: - size: - description: Size define size of the ephemeral volume - type: string - type: object - type: object - exporterPort: - description: ExporterPort define Port used by exporter - format: int32 - type: integer - extendedRotationCheck: - description: ExtendedRotationCheck extend checks for rotation - type: boolean - externalPortEnabled: - description: ExternalPortEnabled if external port should be enabled. If is set to false, ports needs to be exposed via sidecar. Only for ArangoD members - type: boolean - indexMethod: - description: IndexMethod define group Indexing method - enum: - - random - - ordered - type: string - initContainers: - description: InitContainers Init containers specification - properties: - containers: - description: Containers contains list of containers - items: - properties: - args: - items: - type: string - type: array - command: - items: - type: string - type: array - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - name: - type: string - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - type: object - type: array - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - restartPolicy: - type: string - securityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - stdin: - type: boolean - stdinOnce: - type: boolean - terminationMessagePath: - type: string - terminationMessagePolicy: - type: string - tty: - type: boolean - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - type: object - type: array - workingDir: - type: string - type: object - type: array - mode: - description: Mode keep container replace mode - enum: - - update - - ignore - type: string - type: object - internalPort: - description: InternalPort define port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members - format: int32 - type: integer - internalPortProtocol: - description: InternalPortProtocol define protocol of port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members - type: string - labels: - additionalProperties: - type: string - description: Labels specified the labels added to Pods in this group. - type: object - labelsIgnoreList: - description: LabelsIgnoreList list regexp or plain definitions which labels should be ignored - items: - type: string - type: array - labelsMode: - description: LabelsMode Define labels mode which should be use while overriding labels - type: string - maxCount: - description: MaxCount specifies a maximum for the count of servers. If set, a specification is invalid if `count > maxCount`. - format: int32 - type: integer - memoryReservation: - description: |- - MemoryReservation determines the system reservation of memory while calculating `ARANGODB_OVERRIDE_DETECTED_TOTAL_MEMORY` value. - If this field is set, `ARANGODB_OVERRIDE_DETECTED_TOTAL_MEMORY` is reduced by a specified value in percent. - Accepted Range <0, 50>. If the value is outside the accepted range, it is adjusted to the closest value. - format: int64 - type: integer - minCount: - description: MinCount specifies a minimum for the count of servers. If set, a specification is invalid if `count < minCount`. - format: int32 - type: integer - nodeAffinity: - description: NodeAffinity specified additional nodeAffinity settings in ArangoDB Pod definitions - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - weight: - format: int32 - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - type: array - type: object - type: object - nodeSelector: - additionalProperties: - type: string - description: NodeSelector setting specifies a set of labels to be used as `nodeSelector` for Pods of this node. - type: object - numactl: - description: Numactl define Numactl options passed to the process - properties: - args: - description: Args define list of the numactl process - items: - type: string - type: array - enabled: - description: Enabled define if numactl should be enabled - type: boolean - path: - description: Path define numactl path within the container - type: string - type: object - overrideDetectedNumberOfCores: - description: |- - OverrideDetectedNumberOfCores determines if number of cores should be overridden based on values in resources. - If is set to true and Container CPU Limits are set, it sets Container Environment Variable `ARANGODB_OVERRIDE_DETECTED_NUMBER_OF_CORES` to the value from the Container CPU Limits. - type: boolean - overrideDetectedTotalMemory: - description: |- - OverrideDetectedTotalMemory determines if memory should be overridden based on values in resources. - If is set to true and Container Memory Limits are set, it sets Container Environment Variable `ARANGODB_OVERRIDE_DETECTED_TOTAL_MEMORY` to the value from the Container Memory Limits. - type: boolean - podModes: - description: PodModes define additional modes enabled on the Pod level - properties: - network: - type: string - pid: - type: string - type: object - port: - description: Port define Port used by member - format: int32 - type: integer - priorityClassName: - description: |- - PriorityClassName specifies a priority class name - Will be forwarded to the pod spec. - type: string - probes: - description: Probes specifies additional behaviour for probes - properties: - ReadinessProbeDisabled: - description: OldReadinessProbeDisabled if true readinessProbes are disabled - type: boolean - livenessProbeDisabled: - description: LivenessProbeDisabled if set to true, the operator does not generate a liveness probe for new pods belonging to this group - type: boolean - livenessProbeSpec: - description: LivenessProbeSpec override liveness probe configuration - properties: - failureThreshold: - description: |- - FailureThreshold when a Pod starts and the probe fails, Kubernetes will try failureThreshold times before giving up. - Giving up means restarting the container. - Minimum value is 1. - format: int32 - type: integer - initialDelaySeconds: - description: |- - InitialDelaySeconds specifies number of seconds after the container has started before liveness or readiness probes are initiated. - Minimum value is 0. - format: int32 - type: integer - periodSeconds: - description: |- - PeriodSeconds How often (in seconds) to perform the probe. - Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - SuccessThreshold Minimum consecutive successes for the probe to be considered successful after having failed. - Minimum value is 1. - format: int32 - type: integer - timeoutSeconds: - description: |- - TimeoutSeconds specifies number of seconds after which the probe times out - Minimum value is 1. - format: int32 - type: integer - type: object - readinessProbeDisabled: - description: ReadinessProbeDisabled override flag for probe disabled in good manner (lowercase) with backward compatibility - type: boolean - readinessProbeSpec: - description: ReadinessProbeSpec override readiness probe configuration - properties: - failureThreshold: - description: |- - FailureThreshold when a Pod starts and the probe fails, Kubernetes will try failureThreshold times before giving up. - Giving up means restarting the container. - Minimum value is 1. - format: int32 - type: integer - initialDelaySeconds: - description: |- - InitialDelaySeconds specifies number of seconds after the container has started before liveness or readiness probes are initiated. - Minimum value is 0. - format: int32 - type: integer - periodSeconds: - description: |- - PeriodSeconds How often (in seconds) to perform the probe. - Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - SuccessThreshold Minimum consecutive successes for the probe to be considered successful after having failed. - Minimum value is 1. - format: int32 - type: integer - timeoutSeconds: - description: |- - TimeoutSeconds specifies number of seconds after which the probe times out - Minimum value is 1. - format: int32 - type: integer - type: object - startupProbeDisabled: - description: StartupProbeDisabled if true startupProbes are disabled - type: boolean - startupProbeSpec: - description: StartupProbeSpec override startup probe configuration - properties: - failureThreshold: - description: |- - FailureThreshold when a Pod starts and the probe fails, Kubernetes will try failureThreshold times before giving up. - Giving up means restarting the container. - Minimum value is 1. - format: int32 - type: integer - initialDelaySeconds: - description: |- - InitialDelaySeconds specifies number of seconds after the container has started before liveness or readiness probes are initiated. - Minimum value is 0. - format: int32 - type: integer - periodSeconds: - description: |- - PeriodSeconds How often (in seconds) to perform the probe. - Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - SuccessThreshold Minimum consecutive successes for the probe to be considered successful after having failed. - Minimum value is 1. - format: int32 - type: integer - timeoutSeconds: - description: |- - TimeoutSeconds specifies number of seconds after which the probe times out - Minimum value is 1. - format: int32 - type: integer - type: object - type: object - pvcResizeMode: - description: VolumeResizeMode specified resize mode for PVCs and PVs - enum: - - runtime - - rotate - type: string - resources: - description: Resources holds resource requests & limits - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - schedulerName: - description: SchedulerName define scheduler name used for group - type: string - securityContext: - description: |- - SecurityContext specifies additional `securityContext` settings in ArangoDB Pod definitions. - This is similar (but not fully compatible) to k8s SecurityContext definition. - properties: - addCapabilities: - description: AddCapabilities add new capabilities to containers - items: - type: string - type: array - allowPrivilegeEscalation: - description: AllowPrivilegeEscalation Controls whether a process can gain more privileges than its parent process. - type: boolean - dropAllCapabilities: - description: DropAllCapabilities specifies if capabilities should be dropped for this pod containers - type: boolean - fsGroup: - description: FSGroup is a special supplemental group that applies to all containers in a pod. - format: int64 - type: integer - privileged: - description: |- - Privileged If true, runs container in privileged mode. Processes in privileged containers are - essentially equivalent to root on the host. - type: boolean - readOnlyRootFilesystem: - description: ReadOnlyRootFilesystem if true, mounts the container's root filesystem as read-only. - type: boolean - runAsGroup: - description: RunAsGroup is the GID to run the entrypoint of the container process. - format: int64 - type: integer - runAsNonRoot: - description: RunAsNonRoot if true, indicates that the container must run as a non-root user. - type: boolean - runAsUser: - description: RunAsUser is the UID to run the entrypoint of the container process. - format: int64 - type: integer - seLinuxOptions: - description: SELinuxOptions are the labels to be applied to the container - properties: - level: - type: string - role: - type: string - type: - type: string - user: - type: string - type: object - seccompProfile: - description: SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set. - properties: - localhostProfile: - type: string - type: - type: string - type: object - supplementalGroups: - description: |- - SupplementalGroups is a list of groups applied to the first process run in each container, in addition to the container's primary GID, - the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. - items: - format: int64 - type: integer - type: array - sysctls: - additionalProperties: - type: string - x-kubernetes-int-or-string: true - description: |- - Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported - sysctls (by the container runtime) might fail to launch. - Map Value can be String or Int - type: object - type: object - serviceAccountName: - description: |- - ServiceAccountName setting specifies the `serviceAccountName` for the `Pods` created - for each server of this group. If empty, it defaults to using the - `default` service account. - Using an alternative `ServiceAccount` is typically used to separate access rights. - The ArangoDB deployments need some very minimal access rights. With the - deployment of the operator, we grant the rights to 'get' all 'pod' resources. - If you are using a different service account, please grant these rights - to that service account. - type: string - shutdownDelay: - description: ShutdownDelay define how long operator should delay finalizer removal after shutdown - format: int32 - type: integer - shutdownMethod: - description: ShutdownMethod describe procedure of member shutdown taken by Operator - type: string - sidecarCoreNames: - description: |- - SidecarCoreNames is a list of sidecar containers which must run in the pod. - Some names (e.g.: "server", "worker") are reserved, and they don't have any impact. - items: - type: string - type: array - sidecars: - description: Sidecars specifies a list of additional containers to be started - items: - properties: - args: - items: - type: string - type: array - command: - items: - type: string - type: array - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - name: - type: string - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - type: object - type: array - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - restartPolicy: - type: string - securityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - stdin: - type: boolean - stdinOnce: - type: boolean - terminationMessagePath: - type: string - terminationMessagePolicy: - type: string - tty: - type: boolean - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - type: object - type: array - workingDir: - type: string - type: object - type: array - storageClassName: - description: StorageClassName specifies the classname for storage of the servers. - type: string - terminationGracePeriodSeconds: - description: TerminationGracePeriodSeconds override default TerminationGracePeriodSeconds for pods - via silent rotation - format: int64 - type: integer - tolerations: - description: |- - Tolerations specifies the tolerations added to Pods in this group. - By default, suitable tolerations are set for the following keys with the `NoExecute` effect: - - `node.kubernetes.io/not-ready` - - `node.kubernetes.io/unreachable` - - `node.alpha.kubernetes.io/unreachable` (will be removed in future version) - For more information on tolerations, consult the https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - format: int64 - type: integer - value: - type: string - type: object - type: array - volumeAllowShrink: - description: VolumeAllowShrink allows shrinking of the volume - type: boolean - volumeClaimTemplate: - description: |- - VolumeClaimTemplate specifies a volumeClaimTemplate used by operator to create to volume claims for pods of this group. - This setting is not available for group `coordinators`, `syncmasters` & `syncworkers`. - The default value describes a volume with `8Gi` storage, `ReadWriteOnce` access mode and volume mode set to `PersistentVolumeFilesystem`. - If this field is not set and `spec..resources.requests.storage` is set, then a default volume claim - with size as specified by `spec..resources.requests.storage` will be created. In that case `storage` - and `iops` is not forwarded to the pods resource requirements. - properties: - apiVersion: - type: string - kind: - type: string - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - creationTimestamp: - format: date-time - type: string - deletionGracePeriodSeconds: - format: int64 - type: integer - deletionTimestamp: - format: date-time - type: string - finalizers: - items: - type: string - type: array - generateName: - type: string - generation: - format: int64 - type: integer - labels: - additionalProperties: - type: string - type: object - managedFields: - items: - properties: - apiVersion: - type: string - fieldsType: - type: string - fieldsV1: - type: object - manager: - type: string - operation: - type: string - subresource: - type: string - time: - format: date-time - type: string - type: object - type: array - name: - type: string - namespace: - type: string - ownerReferences: - items: - properties: - apiVersion: - type: string - blockOwnerDeletion: - type: boolean - controller: - type: boolean - kind: - type: string - name: - type: string - uid: - type: string - type: object - type: array - resourceVersion: - type: string - selfLink: - type: string - uid: - type: string - type: object - spec: - properties: - accessModes: - items: - type: string - type: array - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - type: object - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - type: object - resources: - properties: - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string - volumeAttributesClassName: - type: string - volumeMode: - type: string - volumeName: - type: string - type: object - status: - properties: - accessModes: - items: - type: string - type: array - allocatedResourceStatuses: - additionalProperties: - type: string - type: object - allocatedResources: - additionalProperties: - type: string - type: object - capacity: - additionalProperties: - type: string - type: object - conditions: - items: - properties: - lastProbeTime: - format: date-time - type: string - lastTransitionTime: - format: date-time - type: string - message: - type: string - reason: - type: string - status: - type: string - type: - type: string - type: object - type: array - currentVolumeAttributesClassName: - type: string - modifyVolumeStatus: - properties: - status: - type: string - targetVolumeAttributesClassName: - type: string - type: object - phase: - type: string - type: object - type: object - volumeMounts: - description: VolumeMounts define list of volume mounts mounted into server container - items: - properties: - mountPath: - description: |- - Path within the container at which the volume should be mounted. Must - not contain ':'. - type: string - mountPropagation: - description: |- - mountPropagation determines how mounts are propagated from the host - to container and the other way around. - When not set, MountPropagationNone is used. - This field is beta in 1.10. - When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified - (which defaults to None). - type: string - name: - description: This must match the Name of a Volume. - type: string - readOnly: - description: |- - Mounted read-only if true, read-write otherwise (false or unspecified). - Defaults to false. - type: boolean - subPath: - description: |- - Path within the volume from which the container's volume should be mounted. - Defaults to "" (volume's root). - type: string - subPathExpr: - description: |- - Expanded path within the volume from which the container's volume should be mounted. - Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. - Defaults to "" (volume's root). - SubPathExpr and SubPath are mutually exclusive. - type: string - type: object - type: array - volumes: - description: Volumes define list of volumes mounted to pod - items: - properties: - configMap: - description: ConfigMap which should be mounted into pod - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - type: object - type: array - name: - type: string - optional: - type: boolean - type: object - emptyDir: - description: EmptyDir - properties: - medium: - type: string - sizeLimit: - type: string - type: object - hostPath: - description: HostPath - properties: - path: - type: string - type: - type: string - type: object - name: - description: Name of volume - type: string - persistentVolumeClaim: - description: PersistentVolumeClaim - properties: - claimName: - type: string - readOnly: - type: boolean - type: object - secret: - description: Secret which should be mounted into pod - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - type: object - type: array - optional: - type: boolean - secretName: - type: string - type: object - type: object - type: array - type: object - storageEngine: - description: StorageEngine specifies the type of storage engine used for all servers in the cluster. - enum: - - RocksDB - - MMFiles - type: string - sync: - description: Sync holds Deployment-to-Deployment synchronization configuration settings - properties: - auth: - properties: - clientCASecretName: - description: |- - ClientCASecretName setting specifies the name of a kubernetes `Secret` that contains - a PEM encoded CA certificate used for client certificate verification - in all ArangoSync master servers. - This is a required setting when `spec.sync.enabled` is `true`. - type: string - jwtSecretName: - description: |- - JWTSecretName setting specifies the name of a kubernetes `Secret` that contains - the JWT token used for accessing all ArangoSync master servers. - When not specified, the `spec.auth.jwtSecretName` value is used. - If you specify a name of a `Secret` that does not exist, a random token is created - and stored in a `Secret` with given name. - type: string - type: object - enabled: - description: |- - Enabled setting enables/disables support for data center 2 data center - replication in the cluster. When enabled, the cluster will contain - a number of `syncmaster` & `syncworker` servers. - type: boolean - externalAccess: - properties: - accessPackageSecretNames: - description: |- - AccessPackageSecretNames setting specifies the names of zero of more `Secrets` that will be created by the deployment - operator containing "access packages". An access package contains those `Secrets` that are needed - to access the SyncMasters of this `ArangoDeployment`. - By removing a name from this setting, the corresponding `Secret` is also deleted. - Note that to remove all access packages, leave an empty array in place (`[]`). - Completely removing the setting results in not modifying the list. - items: - type: string - type: array - advertisedEndpoint: - description: AdvertisedEndpoint is passed to the coordinators/single servers for advertising a specific endpoint - type: string - loadBalancerIP: - description: |- - LoadBalancerIP define optional IP used to configure a load-balancer on, in case of Auto or LoadBalancer type. - If you do not specify this setting, an IP will be chosen automatically by the load-balancer provisioner. - type: string - loadBalancerSourceRanges: - description: |- - LoadBalancerSourceRanges define LoadBalancerSourceRanges used for LoadBalancer Service type - If specified and supported by the platform, this will restrict traffic through the cloud-provider - load-balancer will be restricted to the specified client IPs. This field will be ignored if the - cloud-provider does not support the feature. - items: - type: string - type: array - managedServiceNames: - description: |- - ManagedServiceNames keeps names of services which are not managed by KubeArangoDB. - It is only relevant when type of service is `managed`. - items: - type: string - type: array - masterEndpoint: - description: |- - MasterEndpoint setting specifies the master endpoint(s) advertised by the ArangoSync SyncMasters. - If not set, this setting defaults to: - - If `spec.sync.externalAccess.loadBalancerIP` is set, it defaults to `https://:<8629>`. - - Otherwise it defaults to `https://:<8629>`. - items: - type: string - type: array - nodePort: - description: |- - NodePort define optional port used in case of Auto or NodePort type. - This setting is used when `spec.externalAccess.type` is set to `NodePort` or `Auto`. - If you do not specify this setting, a random port will be chosen automatically. - format: int32 - type: integer - type: - description: Type specifies the type of Service that will be created to provide access to the ArangoDB deployment from outside the Kubernetes cluster. - enum: - - Auto - - None - - LoadBalancer - - NodePort - type: string - type: object - image: - type: string - monitoring: - properties: - tokenSecretName: - description: |- - TokenSecretName setting specifies the name of a kubernetes `Secret` that contains - the bearer token used for accessing all monitoring endpoints of all arangod/arangosync servers. - When not specified, no monitoring token is used. - type: string - type: object - tls: - properties: - altNames: - description: |- - AltNames setting specifies a list of alternate names that will be added to all generated - certificates. These names can be DNS names or email addresses. - The default value is empty. - items: - type: string - type: array - caSecretName: - description: |- - CASecretName setting specifies the name of a kubernetes `Secret` that contains - a standard CA certificate + private key used to sign certificates for individual - ArangoDB servers. - When no name is specified, it defaults to `-ca`. - To disable authentication, set this value to `None`. - If you specify a name of a `Secret` that does not exist, a self-signed CA certificate + key is created - and stored in a `Secret` with given name. - The specified `Secret`, must contain the following data fields: - - `ca.crt` PEM encoded public key of the CA certificate - - `ca.key` PEM encoded private key of the CA certificate - type: string - mode: - type: string - sni: - properties: - mapping: - additionalProperties: - items: - type: string - type: array - type: object - type: object - ttl: - description: |- - TTL setting specifies the time to live of all generated server certificates. - When the server certificate is about to expire, it will be automatically replaced - by a new one and the affected server will be restarted. - Note: The time to live of the CA certificate (when created automatically) - will be set to 10 years. - type: string - type: object - type: object - syncmasters: - description: SyncMasters contains specification for Syncmaster pods running in deployment mode `Cluster`. - properties: - affinity: - description: Affinity specified additional affinity settings in ArangoDB Pod definitions - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - format: int32 - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - allowMemberRecreation: - description: |- - AllowMemberRecreation allows to recreate member. - This setting changes the member recreation logic based on group: - - For Sync Masters, Sync Workers, Coordinator and DB-Servers it determines if a member can be recreated in case of failure (default `true`) - - For Agents and Single this value is hardcoded to `false` and the value provided in spec is ignored. - type: boolean - annotations: - additionalProperties: - type: string - description: |- - Annotations specified the annotations added to Pods in this group. - Annotations are merged with `spec.annotations`. - type: object - annotationsIgnoreList: - description: AnnotationsIgnoreList list regexp or plain definitions which annotations should be ignored - items: - type: string - type: array - annotationsMode: - description: AnnotationsMode Define annotations mode which should be use while overriding annotations - type: string - antiAffinity: - description: AntiAffinity specified additional antiAffinity settings in ArangoDB Pod definitions - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - format: int32 - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - args: - description: Args setting specifies additional command-line arguments passed to all servers of this group. - items: - type: string - type: array - count: - description: |- - Count setting specifies the number of servers to start for the given group. - For the Agent group, this value must be a positive, odd number. - The default value is `3` for all groups except `single` (there the default is `1` - for `spec.mode: Single` and `2` for `spec.mode: ActiveFailover`). - For the `syncworkers` group, it is highly recommended to use the same number - as for the `dbservers` group. - format: int32 - type: integer - entrypoint: - description: Entrypoint overrides container executable - type: string - envs: - description: Envs allow to specify additional envs in this group. - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - ephemeralVolumes: - description: EphemeralVolumes keeps information about ephemeral volumes. - properties: - apps: - description: Apps define apps ephemeral volume in case if `ephemeral-volumes` feature is enabled. - properties: - size: - description: Size define size of the ephemeral volume - type: string - type: object - temp: - description: Temp define temp ephemeral volume in case if `ephemeral-volumes` feature is enabled. - properties: - size: - description: Size define size of the ephemeral volume - type: string - type: object - type: object - exporterPort: - description: ExporterPort define Port used by exporter - format: int32 - type: integer - extendedRotationCheck: - description: ExtendedRotationCheck extend checks for rotation - type: boolean - externalPortEnabled: - description: ExternalPortEnabled if external port should be enabled. If is set to false, ports needs to be exposed via sidecar. Only for ArangoD members - type: boolean - indexMethod: - description: IndexMethod define group Indexing method - enum: - - random - - ordered - type: string - initContainers: - description: InitContainers Init containers specification - properties: - containers: - description: Containers contains list of containers - items: - properties: - args: - items: - type: string - type: array - command: - items: - type: string - type: array - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - name: - type: string - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - type: object - type: array - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - restartPolicy: - type: string - securityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - stdin: - type: boolean - stdinOnce: - type: boolean - terminationMessagePath: - type: string - terminationMessagePolicy: - type: string - tty: - type: boolean - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - type: object - type: array - workingDir: - type: string - type: object - type: array - mode: - description: Mode keep container replace mode - enum: - - update - - ignore - type: string - type: object - internalPort: - description: InternalPort define port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members - format: int32 - type: integer - internalPortProtocol: - description: InternalPortProtocol define protocol of port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members - type: string - labels: - additionalProperties: - type: string - description: Labels specified the labels added to Pods in this group. - type: object - labelsIgnoreList: - description: LabelsIgnoreList list regexp or plain definitions which labels should be ignored - items: - type: string - type: array - labelsMode: - description: LabelsMode Define labels mode which should be use while overriding labels - type: string - maxCount: - description: MaxCount specifies a maximum for the count of servers. If set, a specification is invalid if `count > maxCount`. - format: int32 - type: integer - memoryReservation: - description: |- - MemoryReservation determines the system reservation of memory while calculating `ARANGODB_OVERRIDE_DETECTED_TOTAL_MEMORY` value. - If this field is set, `ARANGODB_OVERRIDE_DETECTED_TOTAL_MEMORY` is reduced by a specified value in percent. - Accepted Range <0, 50>. If the value is outside the accepted range, it is adjusted to the closest value. - format: int64 - type: integer - minCount: - description: MinCount specifies a minimum for the count of servers. If set, a specification is invalid if `count < minCount`. - format: int32 - type: integer - nodeAffinity: - description: NodeAffinity specified additional nodeAffinity settings in ArangoDB Pod definitions - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - weight: - format: int32 - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - type: array - type: object - type: object - nodeSelector: - additionalProperties: - type: string - description: NodeSelector setting specifies a set of labels to be used as `nodeSelector` for Pods of this node. - type: object - numactl: - description: Numactl define Numactl options passed to the process - properties: - args: - description: Args define list of the numactl process - items: - type: string - type: array - enabled: - description: Enabled define if numactl should be enabled - type: boolean - path: - description: Path define numactl path within the container - type: string - type: object - overrideDetectedNumberOfCores: - description: |- - OverrideDetectedNumberOfCores determines if number of cores should be overridden based on values in resources. - If is set to true and Container CPU Limits are set, it sets Container Environment Variable `ARANGODB_OVERRIDE_DETECTED_NUMBER_OF_CORES` to the value from the Container CPU Limits. - type: boolean - overrideDetectedTotalMemory: - description: |- - OverrideDetectedTotalMemory determines if memory should be overridden based on values in resources. - If is set to true and Container Memory Limits are set, it sets Container Environment Variable `ARANGODB_OVERRIDE_DETECTED_TOTAL_MEMORY` to the value from the Container Memory Limits. - type: boolean - podModes: - description: PodModes define additional modes enabled on the Pod level - properties: - network: - type: string - pid: - type: string - type: object - port: - description: Port define Port used by member - format: int32 - type: integer - priorityClassName: - description: |- - PriorityClassName specifies a priority class name - Will be forwarded to the pod spec. - type: string - probes: - description: Probes specifies additional behaviour for probes - properties: - ReadinessProbeDisabled: - description: OldReadinessProbeDisabled if true readinessProbes are disabled - type: boolean - livenessProbeDisabled: - description: LivenessProbeDisabled if set to true, the operator does not generate a liveness probe for new pods belonging to this group - type: boolean - livenessProbeSpec: - description: LivenessProbeSpec override liveness probe configuration - properties: - failureThreshold: - description: |- - FailureThreshold when a Pod starts and the probe fails, Kubernetes will try failureThreshold times before giving up. - Giving up means restarting the container. - Minimum value is 1. - format: int32 - type: integer - initialDelaySeconds: - description: |- - InitialDelaySeconds specifies number of seconds after the container has started before liveness or readiness probes are initiated. - Minimum value is 0. - format: int32 - type: integer - periodSeconds: - description: |- - PeriodSeconds How often (in seconds) to perform the probe. - Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - SuccessThreshold Minimum consecutive successes for the probe to be considered successful after having failed. - Minimum value is 1. - format: int32 - type: integer - timeoutSeconds: - description: |- - TimeoutSeconds specifies number of seconds after which the probe times out - Minimum value is 1. - format: int32 - type: integer - type: object - readinessProbeDisabled: - description: ReadinessProbeDisabled override flag for probe disabled in good manner (lowercase) with backward compatibility - type: boolean - readinessProbeSpec: - description: ReadinessProbeSpec override readiness probe configuration - properties: - failureThreshold: - description: |- - FailureThreshold when a Pod starts and the probe fails, Kubernetes will try failureThreshold times before giving up. - Giving up means restarting the container. - Minimum value is 1. - format: int32 - type: integer - initialDelaySeconds: - description: |- - InitialDelaySeconds specifies number of seconds after the container has started before liveness or readiness probes are initiated. - Minimum value is 0. - format: int32 - type: integer - periodSeconds: - description: |- - PeriodSeconds How often (in seconds) to perform the probe. - Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - SuccessThreshold Minimum consecutive successes for the probe to be considered successful after having failed. - Minimum value is 1. - format: int32 - type: integer - timeoutSeconds: - description: |- - TimeoutSeconds specifies number of seconds after which the probe times out - Minimum value is 1. - format: int32 - type: integer - type: object - startupProbeDisabled: - description: StartupProbeDisabled if true startupProbes are disabled - type: boolean - startupProbeSpec: - description: StartupProbeSpec override startup probe configuration - properties: - failureThreshold: - description: |- - FailureThreshold when a Pod starts and the probe fails, Kubernetes will try failureThreshold times before giving up. - Giving up means restarting the container. - Minimum value is 1. - format: int32 - type: integer - initialDelaySeconds: - description: |- - InitialDelaySeconds specifies number of seconds after the container has started before liveness or readiness probes are initiated. - Minimum value is 0. - format: int32 - type: integer - periodSeconds: - description: |- - PeriodSeconds How often (in seconds) to perform the probe. - Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - SuccessThreshold Minimum consecutive successes for the probe to be considered successful after having failed. - Minimum value is 1. - format: int32 - type: integer - timeoutSeconds: - description: |- - TimeoutSeconds specifies number of seconds after which the probe times out - Minimum value is 1. - format: int32 - type: integer - type: object - type: object - pvcResizeMode: - description: VolumeResizeMode specified resize mode for PVCs and PVs - enum: - - runtime - - rotate - type: string - resources: - description: Resources holds resource requests & limits - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - schedulerName: - description: SchedulerName define scheduler name used for group - type: string - securityContext: - description: |- - SecurityContext specifies additional `securityContext` settings in ArangoDB Pod definitions. - This is similar (but not fully compatible) to k8s SecurityContext definition. - properties: - addCapabilities: - description: AddCapabilities add new capabilities to containers - items: - type: string - type: array - allowPrivilegeEscalation: - description: AllowPrivilegeEscalation Controls whether a process can gain more privileges than its parent process. - type: boolean - dropAllCapabilities: - description: DropAllCapabilities specifies if capabilities should be dropped for this pod containers - type: boolean - fsGroup: - description: FSGroup is a special supplemental group that applies to all containers in a pod. - format: int64 - type: integer - privileged: - description: |- - Privileged If true, runs container in privileged mode. Processes in privileged containers are - essentially equivalent to root on the host. - type: boolean - readOnlyRootFilesystem: - description: ReadOnlyRootFilesystem if true, mounts the container's root filesystem as read-only. - type: boolean - runAsGroup: - description: RunAsGroup is the GID to run the entrypoint of the container process. - format: int64 - type: integer - runAsNonRoot: - description: RunAsNonRoot if true, indicates that the container must run as a non-root user. - type: boolean - runAsUser: - description: RunAsUser is the UID to run the entrypoint of the container process. - format: int64 - type: integer - seLinuxOptions: - description: SELinuxOptions are the labels to be applied to the container - properties: - level: - type: string - role: - type: string - type: - type: string - user: - type: string - type: object - seccompProfile: - description: SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set. - properties: - localhostProfile: - type: string - type: - type: string - type: object - supplementalGroups: - description: |- - SupplementalGroups is a list of groups applied to the first process run in each container, in addition to the container's primary GID, - the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. - items: - format: int64 - type: integer - type: array - sysctls: - additionalProperties: - type: string - x-kubernetes-int-or-string: true - description: |- - Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported - sysctls (by the container runtime) might fail to launch. - Map Value can be String or Int - type: object - type: object - serviceAccountName: - description: |- - ServiceAccountName setting specifies the `serviceAccountName` for the `Pods` created - for each server of this group. If empty, it defaults to using the - `default` service account. - Using an alternative `ServiceAccount` is typically used to separate access rights. - The ArangoDB deployments need some very minimal access rights. With the - deployment of the operator, we grant the rights to 'get' all 'pod' resources. - If you are using a different service account, please grant these rights - to that service account. - type: string - shutdownDelay: - description: ShutdownDelay define how long operator should delay finalizer removal after shutdown - format: int32 - type: integer - shutdownMethod: - description: ShutdownMethod describe procedure of member shutdown taken by Operator - type: string - sidecarCoreNames: - description: |- - SidecarCoreNames is a list of sidecar containers which must run in the pod. - Some names (e.g.: "server", "worker") are reserved, and they don't have any impact. - items: - type: string - type: array - sidecars: - description: Sidecars specifies a list of additional containers to be started - items: - properties: - args: - items: - type: string - type: array - command: - items: - type: string - type: array - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - name: - type: string - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - type: object - type: array - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - restartPolicy: - type: string - securityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - stdin: - type: boolean - stdinOnce: - type: boolean - terminationMessagePath: - type: string - terminationMessagePolicy: - type: string - tty: - type: boolean - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - type: object - type: array - workingDir: - type: string - type: object - type: array - storageClassName: - description: StorageClassName specifies the classname for storage of the servers. - type: string - terminationGracePeriodSeconds: - description: TerminationGracePeriodSeconds override default TerminationGracePeriodSeconds for pods - via silent rotation - format: int64 - type: integer - tolerations: - description: |- - Tolerations specifies the tolerations added to Pods in this group. - By default, suitable tolerations are set for the following keys with the `NoExecute` effect: - - `node.kubernetes.io/not-ready` - - `node.kubernetes.io/unreachable` - - `node.alpha.kubernetes.io/unreachable` (will be removed in future version) - For more information on tolerations, consult the https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - format: int64 - type: integer - value: - type: string - type: object - type: array - volumeAllowShrink: - description: VolumeAllowShrink allows shrinking of the volume - type: boolean - volumeClaimTemplate: - description: |- - VolumeClaimTemplate specifies a volumeClaimTemplate used by operator to create to volume claims for pods of this group. - This setting is not available for group `coordinators`, `syncmasters` & `syncworkers`. - The default value describes a volume with `8Gi` storage, `ReadWriteOnce` access mode and volume mode set to `PersistentVolumeFilesystem`. - If this field is not set and `spec..resources.requests.storage` is set, then a default volume claim - with size as specified by `spec..resources.requests.storage` will be created. In that case `storage` - and `iops` is not forwarded to the pods resource requirements. - properties: - apiVersion: - type: string - kind: - type: string - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - creationTimestamp: - format: date-time - type: string - deletionGracePeriodSeconds: - format: int64 - type: integer - deletionTimestamp: - format: date-time - type: string - finalizers: - items: - type: string - type: array - generateName: - type: string - generation: - format: int64 - type: integer - labels: - additionalProperties: - type: string - type: object - managedFields: - items: - properties: - apiVersion: - type: string - fieldsType: - type: string - fieldsV1: - type: object - manager: - type: string - operation: - type: string - subresource: - type: string - time: - format: date-time - type: string - type: object - type: array - name: - type: string - namespace: - type: string - ownerReferences: - items: - properties: - apiVersion: - type: string - blockOwnerDeletion: - type: boolean - controller: - type: boolean - kind: - type: string - name: - type: string - uid: - type: string - type: object - type: array - resourceVersion: - type: string - selfLink: - type: string - uid: - type: string - type: object - spec: - properties: - accessModes: - items: - type: string - type: array - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - type: object - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - type: object - resources: - properties: - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string - volumeAttributesClassName: - type: string - volumeMode: - type: string - volumeName: - type: string - type: object - status: - properties: - accessModes: - items: - type: string - type: array - allocatedResourceStatuses: - additionalProperties: - type: string - type: object - allocatedResources: - additionalProperties: - type: string - type: object - capacity: - additionalProperties: - type: string - type: object - conditions: - items: - properties: - lastProbeTime: - format: date-time - type: string - lastTransitionTime: - format: date-time - type: string - message: - type: string - reason: - type: string - status: - type: string - type: - type: string - type: object - type: array - currentVolumeAttributesClassName: - type: string - modifyVolumeStatus: - properties: - status: - type: string - targetVolumeAttributesClassName: - type: string - type: object - phase: - type: string - type: object - type: object - volumeMounts: - description: VolumeMounts define list of volume mounts mounted into server container - items: - properties: - mountPath: - description: |- - Path within the container at which the volume should be mounted. Must - not contain ':'. - type: string - mountPropagation: - description: |- - mountPropagation determines how mounts are propagated from the host - to container and the other way around. - When not set, MountPropagationNone is used. - This field is beta in 1.10. - When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified - (which defaults to None). - type: string - name: - description: This must match the Name of a Volume. - type: string - readOnly: - description: |- - Mounted read-only if true, read-write otherwise (false or unspecified). - Defaults to false. - type: boolean - subPath: - description: |- - Path within the volume from which the container's volume should be mounted. - Defaults to "" (volume's root). - type: string - subPathExpr: - description: |- - Expanded path within the volume from which the container's volume should be mounted. - Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. - Defaults to "" (volume's root). - SubPathExpr and SubPath are mutually exclusive. - type: string - type: object - type: array - volumes: - description: Volumes define list of volumes mounted to pod - items: - properties: - configMap: - description: ConfigMap which should be mounted into pod - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - type: object - type: array - name: - type: string - optional: - type: boolean - type: object - emptyDir: - description: EmptyDir - properties: - medium: - type: string - sizeLimit: - type: string - type: object - hostPath: - description: HostPath - properties: - path: - type: string - type: - type: string - type: object - name: - description: Name of volume - type: string - persistentVolumeClaim: - description: PersistentVolumeClaim - properties: - claimName: - type: string - readOnly: - type: boolean - type: object - secret: - description: Secret which should be mounted into pod - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - type: object - type: array - optional: - type: boolean - secretName: - type: string - type: object - type: object - type: array - type: object - syncworkers: - description: SyncWorkers contains specification for Syncworker pods running in deployment mode `Cluster`. - properties: - affinity: - description: Affinity specified additional affinity settings in ArangoDB Pod definitions - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - format: int32 - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - allowMemberRecreation: - description: |- - AllowMemberRecreation allows to recreate member. - This setting changes the member recreation logic based on group: - - For Sync Masters, Sync Workers, Coordinator and DB-Servers it determines if a member can be recreated in case of failure (default `true`) - - For Agents and Single this value is hardcoded to `false` and the value provided in spec is ignored. - type: boolean - annotations: - additionalProperties: - type: string - description: |- - Annotations specified the annotations added to Pods in this group. - Annotations are merged with `spec.annotations`. - type: object - annotationsIgnoreList: - description: AnnotationsIgnoreList list regexp or plain definitions which annotations should be ignored - items: - type: string - type: array - annotationsMode: - description: AnnotationsMode Define annotations mode which should be use while overriding annotations - type: string - antiAffinity: - description: AntiAffinity specified additional antiAffinity settings in ArangoDB Pod definitions - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - weight: - format: int32 - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - matchLabelKeys: - items: - type: string - type: array - mismatchLabelKeys: - items: - type: string - type: array - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - namespaces: - items: - type: string - type: array - topologyKey: - type: string - type: object - type: array - type: object - args: - description: Args setting specifies additional command-line arguments passed to all servers of this group. - items: - type: string - type: array - count: - description: |- - Count setting specifies the number of servers to start for the given group. - For the Agent group, this value must be a positive, odd number. - The default value is `3` for all groups except `single` (there the default is `1` - for `spec.mode: Single` and `2` for `spec.mode: ActiveFailover`). - For the `syncworkers` group, it is highly recommended to use the same number - as for the `dbservers` group. - format: int32 - type: integer - entrypoint: - description: Entrypoint overrides container executable - type: string - envs: - description: Envs allow to specify additional envs in this group. - items: - properties: - name: - type: string - value: - type: string - type: object - type: array - ephemeralVolumes: - description: EphemeralVolumes keeps information about ephemeral volumes. - properties: - apps: - description: Apps define apps ephemeral volume in case if `ephemeral-volumes` feature is enabled. - properties: - size: - description: Size define size of the ephemeral volume - type: string - type: object - temp: - description: Temp define temp ephemeral volume in case if `ephemeral-volumes` feature is enabled. - properties: - size: - description: Size define size of the ephemeral volume - type: string - type: object - type: object - exporterPort: - description: ExporterPort define Port used by exporter - format: int32 - type: integer - extendedRotationCheck: - description: ExtendedRotationCheck extend checks for rotation - type: boolean - externalPortEnabled: - description: ExternalPortEnabled if external port should be enabled. If is set to false, ports needs to be exposed via sidecar. Only for ArangoD members - type: boolean - indexMethod: - description: IndexMethod define group Indexing method - enum: - - random - - ordered - type: string - initContainers: - description: InitContainers Init containers specification - properties: - containers: - description: Containers contains list of containers - items: - properties: - args: - items: - type: string - type: array - command: - items: - type: string - type: array - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - name: - type: string - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - type: object - type: array - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - restartPolicy: - type: string - securityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - stdin: - type: boolean - stdinOnce: - type: boolean - terminationMessagePath: - type: string - terminationMessagePolicy: - type: string - tty: - type: boolean - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - type: object - type: array - workingDir: - type: string - type: object - type: array - mode: - description: Mode keep container replace mode - enum: - - update - - ignore - type: string - type: object - internalPort: - description: InternalPort define port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members - format: int32 - type: integer - internalPortProtocol: - description: InternalPortProtocol define protocol of port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members - type: string - labels: - additionalProperties: - type: string - description: Labels specified the labels added to Pods in this group. - type: object - labelsIgnoreList: - description: LabelsIgnoreList list regexp or plain definitions which labels should be ignored - items: - type: string - type: array - labelsMode: - description: LabelsMode Define labels mode which should be use while overriding labels - type: string - maxCount: - description: MaxCount specifies a maximum for the count of servers. If set, a specification is invalid if `count > maxCount`. - format: int32 - type: integer - memoryReservation: - description: |- - MemoryReservation determines the system reservation of memory while calculating `ARANGODB_OVERRIDE_DETECTED_TOTAL_MEMORY` value. - If this field is set, `ARANGODB_OVERRIDE_DETECTED_TOTAL_MEMORY` is reduced by a specified value in percent. - Accepted Range <0, 50>. If the value is outside the accepted range, it is adjusted to the closest value. - format: int64 - type: integer - minCount: - description: MinCount specifies a minimum for the count of servers. If set, a specification is invalid if `count < minCount`. - format: int32 - type: integer - nodeAffinity: - description: NodeAffinity specified additional nodeAffinity settings in ArangoDB Pod definitions - properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - weight: - format: int32 - type: integer - type: object - type: array - requiredDuringSchedulingIgnoredDuringExecution: - properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - type: object - type: array - type: object - type: object - nodeSelector: - additionalProperties: - type: string - description: NodeSelector setting specifies a set of labels to be used as `nodeSelector` for Pods of this node. - type: object - numactl: - description: Numactl define Numactl options passed to the process - properties: - args: - description: Args define list of the numactl process - items: - type: string - type: array - enabled: - description: Enabled define if numactl should be enabled - type: boolean - path: - description: Path define numactl path within the container - type: string - type: object - overrideDetectedNumberOfCores: - description: |- - OverrideDetectedNumberOfCores determines if number of cores should be overridden based on values in resources. - If is set to true and Container CPU Limits are set, it sets Container Environment Variable `ARANGODB_OVERRIDE_DETECTED_NUMBER_OF_CORES` to the value from the Container CPU Limits. - type: boolean - overrideDetectedTotalMemory: - description: |- - OverrideDetectedTotalMemory determines if memory should be overridden based on values in resources. - If is set to true and Container Memory Limits are set, it sets Container Environment Variable `ARANGODB_OVERRIDE_DETECTED_TOTAL_MEMORY` to the value from the Container Memory Limits. - type: boolean - podModes: - description: PodModes define additional modes enabled on the Pod level - properties: - network: - type: string - pid: - type: string - type: object - port: - description: Port define Port used by member - format: int32 - type: integer - priorityClassName: - description: |- - PriorityClassName specifies a priority class name - Will be forwarded to the pod spec. - type: string - probes: - description: Probes specifies additional behaviour for probes - properties: - ReadinessProbeDisabled: - description: OldReadinessProbeDisabled if true readinessProbes are disabled - type: boolean - livenessProbeDisabled: - description: LivenessProbeDisabled if set to true, the operator does not generate a liveness probe for new pods belonging to this group - type: boolean - livenessProbeSpec: - description: LivenessProbeSpec override liveness probe configuration - properties: - failureThreshold: - description: |- - FailureThreshold when a Pod starts and the probe fails, Kubernetes will try failureThreshold times before giving up. - Giving up means restarting the container. - Minimum value is 1. - format: int32 - type: integer - initialDelaySeconds: - description: |- - InitialDelaySeconds specifies number of seconds after the container has started before liveness or readiness probes are initiated. - Minimum value is 0. - format: int32 - type: integer - periodSeconds: - description: |- - PeriodSeconds How often (in seconds) to perform the probe. - Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - SuccessThreshold Minimum consecutive successes for the probe to be considered successful after having failed. - Minimum value is 1. - format: int32 - type: integer - timeoutSeconds: - description: |- - TimeoutSeconds specifies number of seconds after which the probe times out - Minimum value is 1. - format: int32 - type: integer - type: object - readinessProbeDisabled: - description: ReadinessProbeDisabled override flag for probe disabled in good manner (lowercase) with backward compatibility - type: boolean - readinessProbeSpec: - description: ReadinessProbeSpec override readiness probe configuration - properties: - failureThreshold: - description: |- - FailureThreshold when a Pod starts and the probe fails, Kubernetes will try failureThreshold times before giving up. - Giving up means restarting the container. - Minimum value is 1. - format: int32 - type: integer - initialDelaySeconds: - description: |- - InitialDelaySeconds specifies number of seconds after the container has started before liveness or readiness probes are initiated. - Minimum value is 0. - format: int32 - type: integer - periodSeconds: - description: |- - PeriodSeconds How often (in seconds) to perform the probe. - Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - SuccessThreshold Minimum consecutive successes for the probe to be considered successful after having failed. - Minimum value is 1. - format: int32 - type: integer - timeoutSeconds: - description: |- - TimeoutSeconds specifies number of seconds after which the probe times out - Minimum value is 1. - format: int32 - type: integer - type: object - startupProbeDisabled: - description: StartupProbeDisabled if true startupProbes are disabled - type: boolean - startupProbeSpec: - description: StartupProbeSpec override startup probe configuration - properties: - failureThreshold: - description: |- - FailureThreshold when a Pod starts and the probe fails, Kubernetes will try failureThreshold times before giving up. - Giving up means restarting the container. - Minimum value is 1. - format: int32 - type: integer - initialDelaySeconds: - description: |- - InitialDelaySeconds specifies number of seconds after the container has started before liveness or readiness probes are initiated. - Minimum value is 0. - format: int32 - type: integer - periodSeconds: - description: |- - PeriodSeconds How often (in seconds) to perform the probe. - Minimum value is 1. - format: int32 - type: integer - successThreshold: - description: |- - SuccessThreshold Minimum consecutive successes for the probe to be considered successful after having failed. - Minimum value is 1. - format: int32 - type: integer - timeoutSeconds: - description: |- - TimeoutSeconds specifies number of seconds after which the probe times out - Minimum value is 1. - format: int32 - type: integer - type: object - type: object - pvcResizeMode: - description: VolumeResizeMode specified resize mode for PVCs and PVs - enum: - - runtime - - rotate - type: string - resources: - description: Resources holds resource requests & limits - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - schedulerName: - description: SchedulerName define scheduler name used for group - type: string - securityContext: - description: |- - SecurityContext specifies additional `securityContext` settings in ArangoDB Pod definitions. - This is similar (but not fully compatible) to k8s SecurityContext definition. - properties: - addCapabilities: - description: AddCapabilities add new capabilities to containers - items: - type: string - type: array - allowPrivilegeEscalation: - description: AllowPrivilegeEscalation Controls whether a process can gain more privileges than its parent process. - type: boolean - dropAllCapabilities: - description: DropAllCapabilities specifies if capabilities should be dropped for this pod containers - type: boolean - fsGroup: - description: FSGroup is a special supplemental group that applies to all containers in a pod. - format: int64 - type: integer - privileged: - description: |- - Privileged If true, runs container in privileged mode. Processes in privileged containers are - essentially equivalent to root on the host. - type: boolean - readOnlyRootFilesystem: - description: ReadOnlyRootFilesystem if true, mounts the container's root filesystem as read-only. - type: boolean - runAsGroup: - description: RunAsGroup is the GID to run the entrypoint of the container process. - format: int64 - type: integer - runAsNonRoot: - description: RunAsNonRoot if true, indicates that the container must run as a non-root user. - type: boolean - runAsUser: - description: RunAsUser is the UID to run the entrypoint of the container process. - format: int64 - type: integer - seLinuxOptions: - description: SELinuxOptions are the labels to be applied to the container - properties: - level: - type: string - role: - type: string - type: - type: string - user: - type: string - type: object - seccompProfile: - description: SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set. - properties: - localhostProfile: - type: string - type: - type: string - type: object - supplementalGroups: - description: |- - SupplementalGroups is a list of groups applied to the first process run in each container, in addition to the container's primary GID, - the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process. - items: - format: int64 - type: integer - type: array - sysctls: - additionalProperties: - type: string - x-kubernetes-int-or-string: true - description: |- - Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported - sysctls (by the container runtime) might fail to launch. - Map Value can be String or Int - type: object - type: object - serviceAccountName: - description: |- - ServiceAccountName setting specifies the `serviceAccountName` for the `Pods` created - for each server of this group. If empty, it defaults to using the - `default` service account. - Using an alternative `ServiceAccount` is typically used to separate access rights. - The ArangoDB deployments need some very minimal access rights. With the - deployment of the operator, we grant the rights to 'get' all 'pod' resources. - If you are using a different service account, please grant these rights - to that service account. - type: string - shutdownDelay: - description: ShutdownDelay define how long operator should delay finalizer removal after shutdown - format: int32 - type: integer - shutdownMethod: - description: ShutdownMethod describe procedure of member shutdown taken by Operator - type: string - sidecarCoreNames: - description: |- - SidecarCoreNames is a list of sidecar containers which must run in the pod. - Some names (e.g.: "server", "worker") are reserved, and they don't have any impact. - items: - type: string - type: array - sidecars: - description: Sidecars specifies a list of additional containers to be started - items: - properties: - args: - items: - type: string - type: array - command: - items: - type: string - type: array - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - type: object - tcpSocket: - properties: - host: - type: string - port: - type: string - x-kubernetes-int-or-string: true - type: object - type: object - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - name: - type: string - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - type: object - type: array - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - type: object - type: array - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - restartPolicy: - type: string - securityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - type: object - 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: - type: string - x-kubernetes-int-or-string: true - 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: - type: string - x-kubernetes-int-or-string: true - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - stdin: - type: boolean - stdinOnce: - type: boolean - terminationMessagePath: - type: string - terminationMessagePolicy: - type: string - tty: - type: boolean - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - type: object - type: array - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - type: object - type: array - workingDir: - type: string - type: object - type: array - storageClassName: - description: StorageClassName specifies the classname for storage of the servers. - type: string - terminationGracePeriodSeconds: - description: TerminationGracePeriodSeconds override default TerminationGracePeriodSeconds for pods - via silent rotation - format: int64 - type: integer - tolerations: - description: |- - Tolerations specifies the tolerations added to Pods in this group. - By default, suitable tolerations are set for the following keys with the `NoExecute` effect: - - `node.kubernetes.io/not-ready` - - `node.kubernetes.io/unreachable` - - `node.alpha.kubernetes.io/unreachable` (will be removed in future version) - For more information on tolerations, consult the https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - format: int64 - type: integer - value: - type: string - type: object - type: array - volumeAllowShrink: - description: VolumeAllowShrink allows shrinking of the volume - type: boolean - volumeClaimTemplate: - description: |- - VolumeClaimTemplate specifies a volumeClaimTemplate used by operator to create to volume claims for pods of this group. - This setting is not available for group `coordinators`, `syncmasters` & `syncworkers`. - The default value describes a volume with `8Gi` storage, `ReadWriteOnce` access mode and volume mode set to `PersistentVolumeFilesystem`. - If this field is not set and `spec..resources.requests.storage` is set, then a default volume claim - with size as specified by `spec..resources.requests.storage` will be created. In that case `storage` - and `iops` is not forwarded to the pods resource requirements. - properties: - apiVersion: - type: string - kind: - type: string - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - creationTimestamp: - format: date-time - type: string - deletionGracePeriodSeconds: - format: int64 - type: integer - deletionTimestamp: - format: date-time - type: string - finalizers: - items: - type: string - type: array - generateName: - type: string - generation: - format: int64 - type: integer - labels: - additionalProperties: - type: string - type: object - managedFields: - items: - properties: - apiVersion: - type: string - fieldsType: - type: string - fieldsV1: - type: object - manager: - type: string - operation: - type: string - subresource: - type: string - time: - format: date-time - type: string - type: object - type: array - name: - type: string - namespace: - type: string - ownerReferences: - items: - properties: - apiVersion: - type: string - blockOwnerDeletion: - type: boolean - controller: - type: boolean - kind: - type: string - name: - type: string - uid: - type: string - type: object - type: array - resourceVersion: - type: string - selfLink: - type: string - uid: - type: string - type: object - spec: - properties: - accessModes: - items: - type: string - type: array - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - type: object - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - type: object - resources: - properties: - limits: - additionalProperties: - type: string - type: object - requests: - additionalProperties: - type: string - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - type: object - type: array - matchLabels: - additionalProperties: - type: string - type: object - type: object - storageClassName: - type: string - volumeAttributesClassName: - type: string - volumeMode: - type: string - volumeName: - type: string - type: object - status: - properties: - accessModes: - items: - type: string - type: array - allocatedResourceStatuses: - additionalProperties: - type: string - type: object - allocatedResources: - additionalProperties: - type: string - type: object - capacity: - additionalProperties: - type: string - type: object - conditions: - items: - properties: - lastProbeTime: - format: date-time - type: string - lastTransitionTime: - format: date-time - type: string - message: - type: string - reason: - type: string - status: - type: string - type: - type: string - type: object - type: array - currentVolumeAttributesClassName: - type: string - modifyVolumeStatus: - properties: - status: - type: string - targetVolumeAttributesClassName: - type: string - type: object - phase: - type: string - type: object - type: object - volumeMounts: - description: VolumeMounts define list of volume mounts mounted into server container - items: - properties: - mountPath: - description: |- - Path within the container at which the volume should be mounted. Must - not contain ':'. - type: string - mountPropagation: - description: |- - mountPropagation determines how mounts are propagated from the host - to container and the other way around. - When not set, MountPropagationNone is used. - This field is beta in 1.10. - When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified - (which defaults to None). - type: string - name: - description: This must match the Name of a Volume. - type: string - readOnly: - description: |- - Mounted read-only if true, read-write otherwise (false or unspecified). - Defaults to false. - type: boolean - subPath: - description: |- - Path within the volume from which the container's volume should be mounted. - Defaults to "" (volume's root). - type: string - subPathExpr: - description: |- - Expanded path within the volume from which the container's volume should be mounted. - Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. - Defaults to "" (volume's root). - SubPathExpr and SubPath are mutually exclusive. - type: string - type: object - type: array - volumes: - description: Volumes define list of volumes mounted to pod - items: - properties: - configMap: - description: ConfigMap which should be mounted into pod - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - type: object - type: array - name: - type: string - optional: - type: boolean - type: object - emptyDir: - description: EmptyDir - properties: - medium: - type: string - sizeLimit: - type: string - type: object - hostPath: - description: HostPath - properties: - path: - type: string - type: - type: string - type: object - name: - description: Name of volume - type: string - persistentVolumeClaim: - description: PersistentVolumeClaim - properties: - claimName: - type: string - readOnly: - type: boolean - type: object - secret: - description: Secret which should be mounted into pod - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - type: object - type: array - optional: - type: boolean - secretName: - type: string - type: object - type: object - type: array - type: object - timeouts: - description: Timeouts object allows to configure various time-outs - properties: - actions: - additionalProperties: - type: object - description: Actions keep map of the actions timeouts. - type: object - maintenanceGracePeriod: - description: MaintenanceGracePeriod action timeout - type: object - type: object - timezone: - description: |- - Timezone if specified, will set a timezone for deployment. - Must be in format accepted by "tzdata", e.g. `America/New_York` or `Europe/London` - type: string - tls: - description: TLS holds TLS configuration settings - properties: - altNames: - description: |- - AltNames setting specifies a list of alternate names that will be added to all generated - certificates. These names can be DNS names or email addresses. - The default value is empty. - items: - type: string - type: array - caSecretName: - description: |- - CASecretName setting specifies the name of a kubernetes `Secret` that contains - a standard CA certificate + private key used to sign certificates for individual - ArangoDB servers. - When no name is specified, it defaults to `-ca`. - To disable authentication, set this value to `None`. - If you specify a name of a `Secret` that does not exist, a self-signed CA certificate + key is created - and stored in a `Secret` with given name. - The specified `Secret`, must contain the following data fields: - - `ca.crt` PEM encoded public key of the CA certificate - - `ca.key` PEM encoded private key of the CA certificate - type: string - mode: - type: string - sni: - properties: - mapping: - additionalProperties: - items: - type: string - type: array - type: object - type: object - ttl: - description: |- - TTL setting specifies the time to live of all generated server certificates. - When the server certificate is about to expire, it will be automatically replaced - by a new one and the affected server will be restarted. - Note: The time to live of the CA certificate (when created automatically) - will be set to 10 years. - type: string - type: object - topology: - description: Topology define topology adjustment details, Enterprise only - properties: - enabled: - type: boolean - label: - type: string - zones: - format: int32 - type: integer - type: object - upgrade: - description: Upgrade allows to configure upgrade-related options - properties: - autoUpgrade: - description: AutoUpgrade flag specifies if upgrade should be auto-injected, even if is not required (in case of stuck) - type: boolean - debugLog: - description: |- - DebugLog flag specifies if containers running upgrade process should print more debugging information. - This applies only to init containers. - type: boolean - type: object - type: object - status: - description: Object with preserved fields for backward compatibility - type: object - x-kubernetes-preserve-unknown-fields: true - type: object v2alpha1: openAPIV3Schema: properties: diff --git a/pkg/crd/crds/database-deployment.yaml b/pkg/crd/crds/database-deployment.yaml index 22f9d1acf..5fc5a3883 100644 --- a/pkg/crd/crds/database-deployment.yaml +++ b/pkg/crd/crds/database-deployment.yaml @@ -21,13 +21,6 @@ spec: x-kubernetes-preserve-unknown-fields: true served: true storage: true - - name: v1alpha - schema: - openAPIV3Schema: - type: object - x-kubernetes-preserve-unknown-fields: true - served: true - storage: false - name: v2alpha1 schema: openAPIV3Schema: diff --git a/pkg/crd/crds/database-task.schema.generated.yaml b/pkg/crd/crds/database-task.schema.generated.yaml index c528ce124..fbcdfa4b5 100644 --- a/pkg/crd/crds/database-task.schema.generated.yaml +++ b/pkg/crd/crds/database-task.schema.generated.yaml @@ -14,22 +14,6 @@ v1: type: object x-kubernetes-preserve-unknown-fields: true type: object -v1alpha: - openAPIV3Schema: - properties: - spec: - properties: - details: - format: byte - type: string - type: - type: string - type: object - status: - description: Object with preserved fields for backward compatibility - type: object - x-kubernetes-preserve-unknown-fields: true - type: object v2alpha1: openAPIV3Schema: properties: diff --git a/pkg/crd/crds/database-task.yaml b/pkg/crd/crds/database-task.yaml index 85d452000..ccab9cbad 100644 --- a/pkg/crd/crds/database-task.yaml +++ b/pkg/crd/crds/database-task.yaml @@ -18,13 +18,6 @@ spec: x-kubernetes-preserve-unknown-fields: true served: true storage: true - - name: v1alpha - schema: - openAPIV3Schema: - type: object - x-kubernetes-preserve-unknown-fields: true - served: true - storage: false - name: v2alpha1 schema: openAPIV3Schema: diff --git a/pkg/crd/crds/ml-extension.schema.generated.yaml b/pkg/crd/crds/ml-extension.schema.generated.yaml index e5ff82aa6..86ebc9b0b 100644 --- a/pkg/crd/crds/ml-extension.schema.generated.yaml +++ b/pkg/crd/crds/ml-extension.schema.generated.yaml @@ -13249,6 +13249,7 @@ v1beta1: spec: properties: deployment: + description: Deployment specifies how the ML extension will be deployed into cluster properties: affinity: properties: @@ -13663,6 +13664,7 @@ v1beta1: type: object type: array gpu: + description: GPU defined if GPU Jobs are enabled. type: boolean hostIPC: type: boolean @@ -13932,6 +13934,7 @@ v1beta1: type: object type: object port: + description: Port defines on which port the container will be listening for connections format: int32 type: integer ports: @@ -14017,6 +14020,7 @@ v1beta1: type: integer type: object replicas: + description: Replicas defines the number of replicas running specified components. No replicas created if no components are defined. format: int32 type: integer resources: @@ -14108,8 +14112,16 @@ v1beta1: type: object type: object service: + description: Service defines how components will be exposed properties: type: + description: Type determines how the Service is exposed + enum: + - ClusterIP + - NodePort + - LoadBalancer + - ExternalName + - None type: string type: object serviceAccountName: @@ -14182,6 +14194,7 @@ v1beta1: type: integer type: object tls: + description: TLS defined TLS Settings for extension properties: altNames: description: AltNames define TLS AltNames used when TLS on the ArangoDB is enabled @@ -14918,6 +14931,7 @@ v1beta1: type: string type: object init: + description: ArangoMLExtensionTemplate define Init job specification properties: affinity: properties: @@ -16563,6 +16577,7 @@ v1beta1: type: string type: object integrationSidecar: + description: IntegrationSidecar define the integration sidecar spec properties: args: items: @@ -17065,10 +17080,13 @@ v1beta1: type: string type: object jobsTemplates: + description: JobsTemplates defines templates for jobs properties: featurization: + description: Featurization defines template for the featurization job properties: cpu: + description: CPU defines templates for CPU jobs properties: affinity: properties: @@ -18714,6 +18732,7 @@ v1beta1: type: string type: object gpu: + description: GPU defines templates for GPU jobs properties: affinity: properties: @@ -20360,8 +20379,10 @@ v1beta1: type: object type: object prediction: + description: Prediction defines template for the prediction job properties: cpu: + description: CPU defines templates for CPU jobs properties: affinity: properties: @@ -22007,6 +22028,7 @@ v1beta1: type: string type: object gpu: + description: GPU defines templates for GPU jobs properties: affinity: properties: @@ -23653,8 +23675,10 @@ v1beta1: type: object type: object training: + description: Training defines template for the training job properties: cpu: + description: CPU defines templates for CPU jobs properties: affinity: properties: @@ -25300,6 +25324,7 @@ v1beta1: type: string type: object gpu: + description: GPU defines templates for GPU jobs properties: affinity: properties: @@ -26947,16 +26972,21 @@ v1beta1: type: object type: object metadataService: + description: MetadataService keeps the MetadataService configuration properties: local: + description: Local define to use Local ArangoDeployment as the Metadata Service properties: arangoMLFeatureStore: + description: ArangoMLFeatureStoreDatabase define Database name to be used as MetadataService Backend in ArangoMLFeatureStoreDatabase type: string arangoPipeDatabase: + description: ArangoPipeDatabase define Database name to be used as MetadataService Backend in ArangoPipe type: string type: object type: object storage: + description: Storage specifies the ArangoMLStorage used within Extension properties: checksum: description: UID keeps the information about object Checksum diff --git a/pkg/crd/crds/ml-storage.schema.generated.yaml b/pkg/crd/crds/ml-storage.schema.generated.yaml index ba6474cfd..c3fa10cdb 100644 --- a/pkg/crd/crds/ml-storage.schema.generated.yaml +++ b/pkg/crd/crds/ml-storage.schema.generated.yaml @@ -587,12 +587,20 @@ v1beta1: spec: properties: backend: + description: Backend defines how storage is implemented properties: s3: + description: S3 backend implements storage as a proxy to the provided S3 API endpoint properties: allowInsecure: + description: AllowInsecure if set to true, the Endpoint certificates won't be checked type: boolean caSecret: + description: |- + CASecret if not empty, the given Kubernetes Secret will be used to check the authenticity of Endpoint + The specified Secret, must contain the following data fields: + - `ca.crt` PEM encoded public key of the CA certificate + - `ca.key` PEM encoded private key of the CA certificate properties: checksum: description: UID keeps the information about object Checksum @@ -608,6 +616,9 @@ v1beta1: type: string type: object credentialsSecret: + description: |- + CredentialsSecret specifies the Kubernetes Secret containing AccessKey and SecretKey for S3 API authorization + Required properties: checksum: description: UID keeps the information about object Checksum @@ -623,18 +634,28 @@ v1beta1: type: string type: object endpoint: + description: |- + Endpoint specifies the S3 API-compatible endpoint which implements storage + Required type: string region: + description: Region defines the availability zone name. type: string type: object type: object bucketName: + description: |- + BucketName specifies the name of the bucket + Required type: string bucketPath: + description: BucketPath specifies the path within the bucket type: string mode: + description: Mode defines how storage implementation should be deployed properties: sidecar: + description: Sidecar mode runs the storage implementation as a sidecar type: object type: object type: object diff --git a/pkg/crd/crds/replication-deploymentreplication.schema.generated.yaml b/pkg/crd/crds/replication-deploymentreplication.schema.generated.yaml index e8be88f98..942df16f3 100644 --- a/pkg/crd/crds/replication-deploymentreplication.schema.generated.yaml +++ b/pkg/crd/crds/replication-deploymentreplication.schema.generated.yaml @@ -113,121 +113,6 @@ v1: type: object x-kubernetes-preserve-unknown-fields: true type: object -v1alpha: - openAPIV3Schema: - properties: - spec: - properties: - cancellation: - description: Cancellation describes what to do during cancellation process. - properties: - ensureInSync: - description: |- - EnsureInSync if it is true then during cancellation process data consistency is required. - Default value is true. - type: boolean - sourceReadOnly: - description: |- - SourceReadOnly if it true then after cancellation source data center should be in read-only mode. - Default value is false. - type: boolean - type: object - destination: - properties: - auth: - description: Authentication holds settings needed to authentication at the syncmaster. - properties: - keyfileSecretName: - description: |- - KeyfileSecretName holds the name of a Secret containing a client authentication - certificate formatted at keyfile in a `tls.keyfile` field. - If `userSecretName` has not been set, - the client authentication certificate found in the secret with this name is also used to configure - the synchronization and fetch the synchronization status. - type: string - userSecretName: - description: |- - UserSecretName holds the name of a Secret containing a `username` & `password` - field used for basic authentication. - The user identified by the username must have write access in the `_system` database - of the ArangoDB cluster at the endpoint. - type: string - type: object - deploymentName: - description: |- - DeploymentName holds the name of an ArangoDeployment resource. - If set, this provides default values for masterEndpoint, auth & tls. - type: string - masterEndpoint: - description: |- - MasterEndpoint holds a list of URLs used to reach the syncmaster(s) - Use this setting if the source cluster is not running inside a Kubernetes cluster - that is reachable from the Kubernetes cluster the `ArangoDeploymentReplication` resource is deployed in. - Specifying this setting and `deploymentName` at the same time is not allowed. - items: - type: string - type: array - tls: - description: TLS holds settings needed to verify the TLS connection to the syncmaster. - properties: - caSecretName: - description: |- - CASecretName holds the name of a Secret containing a ca.crt public key for TLS validation. - This setting is required, unless `deploymentName` has been set. - type: string - type: object - type: object - source: - properties: - auth: - description: Authentication holds settings needed to authentication at the syncmaster. - properties: - keyfileSecretName: - description: |- - KeyfileSecretName holds the name of a Secret containing a client authentication - certificate formatted at keyfile in a `tls.keyfile` field. - If `userSecretName` has not been set, - the client authentication certificate found in the secret with this name is also used to configure - the synchronization and fetch the synchronization status. - type: string - userSecretName: - description: |- - UserSecretName holds the name of a Secret containing a `username` & `password` - field used for basic authentication. - The user identified by the username must have write access in the `_system` database - of the ArangoDB cluster at the endpoint. - type: string - type: object - deploymentName: - description: |- - DeploymentName holds the name of an ArangoDeployment resource. - If set, this provides default values for masterEndpoint, auth & tls. - type: string - masterEndpoint: - description: |- - MasterEndpoint holds a list of URLs used to reach the syncmaster(s) - Use this setting if the source cluster is not running inside a Kubernetes cluster - that is reachable from the Kubernetes cluster the `ArangoDeploymentReplication` resource is deployed in. - Specifying this setting and `deploymentName` at the same time is not allowed. - items: - type: string - type: array - tls: - description: TLS holds settings needed to verify the TLS connection to the syncmaster. - properties: - caSecretName: - description: |- - CASecretName holds the name of a Secret containing a ca.crt public key for TLS validation. - This setting is required, unless `deploymentName` has been set. - type: string - type: object - type: object - type: object - status: - description: Object with preserved fields for backward compatibility - type: object - x-kubernetes-preserve-unknown-fields: true - type: object v2alpha1: openAPIV3Schema: properties: diff --git a/pkg/crd/crds/replication-deploymentreplication.yaml b/pkg/crd/crds/replication-deploymentreplication.yaml index e3918b355..26633936d 100644 --- a/pkg/crd/crds/replication-deploymentreplication.yaml +++ b/pkg/crd/crds/replication-deploymentreplication.yaml @@ -20,13 +20,6 @@ spec: x-kubernetes-preserve-unknown-fields: true served: true storage: true - - name: v1alpha - schema: - openAPIV3Schema: - type: object - x-kubernetes-preserve-unknown-fields: true - served: true - storage: false - name: v2alpha1 schema: openAPIV3Schema: diff --git a/pkg/crd/crds/scheduler-batchjob.schema.generated.yaml b/pkg/crd/crds/scheduler-batchjob.schema.generated.yaml index eeaf58df4..32d84e8a5 100644 --- a/pkg/crd/crds/scheduler-batchjob.schema.generated.yaml +++ b/pkg/crd/crds/scheduler-batchjob.schema.generated.yaml @@ -61,6 +61,7 @@ v1beta1: podReplacementPolicy: type: string profiles: + description: Profiles keeps list of the profiles items: type: string type: array diff --git a/pkg/crd/crds/scheduler-cronjob.schema.generated.yaml b/pkg/crd/crds/scheduler-cronjob.schema.generated.yaml index 1913cbbcf..7a70cf436 100644 --- a/pkg/crd/crds/scheduler-cronjob.schema.generated.yaml +++ b/pkg/crd/crds/scheduler-cronjob.schema.generated.yaml @@ -3122,6 +3122,7 @@ v1beta1: type: object type: object profiles: + description: Profiles keeps list of the profiles items: type: string type: array diff --git a/pkg/crd/crds/scheduler-deployment.schema.generated.yaml b/pkg/crd/crds/scheduler-deployment.schema.generated.yaml index b05cef7ad..949aa680c 100644 --- a/pkg/crd/crds/scheduler-deployment.schema.generated.yaml +++ b/pkg/crd/crds/scheduler-deployment.schema.generated.yaml @@ -9,6 +9,7 @@ v1beta1: paused: type: boolean profiles: + description: Profiles keeps list of the profiles items: type: string type: array diff --git a/pkg/crd/crds/scheduler-pod.schema.generated.yaml b/pkg/crd/crds/scheduler-pod.schema.generated.yaml index ff933e2f7..c84370963 100644 --- a/pkg/crd/crds/scheduler-pod.schema.generated.yaml +++ b/pkg/crd/crds/scheduler-pod.schema.generated.yaml @@ -2000,6 +2000,7 @@ v1beta1: priorityClassName: type: string profiles: + description: Profiles keeps list of the profiles items: type: string type: array diff --git a/pkg/crd/crds/scheduler-profile.schema.generated.yaml b/pkg/crd/crds/scheduler-profile.schema.generated.yaml index 32d5ca1dd..d8d93d526 100644 --- a/pkg/crd/crds/scheduler-profile.schema.generated.yaml +++ b/pkg/crd/crds/scheduler-profile.schema.generated.yaml @@ -1787,8 +1787,10 @@ v1beta1: spec: properties: selectors: + description: Selectors keeps information about ProfileSelectors properties: label: + description: Label keeps information about label selector properties: matchExpressions: items: @@ -1810,10 +1812,13 @@ v1beta1: type: object type: object template: + description: Template keeps the Profile Template properties: container: + description: Container Template properties: all: + description: All applies generic values to all Containers properties: env: items: @@ -2399,9 +2404,11 @@ v1beta1: workingDir: type: string type: object + description: Containers applies values per container type: object type: object pod: + description: Pod Template properties: affinity: properties: @@ -3554,6 +3561,9 @@ v1beta1: type: array type: object priority: + description: |- + Priority defines Priority of the Profile. Higher value means Profile will get applied first. + If Priority across Profiles is same, Profiles are also sorted by name. format: int32 type: integer type: object diff --git a/pkg/deployment/reconcile/action_wait_for_member_up.go b/pkg/deployment/reconcile/action_wait_for_member_up.go index 9b4b525c7..513d8b156 100644 --- a/pkg/deployment/reconcile/action_wait_for_member_up.go +++ b/pkg/deployment/reconcile/action_wait_for_member_up.go @@ -1,7 +1,7 @@ // // DISCLAIMER // -// Copyright 2016-2024 ArangoDB GmbH, Cologne, Germany +// Copyright 2016-2025 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. @@ -77,20 +77,20 @@ func (a *actionWaitForMemberUp) CheckProgress(ctx context.Context) (bool, bool, case api.ServerGroupTypeArangoD: switch a.actionCtx.GetMode() { case api.DeploymentModeSingle: - return a.checkProgressSingle(ctxChild) + return a.checkProgressSingle(ctxChild), false, nil case api.DeploymentModeActiveFailover: if a.action.Group == api.ServerGroupAgents { - return a.checkProgressAgent() + return a.checkProgressAgent(), false, nil } - return a.checkProgressSingleInActiveFailover(ctxChild) + return a.checkProgressSingleInActiveFailover(ctxChild), false, nil default: if a.action.Group == api.ServerGroupAgents { - return a.checkProgressAgent() + return a.checkProgressAgent(), false, nil } - return a.checkProgressCluster(ctx) + return a.checkProgressCluster(ctx), false, nil } case api.ServerGroupTypeArangoSync: - return a.checkProgressArangoSync(ctxChild) + return a.checkProgressArangoSync(ctxChild), false, nil default: assertion.InvalidGroupKey.Assert(true, "Unable to execute action WaitForMemberUp for an unknown group: %s", a.action.Group.AsRole()) return true, false, nil @@ -99,68 +99,68 @@ func (a *actionWaitForMemberUp) CheckProgress(ctx context.Context) (bool, bool, // checkProgressSingle checks the progress of the action in the case // of a single server. -func (a *actionWaitForMemberUp) checkProgressSingle(ctx context.Context) (bool, bool, error) { +func (a *actionWaitForMemberUp) checkProgressSingle(ctx context.Context) bool { c, err := a.actionCtx.GetMembersState().State().GetDatabaseClient() if err != nil { a.log.Err(err).Debug("Failed to create database client") - return false, false, nil + return false } if _, err := c.Version(ctx); err != nil { a.log.Err(err).Debug("Failed to get version") - return false, false, nil + return false } - return true, false, nil + return true } // checkProgressSingleInActiveFailover checks the progress of the action in the case // of a single server as part of an active failover deployment. -func (a *actionWaitForMemberUp) checkProgressSingleInActiveFailover(ctx context.Context) (bool, bool, error) { +func (a *actionWaitForMemberUp) checkProgressSingleInActiveFailover(ctx context.Context) bool { c, err := a.actionCtx.GetMembersState().GetMemberClient(a.action.MemberID) if err != nil { a.log.Err(err).Debug("Failed to create database client") - return false, false, nil + return false } if _, err := c.Version(ctx); err != nil { a.log.Err(err).Debug("Failed to get version") - return false, false, nil + return false } - return true, false, nil + return true } // checkProgressAgent checks the progress of the action in the case // of an agent. -func (a *actionWaitForMemberUp) checkProgressAgent() (bool, bool, error) { +func (a *actionWaitForMemberUp) checkProgressAgent() bool { agencyHealth, ok := a.actionCtx.GetAgencyHealth() if !ok { a.log.Debug("Agency health fetch failed") - return false, false, nil + return false } if err := agencyHealth.Healthy(); err != nil { a.log.Err(err).Debug("Not all agents are ready") - return false, false, nil + return false } a.log.Debug("Agency is happy") - return true, false, nil + return true } // checkProgressCluster checks the progress of the action in the case // of a cluster deployment (coordinator/dbserver). -func (a *actionWaitForMemberUp) checkProgressCluster(ctx context.Context) (bool, bool, error) { +func (a *actionWaitForMemberUp) checkProgressCluster(ctx context.Context) bool { h, _ := a.actionCtx.GetMembersState().Health() if h.Error != nil { a.log.Err(h.Error).Debug("Cluster health is missing") - return false, false, nil + return false } sh, found := h.Members[driver.ServerID(a.action.MemberID)] if !found { a.log.Debug("Member not yet found in cluster health") - return false, false, nil + return false } if sh.Status != driver.ServerStatusGood { a.log.Str("status", string(sh.Status)).Debug("Member set status not yet good") - return false, false, nil + return false } // Wait for the member to become ready from a kubernetes point of view @@ -169,13 +169,13 @@ func (a *actionWaitForMemberUp) checkProgressCluster(ctx context.Context) (bool, m, found := a.actionCtx.GetMemberStatusByID(a.MemberID()) if !found { a.log.Error("No such member") - return false, true, nil + return false } imageInfo, found := a.actionCtx.GetCurrentImageInfo() if !found { a.log.Info("Image not found") - return false, false, nil + return false } if resources.IsServerProgressAvailable(a.action.Group, imageInfo) { @@ -189,28 +189,28 @@ func (a *actionWaitForMemberUp) checkProgressCluster(ctx context.Context) (bool, if !m.Conditions.IsTrue(api.ConditionTypeReady) { a.log.Debug("Member not yet ready") - return false, false, nil + return false } - return true, false, nil + return true } // checkProgressArangoSync checks the progress of the action in the case // of a sync master / worker. -func (a *actionWaitForMemberUp) checkProgressArangoSync(ctx context.Context) (bool, bool, error) { +func (a *actionWaitForMemberUp) checkProgressArangoSync(ctx context.Context) bool { c, err := a.actionCtx.GetMembersState().GetMemberSyncClient(a.action.MemberID) if err != nil { a.log.Err(err).Debug("Failed to create arangosync client") - return false, false, nil + return false } // When replication is in initial-sync state, then it can take a long time to be in running state. // This is the reason why Health of ArangoSync can not be checked here. if _, err := c.Version(ctx); err != nil { a.log.Err(err).Debug("Member is not ready yet") - return false, false, nil + return false } - return true, false, nil + return true } func (a actionWaitForMemberUp) getServerStatus(ctx context.Context) (client.ServerStatus, error) { diff --git a/pkg/deployment/reconcile/plan_builder_test.go b/pkg/deployment/reconcile/plan_builder_test.go index 7adb522c8..9d7fbad83 100644 --- a/pkg/deployment/reconcile/plan_builder_test.go +++ b/pkg/deployment/reconcile/plan_builder_test.go @@ -1,7 +1,7 @@ // // DISCLAIMER // -// Copyright 2016-2024 ArangoDB GmbH, Cologne, Germany +// Copyright 2016-2025 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. @@ -703,7 +703,7 @@ func (l *LastLogRecord) Run(e *zerolog.Event, level zerolog.Level, msg string) { for _, s := range panics.GetStack(0) { l.t.Logf("Stack: %s", s.String()) } - l.t.Logf(msg) + l.t.Log(msg) l.msg = msg } diff --git a/pkg/handlers/backup/finalizer.go b/pkg/handlers/backup/finalizer.go index 33855dc07..df5370133 100644 --- a/pkg/handlers/backup/finalizer.go +++ b/pkg/handlers/backup/finalizer.go @@ -1,7 +1,7 @@ // // DISCLAIMER // -// Copyright 2016-2022 ArangoDB GmbH, Cologne, Germany +// Copyright 2016-2025 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. @@ -34,7 +34,7 @@ import ( ) func (h *handler) finalize(backup *backupApi.ArangoBackup) error { - if backup.Finalizers == nil || len(backup.Finalizers) == 0 { + if len(backup.Finalizers) == 0 { return nil } diff --git a/pkg/handlers/backup/handler.go b/pkg/handlers/backup/handler.go index 1659167ec..78790de74 100644 --- a/pkg/handlers/backup/handler.go +++ b/pkg/handlers/backup/handler.go @@ -1,7 +1,7 @@ // // DISCLAIMER // -// Copyright 2016-2024 ArangoDB GmbH, Cologne, Germany +// Copyright 2016-2025 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. @@ -289,7 +289,7 @@ func (h *handler) Handle(_ context.Context, item operation.Item) error { defer lock.Unlock() // Add owner reference - if b.OwnerReferences == nil || len(b.OwnerReferences) == 0 { + if len(b.OwnerReferences) == 0 { deployment, err := h.client.DatabaseV1().ArangoDeployments(b.Namespace).Get(context.Background(), b.Spec.Deployment.Name, meta.GetOptions{}) if err == nil { b.OwnerReferences = []meta.OwnerReference{ diff --git a/pkg/handlers/policy/handler.go b/pkg/handlers/policy/handler.go index 94c669faa..06af36a14 100644 --- a/pkg/handlers/policy/handler.go +++ b/pkg/handlers/policy/handler.go @@ -1,7 +1,7 @@ // // DISCLAIMER // -// Copyright 2016-2024 ArangoDB GmbH, Cologne, Germany +// Copyright 2016-2025 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. @@ -142,9 +142,7 @@ func (h *handler) processBackupPolicy(policy *backupApi.ArangoBackupPolicy) back // Schedule new deployments listOptions := meta.ListOptions{} if policy.Spec.DeploymentSelector != nil && - (policy.Spec.DeploymentSelector.MatchLabels != nil && - len(policy.Spec.DeploymentSelector.MatchLabels) > 0 || - policy.Spec.DeploymentSelector.MatchExpressions != nil) { + (len(policy.Spec.DeploymentSelector.MatchLabels) > 0 || policy.Spec.DeploymentSelector.MatchExpressions != nil) { listOptions.LabelSelector = meta.FormatLabelSelector(policy.Spec.DeploymentSelector) } diff --git a/pkg/util/k8sutil/helm/client_test.go b/pkg/util/k8sutil/helm/client_test.go index 65103c8e8..144572eca 100644 --- a/pkg/util/k8sutil/helm/client_test.go +++ b/pkg/util/k8sutil/helm/client_test.go @@ -1,7 +1,7 @@ // // DISCLAIMER // -// Copyright 2024 ArangoDB GmbH, Cologne, Germany +// Copyright 2024-2025 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. @@ -120,7 +120,7 @@ func Test_Connection(t *testing.T) { require.NoError(t, mans[0].Object.Unmarshal(&d)) - t.Logf(string(d.GetUID())) + t.Log(string(d.GetUID())) }) t.Run("Test", func(t *testing.T) {