From 8b6395a647ee3147de256fcabcdfbc5fe638b189 Mon Sep 17 00:00:00 2001 From: Adam Janikowski <12255597+ajanikow@users.noreply.github.com> Date: Thu, 20 Jul 2023 04:49:34 +0200 Subject: [PATCH] [Feature] Generate docs from Objects (#1358) --- docs/api/ArangoDeployment.V1.md | 3675 +++++++++++++++++ internal/docs_test.go | 447 ++ .../deployment/v1/deployment_metrics_spec.go | 5 +- pkg/apis/deployment/v1/deployment_spec.go | 3 + pkg/apis/deployment/v1/lifecycle_spec.go | 5 +- pkg/apis/deployment/v1/member_status.go | 4 +- .../v1/server_group_ephemeral_volumes.go | 5 +- .../v1/server_group_init_containers.go | 4 +- .../v1/server_group_security_context_spec.go | 7 + pkg/apis/deployment/v1/server_group_spec.go | 16 + pkg/apis/deployment/v1/server_group_volume.go | 12 +- .../deployment/v1/server_id_group_spec.go | 12 +- pkg/apis/deployment/v1/timeouts.go | 7 +- .../v2alpha1/deployment_metrics_spec.go | 5 +- .../deployment/v2alpha1/deployment_spec.go | 3 + .../deployment/v2alpha1/lifecycle_spec.go | 5 +- pkg/apis/deployment/v2alpha1/member_status.go | 4 +- .../server_group_ephemeral_volumes.go | 5 +- .../v2alpha1/server_group_init_containers.go | 4 +- .../server_group_security_context_spec.go | 7 + .../deployment/v2alpha1/server_group_spec.go | 16 + .../v2alpha1/server_group_volume.go | 12 +- .../v2alpha1/server_id_group_spec.go | 12 +- pkg/apis/deployment/v2alpha1/timeouts.go | 7 +- pkg/deployment/pod/security.go | 2 +- 25 files changed, 4267 insertions(+), 17 deletions(-) create mode 100644 docs/api/ArangoDeployment.V1.md create mode 100644 internal/docs_test.go diff --git a/docs/api/ArangoDeployment.V1.md b/docs/api/ArangoDeployment.V1.md new file mode 100644 index 000000000..8d5927299 --- /dev/null +++ b/docs/api/ArangoDeployment.V1.md @@ -0,0 +1,3675 @@ +# API Reference for ArangoDeployment V1 + +## Spec + +### .spec.agents.affinity: core.PodAffinity + +Affinity specified additional affinity settings in ArangoDB Pod definitions + +Links: +* [Documentation of core.PodAffinity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#podaffinity-v1-core) + +Code Reference: [server_group_spec.go:134](/pkg/apis/deployment/v1/server_group_spec.go#L134) + +### .spec.agents.allowMemberRecreation: bool + +AllowMemberRecreation allows to recreate member. Value is used only for Coordinator and DBServer with default to True, for all other groups set to false. + +Code Reference: [server_group_spec.go:171](/pkg/apis/deployment/v1/server_group_spec.go#L171) + +### .spec.agents.annotations: map[string]string + +Annotations specified the annotations added to Pods in this group. + +Code Reference: [server_group_spec.go:98](/pkg/apis/deployment/v1/server_group_spec.go#L98) + +### .spec.agents.annotationsIgnoreList: []string + +AnnotationsIgnoreList list regexp or plain definitions which annotations should be ignored + +Code Reference: [server_group_spec.go:100](/pkg/apis/deployment/v1/server_group_spec.go#L100) + +### .spec.agents.annotationsMode: string + +AnnotationsMode Define annotations mode which should be use while overriding annotations + +Code Reference: [server_group_spec.go:102](/pkg/apis/deployment/v1/server_group_spec.go#L102) + +### .spec.agents.antiAffinity: core.PodAntiAffinity + +AntiAffinity specified additional antiAffinity settings in ArangoDB Pod definitions + +Links: +* [Documentation of core.Pod.AntiAffinity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#podantiaffinity-v1-core) + +Code Reference: [server_group_spec.go:130](/pkg/apis/deployment/v1/server_group_spec.go#L130) + +### .spec.agents.args: []string + +Args holds additional commandline arguments + +Code Reference: [server_group_spec.go:78](/pkg/apis/deployment/v1/server_group_spec.go#L78) + +### .spec.agents.count: int + +Count holds the requested number of servers + +Code Reference: [server_group_spec.go:72](/pkg/apis/deployment/v1/server_group_spec.go#L72) + +### .spec.agents.entrypoint: string + +Entrypoint overrides container executable + +Code Reference: [server_group_spec.go:80](/pkg/apis/deployment/v1/server_group_spec.go#L80) + +### .spec.agents.envs\[int\].name: string + +Code Reference: [server_group_env_var.go:26](/pkg/apis/deployment/v1/server_group_env_var.go#L26) + +### .spec.agents.envs\[int\].value: string + +Code Reference: [server_group_env_var.go:27](/pkg/apis/deployment/v1/server_group_env_var.go#L27) + +### .spec.agents.ephemeralVolumes.apps.size: resource.Quantity + +Size define size of the ephemeral volume + +Links: +* [Documentation of resource.Quantity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#quantity-resource-core) + +Code Reference: [server_group_ephemeral_volumes.go:64](/pkg/apis/deployment/v1/server_group_ephemeral_volumes.go#L64) + +### .spec.agents.ephemeralVolumes.temp.size: resource.Quantity + +Size define size of the ephemeral volume + +Links: +* [Documentation of resource.Quantity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#quantity-resource-core) + +Code Reference: [server_group_ephemeral_volumes.go:64](/pkg/apis/deployment/v1/server_group_ephemeral_volumes.go#L64) + +### .spec.agents.exporterPort: uint16 + +ExporterPort define Port used by exporter + +Code Reference: [server_group_spec.go:182](/pkg/apis/deployment/v1/server_group_spec.go#L182) + +### .spec.agents.extendedRotationCheck: bool + +ExtendedRotationCheck extend checks for rotation + +Code Reference: [server_group_spec.go:157](/pkg/apis/deployment/v1/server_group_spec.go#L157) + +### .spec.agents.externalPortEnabled: bool + +ExternalPortEnabled if external port should be enabled. If is set to false, ports needs to be exposed via sidecar. Only for ArangoD members + +Code Reference: [server_group_spec.go:169](/pkg/apis/deployment/v1/server_group_spec.go#L169) + +### .spec.agents.indexMethod: string + +IndexMethod define group Indexing method + +Code Reference: [server_group_spec.go:175](/pkg/apis/deployment/v1/server_group_spec.go#L175) + +### .spec.agents.initContainers.containers: []core.Container + +Containers contains list of containers + +Links: +* [Documentation of core.Container](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#container-v1-core) + +Code Reference: [server_group_init_containers.go:91](/pkg/apis/deployment/v1/server_group_init_containers.go#L91) + +### .spec.agents.initContainers.mode: string + +Mode keep container replace mode + +Code Reference: [server_group_init_containers.go:94](/pkg/apis/deployment/v1/server_group_init_containers.go#L94) + +### .spec.agents.internalPort: int + +InternalPort define port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members + +Code Reference: [server_group_spec.go:165](/pkg/apis/deployment/v1/server_group_spec.go#L165) + +### .spec.agents.internalPortProtocol: string + +InternalPortProtocol define protocol of port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members + +Code Reference: [server_group_spec.go:167](/pkg/apis/deployment/v1/server_group_spec.go#L167) + +### .spec.agents.labels: map[string]string + +Labels specified the labels added to Pods in this group. + +Code Reference: [server_group_spec.go:104](/pkg/apis/deployment/v1/server_group_spec.go#L104) + +### .spec.agents.labelsIgnoreList: []string + +LabelsIgnoreList list regexp or plain definitions which labels should be ignored + +Code Reference: [server_group_spec.go:106](/pkg/apis/deployment/v1/server_group_spec.go#L106) + +### .spec.agents.labelsMode: string + +LabelsMode Define labels mode which should be use while overriding labels + +Code Reference: [server_group_spec.go:108](/pkg/apis/deployment/v1/server_group_spec.go#L108) + +### .spec.agents.maxCount: int + +MaxCount specifies a upper limit for count + +Code Reference: [server_group_spec.go:76](/pkg/apis/deployment/v1/server_group_spec.go#L76) + +### .spec.agents.minCount: int + +MinCount specifies a lower limit for count + +Code Reference: [server_group_spec.go:74](/pkg/apis/deployment/v1/server_group_spec.go#L74) + +### .spec.agents.nodeAffinity: core.NodeAffinity + +NodeAffinity specified additional nodeAffinity settings in ArangoDB Pod definitions + +Links: +* [Documentation of code.NodeAffinity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#nodeaffinity-v1-core) + +Code Reference: [server_group_spec.go:138](/pkg/apis/deployment/v1/server_group_spec.go#L138) + +### .spec.agents.nodeSelector: map[string]string + +NodeSelector speficies a set of selectors for nodes + +Code Reference: [server_group_spec.go:114](/pkg/apis/deployment/v1/server_group_spec.go#L114) + +### .spec.agents.overrideDetectedNumberOfCores: bool + +OverrideDetectedNumberOfCores determines if number of cores should be overrided based on values in resources. + +Code Reference: [server_group_spec.go:92](/pkg/apis/deployment/v1/server_group_spec.go#L92) + +### .spec.agents.overrideDetectedTotalMemory: bool + +OverrideDetectedTotalMemory determines if memory should be overrided based on values in resources. + +Code Reference: [server_group_spec.go:90](/pkg/apis/deployment/v1/server_group_spec.go#L90) + +### .spec.agents.podModes.network: string + +Code Reference: [server_group_spec_pod_modes.go:31](/pkg/apis/deployment/v1/server_group_spec_pod_modes.go#L31) + +### .spec.agents.podModes.pid: string + +Code Reference: [server_group_spec_pod_modes.go:32](/pkg/apis/deployment/v1/server_group_spec_pod_modes.go#L32) + +### .spec.agents.port: uint16 + +Port define Port used by member + +Code Reference: [server_group_spec.go:180](/pkg/apis/deployment/v1/server_group_spec.go#L180) + +### .spec.agents.priorityClassName: string + +PriorityClassName specifies a priority class name + +Code Reference: [server_group_spec.go:118](/pkg/apis/deployment/v1/server_group_spec.go#L118) + +### .spec.agents.probes.livenessProbeDisabled: bool + +LivenessProbeDisabled if true livenessProbes are disabled + +Code Reference: [server_group_spec.go:188](/pkg/apis/deployment/v1/server_group_spec.go#L188) + +### .spec.agents.probes.livenessProbeSpec.failureThreshold: int32 + +Code Reference: [server_group_spec.go:222](/pkg/apis/deployment/v1/server_group_spec.go#L222) + +### .spec.agents.probes.livenessProbeSpec.initialDelaySeconds: int32 + +Code Reference: [server_group_spec.go:218](/pkg/apis/deployment/v1/server_group_spec.go#L218) + +### .spec.agents.probes.livenessProbeSpec.periodSeconds: int32 + +Code Reference: [server_group_spec.go:219](/pkg/apis/deployment/v1/server_group_spec.go#L219) + +### .spec.agents.probes.livenessProbeSpec.successThreshold: int32 + +Code Reference: [server_group_spec.go:221](/pkg/apis/deployment/v1/server_group_spec.go#L221) + +### .spec.agents.probes.livenessProbeSpec.timeoutSeconds: int32 + +Code Reference: [server_group_spec.go:220](/pkg/apis/deployment/v1/server_group_spec.go#L220) + +### .spec.agents.probes.ReadinessProbeDisabled: bool + +OldReadinessProbeDisabled if true readinessProbes are disabled + +Deprecated: This field is deprecated, keept only for backward compatibility. + +Code Reference: [server_group_spec.go:195](/pkg/apis/deployment/v1/server_group_spec.go#L195) + +### .spec.agents.probes.readinessProbeDisabled: bool + +ReadinessProbeDisabled override flag for probe disabled in good manner (lowercase) with backward compatibility + +Code Reference: [server_group_spec.go:197](/pkg/apis/deployment/v1/server_group_spec.go#L197) + +### .spec.agents.probes.readinessProbeSpec.failureThreshold: int32 + +Code Reference: [server_group_spec.go:222](/pkg/apis/deployment/v1/server_group_spec.go#L222) + +### .spec.agents.probes.readinessProbeSpec.initialDelaySeconds: int32 + +Code Reference: [server_group_spec.go:218](/pkg/apis/deployment/v1/server_group_spec.go#L218) + +### .spec.agents.probes.readinessProbeSpec.periodSeconds: int32 + +Code Reference: [server_group_spec.go:219](/pkg/apis/deployment/v1/server_group_spec.go#L219) + +### .spec.agents.probes.readinessProbeSpec.successThreshold: int32 + +Code Reference: [server_group_spec.go:221](/pkg/apis/deployment/v1/server_group_spec.go#L221) + +### .spec.agents.probes.readinessProbeSpec.timeoutSeconds: int32 + +Code Reference: [server_group_spec.go:220](/pkg/apis/deployment/v1/server_group_spec.go#L220) + +### .spec.agents.probes.startupProbeDisabled: bool + +StartupProbeDisabled if true startupProbes are disabled + +Code Reference: [server_group_spec.go:202](/pkg/apis/deployment/v1/server_group_spec.go#L202) + +### .spec.agents.probes.startupProbeSpec.failureThreshold: int32 + +Code Reference: [server_group_spec.go:222](/pkg/apis/deployment/v1/server_group_spec.go#L222) + +### .spec.agents.probes.startupProbeSpec.initialDelaySeconds: int32 + +Code Reference: [server_group_spec.go:218](/pkg/apis/deployment/v1/server_group_spec.go#L218) + +### .spec.agents.probes.startupProbeSpec.periodSeconds: int32 + +Code Reference: [server_group_spec.go:219](/pkg/apis/deployment/v1/server_group_spec.go#L219) + +### .spec.agents.probes.startupProbeSpec.successThreshold: int32 + +Code Reference: [server_group_spec.go:221](/pkg/apis/deployment/v1/server_group_spec.go#L221) + +### .spec.agents.probes.startupProbeSpec.timeoutSeconds: int32 + +Code Reference: [server_group_spec.go:220](/pkg/apis/deployment/v1/server_group_spec.go#L220) + +### .spec.agents.pvcResizeMode: string + +VolumeResizeMode specified resize mode for pvc + +Code Reference: [server_group_spec.go:124](/pkg/apis/deployment/v1/server_group_spec.go#L124) + +### .spec.agents.resources: core.ResourceRequirements + +Resources holds resource requests & limits + +Links: +* [Documentation of core.ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#resourcerequirements-v1-core) + +Code Reference: [server_group_spec.go:88](/pkg/apis/deployment/v1/server_group_spec.go#L88) + +### .spec.agents.schedulerName: string + +SchedulerName define scheduler name used for group + +Code Reference: [server_group_spec.go:82](/pkg/apis/deployment/v1/server_group_spec.go#L82) + +### .spec.agents.securityContext.addCapabilities: []string + +AddCapabilities add new capabilities to containers + +Code Reference: [server_group_security_context_spec.go:42](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L42) + +### .spec.agents.securityContext.allowPrivilegeEscalation: bool + +Code Reference: [server_group_security_context_spec.go:44](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L44) + +### .spec.agents.securityContext.dropAllCapabilities: bool + +DropAllCapabilities specifies if capabilities should be dropped for this pod containers + +Deprecated: This field is added for backward compatibility. Will be removed in 1.1.0. + +Code Reference: [server_group_security_context_spec.go:40](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L40) + +### .spec.agents.securityContext.fsGroup: int64 + +Code Reference: [server_group_security_context_spec.go:52](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L52) + +### .spec.agents.securityContext.privileged: bool + +Code Reference: [server_group_security_context_spec.go:45](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L45) + +### .spec.agents.securityContext.readOnlyRootFilesystem: bool + +Code Reference: [server_group_security_context_spec.go:46](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L46) + +### .spec.agents.securityContext.runAsGroup: int64 + +Code Reference: [server_group_security_context_spec.go:49](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L49) + +### .spec.agents.securityContext.runAsNonRoot: bool + +Code Reference: [server_group_security_context_spec.go:47](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L47) + +### .spec.agents.securityContext.runAsUser: int64 + +Code Reference: [server_group_security_context_spec.go:48](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L48) + +### .spec.agents.securityContext.seccompProfile: core.SeccompProfile + +SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set. + +Links: +* [Documentation of core.SeccompProfile](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#seccompprofile-v1-core) + +Code Reference: [server_group_security_context_spec.go:57](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L57) + +### .spec.agents.securityContext.seLinuxOptions: core.SELinuxOptions + +SELinuxOptions are the labels to be applied to the container + +Links: +* [Documentation of core.SELinuxOptions](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#selinuxoptions-v1-core) + +Code Reference: [server_group_security_context_spec.go:62](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L62) + +### .spec.agents.securityContext.supplementalGroups: []int64 + +Code Reference: [server_group_security_context_spec.go:51](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L51) + +### .spec.agents.serviceAccountName: string + +ServiceAccountName specifies the name of the service account used for Pods in this group. + +Code Reference: [server_group_spec.go:112](/pkg/apis/deployment/v1/server_group_spec.go#L112) + +### .spec.agents.shutdownDelay: int + +ShutdownDelay define how long operator should delay finalizer removal after shutdown + +Code Reference: [server_group_spec.go:163](/pkg/apis/deployment/v1/server_group_spec.go#L163) + +### .spec.agents.shutdownMethod: string + +ShutdownMethod describe procedure of member shutdown taken by Operator + +Code Reference: [server_group_spec.go:161](/pkg/apis/deployment/v1/server_group_spec.go#L161) + +### .spec.agents.sidecarCoreNames: []string + +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. + +Code Reference: [server_group_spec.go:141](/pkg/apis/deployment/v1/server_group_spec.go#L141) + +### .spec.agents.sidecars: []core.Container + +Sidecars specifies a list of additional containers to be started + +Links: +* [Documentation of core.Container](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#container-v1-core) + +Code Reference: [server_group_spec.go:145](/pkg/apis/deployment/v1/server_group_spec.go#L145) + +### .spec.agents.storageClassName: string + +StorageClassName specifies the classname for storage of the servers. + +Code Reference: [server_group_spec.go:84](/pkg/apis/deployment/v1/server_group_spec.go#L84) + +### .spec.agents.terminationGracePeriodSeconds: int64 + +TerminationGracePeriodSeconds override default TerminationGracePeriodSeconds for pods - via silent rotation + +Code Reference: [server_group_spec.go:173](/pkg/apis/deployment/v1/server_group_spec.go#L173) + +### .spec.agents.tolerations: []core.Toleration + +Tolerations specifies the tolerations added to Pods in this group. + +Links: +* [Documentation of core.Toleration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#toleration-v1-core) + +Code Reference: [server_group_spec.go:96](/pkg/apis/deployment/v1/server_group_spec.go#L96) + +### .spec.agents.volumeAllowShrink: bool + +Deprecated: VolumeAllowShrink allows shrink the volume + +Code Reference: [server_group_spec.go:126](/pkg/apis/deployment/v1/server_group_spec.go#L126) + +### .spec.agents.volumeClaimTemplate: core.PersistentVolumeClaim + +VolumeClaimTemplate specifies a template for volume claims + +Links: +* [Documentation of core.PersistentVolumeClaim](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#persistentvolumeclaim-v1-core) + +Code Reference: [server_group_spec.go:122](/pkg/apis/deployment/v1/server_group_spec.go#L122) + +### .spec.agents.volumeMounts: []ServerGroupSpecVolumeMount + +VolumeMounts define list of volume mounts mounted into server container + +Links: +* [Documentation of ServerGroupSpecVolumeMount](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#volumemount-v1-core) + +Code Reference: [server_group_spec.go:153](/pkg/apis/deployment/v1/server_group_spec.go#L153) + +### .spec.agents.volumes\[int\].configMap: core.ConfigMapVolumeSource + +ConfigMap which should be mounted into pod + +Links: +* [Documentation of core.ConfigMapVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#configmapvolumesource-v1-core) + +Code Reference: [server_group_volume.go:138](/pkg/apis/deployment/v1/server_group_volume.go#L138) + +### .spec.agents.volumes\[int\].emptyDir: core.EmptyDirVolumeSource + +EmptyDir + +Links: +* [Documentation of core.EmptyDirVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#emptydirvolumesource-v1-core) + +Code Reference: [server_group_volume.go:143](/pkg/apis/deployment/v1/server_group_volume.go#L143) + +### .spec.agents.volumes\[int\].hostPath: core.HostPathVolumeSource + +HostPath + +Links: +* [Documentation of core.HostPathVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#hostpathvolumesource-v1-core) + +Code Reference: [server_group_volume.go:148](/pkg/apis/deployment/v1/server_group_volume.go#L148) + +### .spec.agents.volumes\[int\].name: string + +Name of volume + +Code Reference: [server_group_volume.go:128](/pkg/apis/deployment/v1/server_group_volume.go#L128) + +### .spec.agents.volumes\[int\].persistentVolumeClaim: core.PersistentVolumeClaimVolumeSource + +PersistentVolumeClaim + +Links: +* [Documentation of core.PersistentVolumeClaimVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#persistentvolumeclaimvolumesource-v1-core) + +Code Reference: [server_group_volume.go:153](/pkg/apis/deployment/v1/server_group_volume.go#L153) + +### .spec.agents.volumes\[int\].secret: core.SecretVolumeSource + +Secret which should be mounted into pod + +Links: +* [Documentation of core.SecretVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#secretvolumesource-v1-core) + +Code Reference: [server_group_volume.go:133](/pkg/apis/deployment/v1/server_group_volume.go#L133) + +### .spec.allowUnsafeUpgrade: bool + +AllowUnsafeUpgrade determines if upgrade on missing member or with not in sync shards is allowed + +Code Reference: [deployment_spec.go:148](/pkg/apis/deployment/v1/deployment_spec.go#L148) + +### .spec.annotations: map[string]string + +Annotations specified the annotations added to Pods in this group. + +Code Reference: [deployment_spec.go:131](/pkg/apis/deployment/v1/deployment_spec.go#L131) + +### .spec.annotationsIgnoreList: []string + +AnnotationsIgnoreList list regexp or plain definitions which annotations should be ignored + +Code Reference: [deployment_spec.go:133](/pkg/apis/deployment/v1/deployment_spec.go#L133) + +### .spec.annotationsMode: string + +AnnotationsMode Define annotations mode which should be use while overriding annotations + +Code Reference: [deployment_spec.go:135](/pkg/apis/deployment/v1/deployment_spec.go#L135) + +### .spec.architecture: []string + +Architecture definition of supported architectures + +Code Reference: [deployment_spec.go:196](/pkg/apis/deployment/v1/deployment_spec.go#L196) + +### .spec.auth.jwtSecretName: string + +Code Reference: [authentication_spec.go:31](/pkg/apis/deployment/v1/authentication_spec.go#L31) + +### .spec.bootstrap.passwordSecretNames: map[string]string + +PasswordSecretNames contains a map of username to password-secret-name + +Code Reference: [bootstrap.go:53](/pkg/apis/deployment/v1/bootstrap.go#L53) + +### .spec.chaos.enabled: bool + +Enabled switches the chaos monkey for a deployment on or off. + +Code Reference: [chaos_spec.go:33](/pkg/apis/deployment/v1/chaos_spec.go#L33) + +### .spec.chaos.interval: int64 + +Interval is the time between events + +Code Reference: [chaos_spec.go:35](/pkg/apis/deployment/v1/chaos_spec.go#L35) + +### .spec.chaos.kill-pod-probability: int + +KillPodProbability is the chance of a pod being killed during an event + +Code Reference: [chaos_spec.go:37](/pkg/apis/deployment/v1/chaos_spec.go#L37) + +### .spec.ClusterDomain: string + +ClusterDomain define domain used in the kubernetes cluster. + +Required only of domain is not set to default (cluster.local) + +Default Value: cluster.local + +Code Reference: [deployment_spec.go:184](/pkg/apis/deployment/v1/deployment_spec.go#L184) + +### .spec.communicationMethod: string + +CommunicationMethod define communication method used in deployment + +Code Reference: [deployment_spec.go:187](/pkg/apis/deployment/v1/deployment_spec.go#L187) + +### .spec.coordinators.affinity: core.PodAffinity + +Affinity specified additional affinity settings in ArangoDB Pod definitions + +Links: +* [Documentation of core.PodAffinity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#podaffinity-v1-core) + +Code Reference: [server_group_spec.go:134](/pkg/apis/deployment/v1/server_group_spec.go#L134) + +### .spec.coordinators.allowMemberRecreation: bool + +AllowMemberRecreation allows to recreate member. Value is used only for Coordinator and DBServer with default to True, for all other groups set to false. + +Code Reference: [server_group_spec.go:171](/pkg/apis/deployment/v1/server_group_spec.go#L171) + +### .spec.coordinators.annotations: map[string]string + +Annotations specified the annotations added to Pods in this group. + +Code Reference: [server_group_spec.go:98](/pkg/apis/deployment/v1/server_group_spec.go#L98) + +### .spec.coordinators.annotationsIgnoreList: []string + +AnnotationsIgnoreList list regexp or plain definitions which annotations should be ignored + +Code Reference: [server_group_spec.go:100](/pkg/apis/deployment/v1/server_group_spec.go#L100) + +### .spec.coordinators.annotationsMode: string + +AnnotationsMode Define annotations mode which should be use while overriding annotations + +Code Reference: [server_group_spec.go:102](/pkg/apis/deployment/v1/server_group_spec.go#L102) + +### .spec.coordinators.antiAffinity: core.PodAntiAffinity + +AntiAffinity specified additional antiAffinity settings in ArangoDB Pod definitions + +Links: +* [Documentation of core.Pod.AntiAffinity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#podantiaffinity-v1-core) + +Code Reference: [server_group_spec.go:130](/pkg/apis/deployment/v1/server_group_spec.go#L130) + +### .spec.coordinators.args: []string + +Args holds additional commandline arguments + +Code Reference: [server_group_spec.go:78](/pkg/apis/deployment/v1/server_group_spec.go#L78) + +### .spec.coordinators.count: int + +Count holds the requested number of servers + +Code Reference: [server_group_spec.go:72](/pkg/apis/deployment/v1/server_group_spec.go#L72) + +### .spec.coordinators.entrypoint: string + +Entrypoint overrides container executable + +Code Reference: [server_group_spec.go:80](/pkg/apis/deployment/v1/server_group_spec.go#L80) + +### .spec.coordinators.envs\[int\].name: string + +Code Reference: [server_group_env_var.go:26](/pkg/apis/deployment/v1/server_group_env_var.go#L26) + +### .spec.coordinators.envs\[int\].value: string + +Code Reference: [server_group_env_var.go:27](/pkg/apis/deployment/v1/server_group_env_var.go#L27) + +### .spec.coordinators.ephemeralVolumes.apps.size: resource.Quantity + +Size define size of the ephemeral volume + +Links: +* [Documentation of resource.Quantity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#quantity-resource-core) + +Code Reference: [server_group_ephemeral_volumes.go:64](/pkg/apis/deployment/v1/server_group_ephemeral_volumes.go#L64) + +### .spec.coordinators.ephemeralVolumes.temp.size: resource.Quantity + +Size define size of the ephemeral volume + +Links: +* [Documentation of resource.Quantity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#quantity-resource-core) + +Code Reference: [server_group_ephemeral_volumes.go:64](/pkg/apis/deployment/v1/server_group_ephemeral_volumes.go#L64) + +### .spec.coordinators.exporterPort: uint16 + +ExporterPort define Port used by exporter + +Code Reference: [server_group_spec.go:182](/pkg/apis/deployment/v1/server_group_spec.go#L182) + +### .spec.coordinators.extendedRotationCheck: bool + +ExtendedRotationCheck extend checks for rotation + +Code Reference: [server_group_spec.go:157](/pkg/apis/deployment/v1/server_group_spec.go#L157) + +### .spec.coordinators.externalPortEnabled: bool + +ExternalPortEnabled if external port should be enabled. If is set to false, ports needs to be exposed via sidecar. Only for ArangoD members + +Code Reference: [server_group_spec.go:169](/pkg/apis/deployment/v1/server_group_spec.go#L169) + +### .spec.coordinators.indexMethod: string + +IndexMethod define group Indexing method + +Code Reference: [server_group_spec.go:175](/pkg/apis/deployment/v1/server_group_spec.go#L175) + +### .spec.coordinators.initContainers.containers: []core.Container + +Containers contains list of containers + +Links: +* [Documentation of core.Container](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#container-v1-core) + +Code Reference: [server_group_init_containers.go:91](/pkg/apis/deployment/v1/server_group_init_containers.go#L91) + +### .spec.coordinators.initContainers.mode: string + +Mode keep container replace mode + +Code Reference: [server_group_init_containers.go:94](/pkg/apis/deployment/v1/server_group_init_containers.go#L94) + +### .spec.coordinators.internalPort: int + +InternalPort define port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members + +Code Reference: [server_group_spec.go:165](/pkg/apis/deployment/v1/server_group_spec.go#L165) + +### .spec.coordinators.internalPortProtocol: string + +InternalPortProtocol define protocol of port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members + +Code Reference: [server_group_spec.go:167](/pkg/apis/deployment/v1/server_group_spec.go#L167) + +### .spec.coordinators.labels: map[string]string + +Labels specified the labels added to Pods in this group. + +Code Reference: [server_group_spec.go:104](/pkg/apis/deployment/v1/server_group_spec.go#L104) + +### .spec.coordinators.labelsIgnoreList: []string + +LabelsIgnoreList list regexp or plain definitions which labels should be ignored + +Code Reference: [server_group_spec.go:106](/pkg/apis/deployment/v1/server_group_spec.go#L106) + +### .spec.coordinators.labelsMode: string + +LabelsMode Define labels mode which should be use while overriding labels + +Code Reference: [server_group_spec.go:108](/pkg/apis/deployment/v1/server_group_spec.go#L108) + +### .spec.coordinators.maxCount: int + +MaxCount specifies a upper limit for count + +Code Reference: [server_group_spec.go:76](/pkg/apis/deployment/v1/server_group_spec.go#L76) + +### .spec.coordinators.minCount: int + +MinCount specifies a lower limit for count + +Code Reference: [server_group_spec.go:74](/pkg/apis/deployment/v1/server_group_spec.go#L74) + +### .spec.coordinators.nodeAffinity: core.NodeAffinity + +NodeAffinity specified additional nodeAffinity settings in ArangoDB Pod definitions + +Links: +* [Documentation of code.NodeAffinity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#nodeaffinity-v1-core) + +Code Reference: [server_group_spec.go:138](/pkg/apis/deployment/v1/server_group_spec.go#L138) + +### .spec.coordinators.nodeSelector: map[string]string + +NodeSelector speficies a set of selectors for nodes + +Code Reference: [server_group_spec.go:114](/pkg/apis/deployment/v1/server_group_spec.go#L114) + +### .spec.coordinators.overrideDetectedNumberOfCores: bool + +OverrideDetectedNumberOfCores determines if number of cores should be overrided based on values in resources. + +Code Reference: [server_group_spec.go:92](/pkg/apis/deployment/v1/server_group_spec.go#L92) + +### .spec.coordinators.overrideDetectedTotalMemory: bool + +OverrideDetectedTotalMemory determines if memory should be overrided based on values in resources. + +Code Reference: [server_group_spec.go:90](/pkg/apis/deployment/v1/server_group_spec.go#L90) + +### .spec.coordinators.podModes.network: string + +Code Reference: [server_group_spec_pod_modes.go:31](/pkg/apis/deployment/v1/server_group_spec_pod_modes.go#L31) + +### .spec.coordinators.podModes.pid: string + +Code Reference: [server_group_spec_pod_modes.go:32](/pkg/apis/deployment/v1/server_group_spec_pod_modes.go#L32) + +### .spec.coordinators.port: uint16 + +Port define Port used by member + +Code Reference: [server_group_spec.go:180](/pkg/apis/deployment/v1/server_group_spec.go#L180) + +### .spec.coordinators.priorityClassName: string + +PriorityClassName specifies a priority class name + +Code Reference: [server_group_spec.go:118](/pkg/apis/deployment/v1/server_group_spec.go#L118) + +### .spec.coordinators.probes.livenessProbeDisabled: bool + +LivenessProbeDisabled if true livenessProbes are disabled + +Code Reference: [server_group_spec.go:188](/pkg/apis/deployment/v1/server_group_spec.go#L188) + +### .spec.coordinators.probes.livenessProbeSpec.failureThreshold: int32 + +Code Reference: [server_group_spec.go:222](/pkg/apis/deployment/v1/server_group_spec.go#L222) + +### .spec.coordinators.probes.livenessProbeSpec.initialDelaySeconds: int32 + +Code Reference: [server_group_spec.go:218](/pkg/apis/deployment/v1/server_group_spec.go#L218) + +### .spec.coordinators.probes.livenessProbeSpec.periodSeconds: int32 + +Code Reference: [server_group_spec.go:219](/pkg/apis/deployment/v1/server_group_spec.go#L219) + +### .spec.coordinators.probes.livenessProbeSpec.successThreshold: int32 + +Code Reference: [server_group_spec.go:221](/pkg/apis/deployment/v1/server_group_spec.go#L221) + +### .spec.coordinators.probes.livenessProbeSpec.timeoutSeconds: int32 + +Code Reference: [server_group_spec.go:220](/pkg/apis/deployment/v1/server_group_spec.go#L220) + +### .spec.coordinators.probes.ReadinessProbeDisabled: bool + +OldReadinessProbeDisabled if true readinessProbes are disabled + +Deprecated: This field is deprecated, keept only for backward compatibility. + +Code Reference: [server_group_spec.go:195](/pkg/apis/deployment/v1/server_group_spec.go#L195) + +### .spec.coordinators.probes.readinessProbeDisabled: bool + +ReadinessProbeDisabled override flag for probe disabled in good manner (lowercase) with backward compatibility + +Code Reference: [server_group_spec.go:197](/pkg/apis/deployment/v1/server_group_spec.go#L197) + +### .spec.coordinators.probes.readinessProbeSpec.failureThreshold: int32 + +Code Reference: [server_group_spec.go:222](/pkg/apis/deployment/v1/server_group_spec.go#L222) + +### .spec.coordinators.probes.readinessProbeSpec.initialDelaySeconds: int32 + +Code Reference: [server_group_spec.go:218](/pkg/apis/deployment/v1/server_group_spec.go#L218) + +### .spec.coordinators.probes.readinessProbeSpec.periodSeconds: int32 + +Code Reference: [server_group_spec.go:219](/pkg/apis/deployment/v1/server_group_spec.go#L219) + +### .spec.coordinators.probes.readinessProbeSpec.successThreshold: int32 + +Code Reference: [server_group_spec.go:221](/pkg/apis/deployment/v1/server_group_spec.go#L221) + +### .spec.coordinators.probes.readinessProbeSpec.timeoutSeconds: int32 + +Code Reference: [server_group_spec.go:220](/pkg/apis/deployment/v1/server_group_spec.go#L220) + +### .spec.coordinators.probes.startupProbeDisabled: bool + +StartupProbeDisabled if true startupProbes are disabled + +Code Reference: [server_group_spec.go:202](/pkg/apis/deployment/v1/server_group_spec.go#L202) + +### .spec.coordinators.probes.startupProbeSpec.failureThreshold: int32 + +Code Reference: [server_group_spec.go:222](/pkg/apis/deployment/v1/server_group_spec.go#L222) + +### .spec.coordinators.probes.startupProbeSpec.initialDelaySeconds: int32 + +Code Reference: [server_group_spec.go:218](/pkg/apis/deployment/v1/server_group_spec.go#L218) + +### .spec.coordinators.probes.startupProbeSpec.periodSeconds: int32 + +Code Reference: [server_group_spec.go:219](/pkg/apis/deployment/v1/server_group_spec.go#L219) + +### .spec.coordinators.probes.startupProbeSpec.successThreshold: int32 + +Code Reference: [server_group_spec.go:221](/pkg/apis/deployment/v1/server_group_spec.go#L221) + +### .spec.coordinators.probes.startupProbeSpec.timeoutSeconds: int32 + +Code Reference: [server_group_spec.go:220](/pkg/apis/deployment/v1/server_group_spec.go#L220) + +### .spec.coordinators.pvcResizeMode: string + +VolumeResizeMode specified resize mode for pvc + +Code Reference: [server_group_spec.go:124](/pkg/apis/deployment/v1/server_group_spec.go#L124) + +### .spec.coordinators.resources: core.ResourceRequirements + +Resources holds resource requests & limits + +Links: +* [Documentation of core.ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#resourcerequirements-v1-core) + +Code Reference: [server_group_spec.go:88](/pkg/apis/deployment/v1/server_group_spec.go#L88) + +### .spec.coordinators.schedulerName: string + +SchedulerName define scheduler name used for group + +Code Reference: [server_group_spec.go:82](/pkg/apis/deployment/v1/server_group_spec.go#L82) + +### .spec.coordinators.securityContext.addCapabilities: []string + +AddCapabilities add new capabilities to containers + +Code Reference: [server_group_security_context_spec.go:42](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L42) + +### .spec.coordinators.securityContext.allowPrivilegeEscalation: bool + +Code Reference: [server_group_security_context_spec.go:44](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L44) + +### .spec.coordinators.securityContext.dropAllCapabilities: bool + +DropAllCapabilities specifies if capabilities should be dropped for this pod containers + +Deprecated: This field is added for backward compatibility. Will be removed in 1.1.0. + +Code Reference: [server_group_security_context_spec.go:40](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L40) + +### .spec.coordinators.securityContext.fsGroup: int64 + +Code Reference: [server_group_security_context_spec.go:52](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L52) + +### .spec.coordinators.securityContext.privileged: bool + +Code Reference: [server_group_security_context_spec.go:45](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L45) + +### .spec.coordinators.securityContext.readOnlyRootFilesystem: bool + +Code Reference: [server_group_security_context_spec.go:46](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L46) + +### .spec.coordinators.securityContext.runAsGroup: int64 + +Code Reference: [server_group_security_context_spec.go:49](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L49) + +### .spec.coordinators.securityContext.runAsNonRoot: bool + +Code Reference: [server_group_security_context_spec.go:47](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L47) + +### .spec.coordinators.securityContext.runAsUser: int64 + +Code Reference: [server_group_security_context_spec.go:48](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L48) + +### .spec.coordinators.securityContext.seccompProfile: core.SeccompProfile + +SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set. + +Links: +* [Documentation of core.SeccompProfile](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#seccompprofile-v1-core) + +Code Reference: [server_group_security_context_spec.go:57](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L57) + +### .spec.coordinators.securityContext.seLinuxOptions: core.SELinuxOptions + +SELinuxOptions are the labels to be applied to the container + +Links: +* [Documentation of core.SELinuxOptions](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#selinuxoptions-v1-core) + +Code Reference: [server_group_security_context_spec.go:62](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L62) + +### .spec.coordinators.securityContext.supplementalGroups: []int64 + +Code Reference: [server_group_security_context_spec.go:51](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L51) + +### .spec.coordinators.serviceAccountName: string + +ServiceAccountName specifies the name of the service account used for Pods in this group. + +Code Reference: [server_group_spec.go:112](/pkg/apis/deployment/v1/server_group_spec.go#L112) + +### .spec.coordinators.shutdownDelay: int + +ShutdownDelay define how long operator should delay finalizer removal after shutdown + +Code Reference: [server_group_spec.go:163](/pkg/apis/deployment/v1/server_group_spec.go#L163) + +### .spec.coordinators.shutdownMethod: string + +ShutdownMethod describe procedure of member shutdown taken by Operator + +Code Reference: [server_group_spec.go:161](/pkg/apis/deployment/v1/server_group_spec.go#L161) + +### .spec.coordinators.sidecarCoreNames: []string + +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. + +Code Reference: [server_group_spec.go:141](/pkg/apis/deployment/v1/server_group_spec.go#L141) + +### .spec.coordinators.sidecars: []core.Container + +Sidecars specifies a list of additional containers to be started + +Links: +* [Documentation of core.Container](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#container-v1-core) + +Code Reference: [server_group_spec.go:145](/pkg/apis/deployment/v1/server_group_spec.go#L145) + +### .spec.coordinators.storageClassName: string + +StorageClassName specifies the classname for storage of the servers. + +Code Reference: [server_group_spec.go:84](/pkg/apis/deployment/v1/server_group_spec.go#L84) + +### .spec.coordinators.terminationGracePeriodSeconds: int64 + +TerminationGracePeriodSeconds override default TerminationGracePeriodSeconds for pods - via silent rotation + +Code Reference: [server_group_spec.go:173](/pkg/apis/deployment/v1/server_group_spec.go#L173) + +### .spec.coordinators.tolerations: []core.Toleration + +Tolerations specifies the tolerations added to Pods in this group. + +Links: +* [Documentation of core.Toleration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#toleration-v1-core) + +Code Reference: [server_group_spec.go:96](/pkg/apis/deployment/v1/server_group_spec.go#L96) + +### .spec.coordinators.volumeAllowShrink: bool + +Deprecated: VolumeAllowShrink allows shrink the volume + +Code Reference: [server_group_spec.go:126](/pkg/apis/deployment/v1/server_group_spec.go#L126) + +### .spec.coordinators.volumeClaimTemplate: core.PersistentVolumeClaim + +VolumeClaimTemplate specifies a template for volume claims + +Links: +* [Documentation of core.PersistentVolumeClaim](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#persistentvolumeclaim-v1-core) + +Code Reference: [server_group_spec.go:122](/pkg/apis/deployment/v1/server_group_spec.go#L122) + +### .spec.coordinators.volumeMounts: []ServerGroupSpecVolumeMount + +VolumeMounts define list of volume mounts mounted into server container + +Links: +* [Documentation of ServerGroupSpecVolumeMount](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#volumemount-v1-core) + +Code Reference: [server_group_spec.go:153](/pkg/apis/deployment/v1/server_group_spec.go#L153) + +### .spec.coordinators.volumes\[int\].configMap: core.ConfigMapVolumeSource + +ConfigMap which should be mounted into pod + +Links: +* [Documentation of core.ConfigMapVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#configmapvolumesource-v1-core) + +Code Reference: [server_group_volume.go:138](/pkg/apis/deployment/v1/server_group_volume.go#L138) + +### .spec.coordinators.volumes\[int\].emptyDir: core.EmptyDirVolumeSource + +EmptyDir + +Links: +* [Documentation of core.EmptyDirVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#emptydirvolumesource-v1-core) + +Code Reference: [server_group_volume.go:143](/pkg/apis/deployment/v1/server_group_volume.go#L143) + +### .spec.coordinators.volumes\[int\].hostPath: core.HostPathVolumeSource + +HostPath + +Links: +* [Documentation of core.HostPathVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#hostpathvolumesource-v1-core) + +Code Reference: [server_group_volume.go:148](/pkg/apis/deployment/v1/server_group_volume.go#L148) + +### .spec.coordinators.volumes\[int\].name: string + +Name of volume + +Code Reference: [server_group_volume.go:128](/pkg/apis/deployment/v1/server_group_volume.go#L128) + +### .spec.coordinators.volumes\[int\].persistentVolumeClaim: core.PersistentVolumeClaimVolumeSource + +PersistentVolumeClaim + +Links: +* [Documentation of core.PersistentVolumeClaimVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#persistentvolumeclaimvolumesource-v1-core) + +Code Reference: [server_group_volume.go:153](/pkg/apis/deployment/v1/server_group_volume.go#L153) + +### .spec.coordinators.volumes\[int\].secret: core.SecretVolumeSource + +Secret which should be mounted into pod + +Links: +* [Documentation of core.SecretVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#secretvolumesource-v1-core) + +Code Reference: [server_group_volume.go:133](/pkg/apis/deployment/v1/server_group_volume.go#L133) + +### .spec.database.maintenance: bool + +Maintenance manage maintenance mode on Cluster side. Requires maintenance feature to be enabled + +Code Reference: [database_spec.go:25](/pkg/apis/deployment/v1/database_spec.go#L25) + +### .spec.dbservers.affinity: core.PodAffinity + +Affinity specified additional affinity settings in ArangoDB Pod definitions + +Links: +* [Documentation of core.PodAffinity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#podaffinity-v1-core) + +Code Reference: [server_group_spec.go:134](/pkg/apis/deployment/v1/server_group_spec.go#L134) + +### .spec.dbservers.allowMemberRecreation: bool + +AllowMemberRecreation allows to recreate member. Value is used only for Coordinator and DBServer with default to True, for all other groups set to false. + +Code Reference: [server_group_spec.go:171](/pkg/apis/deployment/v1/server_group_spec.go#L171) + +### .spec.dbservers.annotations: map[string]string + +Annotations specified the annotations added to Pods in this group. + +Code Reference: [server_group_spec.go:98](/pkg/apis/deployment/v1/server_group_spec.go#L98) + +### .spec.dbservers.annotationsIgnoreList: []string + +AnnotationsIgnoreList list regexp or plain definitions which annotations should be ignored + +Code Reference: [server_group_spec.go:100](/pkg/apis/deployment/v1/server_group_spec.go#L100) + +### .spec.dbservers.annotationsMode: string + +AnnotationsMode Define annotations mode which should be use while overriding annotations + +Code Reference: [server_group_spec.go:102](/pkg/apis/deployment/v1/server_group_spec.go#L102) + +### .spec.dbservers.antiAffinity: core.PodAntiAffinity + +AntiAffinity specified additional antiAffinity settings in ArangoDB Pod definitions + +Links: +* [Documentation of core.Pod.AntiAffinity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#podantiaffinity-v1-core) + +Code Reference: [server_group_spec.go:130](/pkg/apis/deployment/v1/server_group_spec.go#L130) + +### .spec.dbservers.args: []string + +Args holds additional commandline arguments + +Code Reference: [server_group_spec.go:78](/pkg/apis/deployment/v1/server_group_spec.go#L78) + +### .spec.dbservers.count: int + +Count holds the requested number of servers + +Code Reference: [server_group_spec.go:72](/pkg/apis/deployment/v1/server_group_spec.go#L72) + +### .spec.dbservers.entrypoint: string + +Entrypoint overrides container executable + +Code Reference: [server_group_spec.go:80](/pkg/apis/deployment/v1/server_group_spec.go#L80) + +### .spec.dbservers.envs\[int\].name: string + +Code Reference: [server_group_env_var.go:26](/pkg/apis/deployment/v1/server_group_env_var.go#L26) + +### .spec.dbservers.envs\[int\].value: string + +Code Reference: [server_group_env_var.go:27](/pkg/apis/deployment/v1/server_group_env_var.go#L27) + +### .spec.dbservers.ephemeralVolumes.apps.size: resource.Quantity + +Size define size of the ephemeral volume + +Links: +* [Documentation of resource.Quantity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#quantity-resource-core) + +Code Reference: [server_group_ephemeral_volumes.go:64](/pkg/apis/deployment/v1/server_group_ephemeral_volumes.go#L64) + +### .spec.dbservers.ephemeralVolumes.temp.size: resource.Quantity + +Size define size of the ephemeral volume + +Links: +* [Documentation of resource.Quantity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#quantity-resource-core) + +Code Reference: [server_group_ephemeral_volumes.go:64](/pkg/apis/deployment/v1/server_group_ephemeral_volumes.go#L64) + +### .spec.dbservers.exporterPort: uint16 + +ExporterPort define Port used by exporter + +Code Reference: [server_group_spec.go:182](/pkg/apis/deployment/v1/server_group_spec.go#L182) + +### .spec.dbservers.extendedRotationCheck: bool + +ExtendedRotationCheck extend checks for rotation + +Code Reference: [server_group_spec.go:157](/pkg/apis/deployment/v1/server_group_spec.go#L157) + +### .spec.dbservers.externalPortEnabled: bool + +ExternalPortEnabled if external port should be enabled. If is set to false, ports needs to be exposed via sidecar. Only for ArangoD members + +Code Reference: [server_group_spec.go:169](/pkg/apis/deployment/v1/server_group_spec.go#L169) + +### .spec.dbservers.indexMethod: string + +IndexMethod define group Indexing method + +Code Reference: [server_group_spec.go:175](/pkg/apis/deployment/v1/server_group_spec.go#L175) + +### .spec.dbservers.initContainers.containers: []core.Container + +Containers contains list of containers + +Links: +* [Documentation of core.Container](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#container-v1-core) + +Code Reference: [server_group_init_containers.go:91](/pkg/apis/deployment/v1/server_group_init_containers.go#L91) + +### .spec.dbservers.initContainers.mode: string + +Mode keep container replace mode + +Code Reference: [server_group_init_containers.go:94](/pkg/apis/deployment/v1/server_group_init_containers.go#L94) + +### .spec.dbservers.internalPort: int + +InternalPort define port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members + +Code Reference: [server_group_spec.go:165](/pkg/apis/deployment/v1/server_group_spec.go#L165) + +### .spec.dbservers.internalPortProtocol: string + +InternalPortProtocol define protocol of port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members + +Code Reference: [server_group_spec.go:167](/pkg/apis/deployment/v1/server_group_spec.go#L167) + +### .spec.dbservers.labels: map[string]string + +Labels specified the labels added to Pods in this group. + +Code Reference: [server_group_spec.go:104](/pkg/apis/deployment/v1/server_group_spec.go#L104) + +### .spec.dbservers.labelsIgnoreList: []string + +LabelsIgnoreList list regexp or plain definitions which labels should be ignored + +Code Reference: [server_group_spec.go:106](/pkg/apis/deployment/v1/server_group_spec.go#L106) + +### .spec.dbservers.labelsMode: string + +LabelsMode Define labels mode which should be use while overriding labels + +Code Reference: [server_group_spec.go:108](/pkg/apis/deployment/v1/server_group_spec.go#L108) + +### .spec.dbservers.maxCount: int + +MaxCount specifies a upper limit for count + +Code Reference: [server_group_spec.go:76](/pkg/apis/deployment/v1/server_group_spec.go#L76) + +### .spec.dbservers.minCount: int + +MinCount specifies a lower limit for count + +Code Reference: [server_group_spec.go:74](/pkg/apis/deployment/v1/server_group_spec.go#L74) + +### .spec.dbservers.nodeAffinity: core.NodeAffinity + +NodeAffinity specified additional nodeAffinity settings in ArangoDB Pod definitions + +Links: +* [Documentation of code.NodeAffinity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#nodeaffinity-v1-core) + +Code Reference: [server_group_spec.go:138](/pkg/apis/deployment/v1/server_group_spec.go#L138) + +### .spec.dbservers.nodeSelector: map[string]string + +NodeSelector speficies a set of selectors for nodes + +Code Reference: [server_group_spec.go:114](/pkg/apis/deployment/v1/server_group_spec.go#L114) + +### .spec.dbservers.overrideDetectedNumberOfCores: bool + +OverrideDetectedNumberOfCores determines if number of cores should be overrided based on values in resources. + +Code Reference: [server_group_spec.go:92](/pkg/apis/deployment/v1/server_group_spec.go#L92) + +### .spec.dbservers.overrideDetectedTotalMemory: bool + +OverrideDetectedTotalMemory determines if memory should be overrided based on values in resources. + +Code Reference: [server_group_spec.go:90](/pkg/apis/deployment/v1/server_group_spec.go#L90) + +### .spec.dbservers.podModes.network: string + +Code Reference: [server_group_spec_pod_modes.go:31](/pkg/apis/deployment/v1/server_group_spec_pod_modes.go#L31) + +### .spec.dbservers.podModes.pid: string + +Code Reference: [server_group_spec_pod_modes.go:32](/pkg/apis/deployment/v1/server_group_spec_pod_modes.go#L32) + +### .spec.dbservers.port: uint16 + +Port define Port used by member + +Code Reference: [server_group_spec.go:180](/pkg/apis/deployment/v1/server_group_spec.go#L180) + +### .spec.dbservers.priorityClassName: string + +PriorityClassName specifies a priority class name + +Code Reference: [server_group_spec.go:118](/pkg/apis/deployment/v1/server_group_spec.go#L118) + +### .spec.dbservers.probes.livenessProbeDisabled: bool + +LivenessProbeDisabled if true livenessProbes are disabled + +Code Reference: [server_group_spec.go:188](/pkg/apis/deployment/v1/server_group_spec.go#L188) + +### .spec.dbservers.probes.livenessProbeSpec.failureThreshold: int32 + +Code Reference: [server_group_spec.go:222](/pkg/apis/deployment/v1/server_group_spec.go#L222) + +### .spec.dbservers.probes.livenessProbeSpec.initialDelaySeconds: int32 + +Code Reference: [server_group_spec.go:218](/pkg/apis/deployment/v1/server_group_spec.go#L218) + +### .spec.dbservers.probes.livenessProbeSpec.periodSeconds: int32 + +Code Reference: [server_group_spec.go:219](/pkg/apis/deployment/v1/server_group_spec.go#L219) + +### .spec.dbservers.probes.livenessProbeSpec.successThreshold: int32 + +Code Reference: [server_group_spec.go:221](/pkg/apis/deployment/v1/server_group_spec.go#L221) + +### .spec.dbservers.probes.livenessProbeSpec.timeoutSeconds: int32 + +Code Reference: [server_group_spec.go:220](/pkg/apis/deployment/v1/server_group_spec.go#L220) + +### .spec.dbservers.probes.ReadinessProbeDisabled: bool + +OldReadinessProbeDisabled if true readinessProbes are disabled + +Deprecated: This field is deprecated, keept only for backward compatibility. + +Code Reference: [server_group_spec.go:195](/pkg/apis/deployment/v1/server_group_spec.go#L195) + +### .spec.dbservers.probes.readinessProbeDisabled: bool + +ReadinessProbeDisabled override flag for probe disabled in good manner (lowercase) with backward compatibility + +Code Reference: [server_group_spec.go:197](/pkg/apis/deployment/v1/server_group_spec.go#L197) + +### .spec.dbservers.probes.readinessProbeSpec.failureThreshold: int32 + +Code Reference: [server_group_spec.go:222](/pkg/apis/deployment/v1/server_group_spec.go#L222) + +### .spec.dbservers.probes.readinessProbeSpec.initialDelaySeconds: int32 + +Code Reference: [server_group_spec.go:218](/pkg/apis/deployment/v1/server_group_spec.go#L218) + +### .spec.dbservers.probes.readinessProbeSpec.periodSeconds: int32 + +Code Reference: [server_group_spec.go:219](/pkg/apis/deployment/v1/server_group_spec.go#L219) + +### .spec.dbservers.probes.readinessProbeSpec.successThreshold: int32 + +Code Reference: [server_group_spec.go:221](/pkg/apis/deployment/v1/server_group_spec.go#L221) + +### .spec.dbservers.probes.readinessProbeSpec.timeoutSeconds: int32 + +Code Reference: [server_group_spec.go:220](/pkg/apis/deployment/v1/server_group_spec.go#L220) + +### .spec.dbservers.probes.startupProbeDisabled: bool + +StartupProbeDisabled if true startupProbes are disabled + +Code Reference: [server_group_spec.go:202](/pkg/apis/deployment/v1/server_group_spec.go#L202) + +### .spec.dbservers.probes.startupProbeSpec.failureThreshold: int32 + +Code Reference: [server_group_spec.go:222](/pkg/apis/deployment/v1/server_group_spec.go#L222) + +### .spec.dbservers.probes.startupProbeSpec.initialDelaySeconds: int32 + +Code Reference: [server_group_spec.go:218](/pkg/apis/deployment/v1/server_group_spec.go#L218) + +### .spec.dbservers.probes.startupProbeSpec.periodSeconds: int32 + +Code Reference: [server_group_spec.go:219](/pkg/apis/deployment/v1/server_group_spec.go#L219) + +### .spec.dbservers.probes.startupProbeSpec.successThreshold: int32 + +Code Reference: [server_group_spec.go:221](/pkg/apis/deployment/v1/server_group_spec.go#L221) + +### .spec.dbservers.probes.startupProbeSpec.timeoutSeconds: int32 + +Code Reference: [server_group_spec.go:220](/pkg/apis/deployment/v1/server_group_spec.go#L220) + +### .spec.dbservers.pvcResizeMode: string + +VolumeResizeMode specified resize mode for pvc + +Code Reference: [server_group_spec.go:124](/pkg/apis/deployment/v1/server_group_spec.go#L124) + +### .spec.dbservers.resources: core.ResourceRequirements + +Resources holds resource requests & limits + +Links: +* [Documentation of core.ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#resourcerequirements-v1-core) + +Code Reference: [server_group_spec.go:88](/pkg/apis/deployment/v1/server_group_spec.go#L88) + +### .spec.dbservers.schedulerName: string + +SchedulerName define scheduler name used for group + +Code Reference: [server_group_spec.go:82](/pkg/apis/deployment/v1/server_group_spec.go#L82) + +### .spec.dbservers.securityContext.addCapabilities: []string + +AddCapabilities add new capabilities to containers + +Code Reference: [server_group_security_context_spec.go:42](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L42) + +### .spec.dbservers.securityContext.allowPrivilegeEscalation: bool + +Code Reference: [server_group_security_context_spec.go:44](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L44) + +### .spec.dbservers.securityContext.dropAllCapabilities: bool + +DropAllCapabilities specifies if capabilities should be dropped for this pod containers + +Deprecated: This field is added for backward compatibility. Will be removed in 1.1.0. + +Code Reference: [server_group_security_context_spec.go:40](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L40) + +### .spec.dbservers.securityContext.fsGroup: int64 + +Code Reference: [server_group_security_context_spec.go:52](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L52) + +### .spec.dbservers.securityContext.privileged: bool + +Code Reference: [server_group_security_context_spec.go:45](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L45) + +### .spec.dbservers.securityContext.readOnlyRootFilesystem: bool + +Code Reference: [server_group_security_context_spec.go:46](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L46) + +### .spec.dbservers.securityContext.runAsGroup: int64 + +Code Reference: [server_group_security_context_spec.go:49](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L49) + +### .spec.dbservers.securityContext.runAsNonRoot: bool + +Code Reference: [server_group_security_context_spec.go:47](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L47) + +### .spec.dbservers.securityContext.runAsUser: int64 + +Code Reference: [server_group_security_context_spec.go:48](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L48) + +### .spec.dbservers.securityContext.seccompProfile: core.SeccompProfile + +SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set. + +Links: +* [Documentation of core.SeccompProfile](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#seccompprofile-v1-core) + +Code Reference: [server_group_security_context_spec.go:57](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L57) + +### .spec.dbservers.securityContext.seLinuxOptions: core.SELinuxOptions + +SELinuxOptions are the labels to be applied to the container + +Links: +* [Documentation of core.SELinuxOptions](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#selinuxoptions-v1-core) + +Code Reference: [server_group_security_context_spec.go:62](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L62) + +### .spec.dbservers.securityContext.supplementalGroups: []int64 + +Code Reference: [server_group_security_context_spec.go:51](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L51) + +### .spec.dbservers.serviceAccountName: string + +ServiceAccountName specifies the name of the service account used for Pods in this group. + +Code Reference: [server_group_spec.go:112](/pkg/apis/deployment/v1/server_group_spec.go#L112) + +### .spec.dbservers.shutdownDelay: int + +ShutdownDelay define how long operator should delay finalizer removal after shutdown + +Code Reference: [server_group_spec.go:163](/pkg/apis/deployment/v1/server_group_spec.go#L163) + +### .spec.dbservers.shutdownMethod: string + +ShutdownMethod describe procedure of member shutdown taken by Operator + +Code Reference: [server_group_spec.go:161](/pkg/apis/deployment/v1/server_group_spec.go#L161) + +### .spec.dbservers.sidecarCoreNames: []string + +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. + +Code Reference: [server_group_spec.go:141](/pkg/apis/deployment/v1/server_group_spec.go#L141) + +### .spec.dbservers.sidecars: []core.Container + +Sidecars specifies a list of additional containers to be started + +Links: +* [Documentation of core.Container](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#container-v1-core) + +Code Reference: [server_group_spec.go:145](/pkg/apis/deployment/v1/server_group_spec.go#L145) + +### .spec.dbservers.storageClassName: string + +StorageClassName specifies the classname for storage of the servers. + +Code Reference: [server_group_spec.go:84](/pkg/apis/deployment/v1/server_group_spec.go#L84) + +### .spec.dbservers.terminationGracePeriodSeconds: int64 + +TerminationGracePeriodSeconds override default TerminationGracePeriodSeconds for pods - via silent rotation + +Code Reference: [server_group_spec.go:173](/pkg/apis/deployment/v1/server_group_spec.go#L173) + +### .spec.dbservers.tolerations: []core.Toleration + +Tolerations specifies the tolerations added to Pods in this group. + +Links: +* [Documentation of core.Toleration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#toleration-v1-core) + +Code Reference: [server_group_spec.go:96](/pkg/apis/deployment/v1/server_group_spec.go#L96) + +### .spec.dbservers.volumeAllowShrink: bool + +Deprecated: VolumeAllowShrink allows shrink the volume + +Code Reference: [server_group_spec.go:126](/pkg/apis/deployment/v1/server_group_spec.go#L126) + +### .spec.dbservers.volumeClaimTemplate: core.PersistentVolumeClaim + +VolumeClaimTemplate specifies a template for volume claims + +Links: +* [Documentation of core.PersistentVolumeClaim](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#persistentvolumeclaim-v1-core) + +Code Reference: [server_group_spec.go:122](/pkg/apis/deployment/v1/server_group_spec.go#L122) + +### .spec.dbservers.volumeMounts: []ServerGroupSpecVolumeMount + +VolumeMounts define list of volume mounts mounted into server container + +Links: +* [Documentation of ServerGroupSpecVolumeMount](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#volumemount-v1-core) + +Code Reference: [server_group_spec.go:153](/pkg/apis/deployment/v1/server_group_spec.go#L153) + +### .spec.dbservers.volumes\[int\].configMap: core.ConfigMapVolumeSource + +ConfigMap which should be mounted into pod + +Links: +* [Documentation of core.ConfigMapVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#configmapvolumesource-v1-core) + +Code Reference: [server_group_volume.go:138](/pkg/apis/deployment/v1/server_group_volume.go#L138) + +### .spec.dbservers.volumes\[int\].emptyDir: core.EmptyDirVolumeSource + +EmptyDir + +Links: +* [Documentation of core.EmptyDirVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#emptydirvolumesource-v1-core) + +Code Reference: [server_group_volume.go:143](/pkg/apis/deployment/v1/server_group_volume.go#L143) + +### .spec.dbservers.volumes\[int\].hostPath: core.HostPathVolumeSource + +HostPath + +Links: +* [Documentation of core.HostPathVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#hostpathvolumesource-v1-core) + +Code Reference: [server_group_volume.go:148](/pkg/apis/deployment/v1/server_group_volume.go#L148) + +### .spec.dbservers.volumes\[int\].name: string + +Name of volume + +Code Reference: [server_group_volume.go:128](/pkg/apis/deployment/v1/server_group_volume.go#L128) + +### .spec.dbservers.volumes\[int\].persistentVolumeClaim: core.PersistentVolumeClaimVolumeSource + +PersistentVolumeClaim + +Links: +* [Documentation of core.PersistentVolumeClaimVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#persistentvolumeclaimvolumesource-v1-core) + +Code Reference: [server_group_volume.go:153](/pkg/apis/deployment/v1/server_group_volume.go#L153) + +### .spec.dbservers.volumes\[int\].secret: core.SecretVolumeSource + +Secret which should be mounted into pod + +Links: +* [Documentation of core.SecretVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#secretvolumesource-v1-core) + +Code Reference: [server_group_volume.go:133](/pkg/apis/deployment/v1/server_group_volume.go#L133) + +### .spec.disableIPv6: bool + +Code Reference: [deployment_spec.go:122](/pkg/apis/deployment/v1/deployment_spec.go#L122) + +### .spec.downtimeAllowed: bool + +Code Reference: [deployment_spec.go:121](/pkg/apis/deployment/v1/deployment_spec.go#L121) + +### .spec.environment: string + +Code Reference: [deployment_spec.go:115](/pkg/apis/deployment/v1/deployment_spec.go#L115) + +### .spec.externalAccess.advertisedEndpoint: string + +AdvertisedEndpoint is passed to the coordinators/single servers for advertising a specific endpoint + +Code Reference: [external_access_spec.go:45](/pkg/apis/deployment/v1/external_access_spec.go#L45) + +### .spec.externalAccess.loadBalancerIP: string + +Optional IP used to configure a load-balancer on, in case of Auto or LoadBalancer type. + +Code Reference: [external_access_spec.go:38](/pkg/apis/deployment/v1/external_access_spec.go#L38) + +### .spec.externalAccess.loadBalancerSourceRanges: []string + +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. + +More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/ + +Code Reference: [external_access_spec.go:43](/pkg/apis/deployment/v1/external_access_spec.go#L43) + +### .spec.externalAccess.managedServiceNames: []string + +ManagedServiceNames keeps names of services which are not managed by KubeArangoDB. + +It is only relevant when type of service is `managed`. + +Code Reference: [external_access_spec.go:48](/pkg/apis/deployment/v1/external_access_spec.go#L48) + +### .spec.externalAccess.nodePort: int + +Optional port used in case of Auto or NodePort type. + +Code Reference: [external_access_spec.go:36](/pkg/apis/deployment/v1/external_access_spec.go#L36) + +### .spec.externalAccess.type: string + +Type of external access + +Code Reference: [external_access_spec.go:34](/pkg/apis/deployment/v1/external_access_spec.go#L34) + +### .spec.features.foxx.queues: bool + +Code Reference: [deployment_features.go:24](/pkg/apis/deployment/v1/deployment_features.go#L24) + +### .spec.id.affinity: core.PodAffinity + +Affinity specified additional affinity settings in ArangoDB Pod definitions + +Links: +* [Documentation of core.PodAffinity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#podaffinity-v1-core) + +Code Reference: [server_id_group_spec.go:44](/pkg/apis/deployment/v1/server_id_group_spec.go#L44) + +### .spec.id.antiAffinity: core.PodAntiAffinity + +AntiAffinity specified additional antiAffinity settings in ArangoDB Pod definitions + +Links: +* [Documentation of core.Pod.AntiAffinity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#podantiaffinity-v1-core) + +Code Reference: [server_id_group_spec.go:40](/pkg/apis/deployment/v1/server_id_group_spec.go#L40) + +### .spec.id.entrypoint: string + +Entrypoint overrides container executable + +Code Reference: [server_id_group_spec.go:28](/pkg/apis/deployment/v1/server_id_group_spec.go#L28) + +### .spec.id.nodeAffinity: core.NodeAffinity + +NodeAffinity specified additional nodeAffinity settings in ArangoDB Pod definitions + +Links: +* [Documentation of code.NodeAffinity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#nodeaffinity-v1-core) + +Code Reference: [server_id_group_spec.go:48](/pkg/apis/deployment/v1/server_id_group_spec.go#L48) + +### .spec.id.nodeSelector: map[string]string + +NodeSelector speficies a set of selectors for nodes + +Code Reference: [server_id_group_spec.go:34](/pkg/apis/deployment/v1/server_id_group_spec.go#L34) + +### .spec.id.priorityClassName: string + +PriorityClassName specifies a priority class name + +Code Reference: [server_id_group_spec.go:36](/pkg/apis/deployment/v1/server_id_group_spec.go#L36) + +### .spec.id.resources: core.ResourceRequirements + +Resources holds resource requests & limits + +Links: +* [Documentation of core.ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#resourcerequirements-v1-core) + +Code Reference: [server_id_group_spec.go:56](/pkg/apis/deployment/v1/server_id_group_spec.go#L56) + +### .spec.id.securityContext.addCapabilities: []string + +AddCapabilities add new capabilities to containers + +Code Reference: [server_group_security_context_spec.go:42](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L42) + +### .spec.id.securityContext.allowPrivilegeEscalation: bool + +Code Reference: [server_group_security_context_spec.go:44](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L44) + +### .spec.id.securityContext.dropAllCapabilities: bool + +DropAllCapabilities specifies if capabilities should be dropped for this pod containers + +Deprecated: This field is added for backward compatibility. Will be removed in 1.1.0. + +Code Reference: [server_group_security_context_spec.go:40](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L40) + +### .spec.id.securityContext.fsGroup: int64 + +Code Reference: [server_group_security_context_spec.go:52](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L52) + +### .spec.id.securityContext.privileged: bool + +Code Reference: [server_group_security_context_spec.go:45](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L45) + +### .spec.id.securityContext.readOnlyRootFilesystem: bool + +Code Reference: [server_group_security_context_spec.go:46](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L46) + +### .spec.id.securityContext.runAsGroup: int64 + +Code Reference: [server_group_security_context_spec.go:49](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L49) + +### .spec.id.securityContext.runAsNonRoot: bool + +Code Reference: [server_group_security_context_spec.go:47](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L47) + +### .spec.id.securityContext.runAsUser: int64 + +Code Reference: [server_group_security_context_spec.go:48](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L48) + +### .spec.id.securityContext.seccompProfile: core.SeccompProfile + +SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set. + +Links: +* [Documentation of core.SeccompProfile](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#seccompprofile-v1-core) + +Code Reference: [server_group_security_context_spec.go:57](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L57) + +### .spec.id.securityContext.seLinuxOptions: core.SELinuxOptions + +SELinuxOptions are the labels to be applied to the container + +Links: +* [Documentation of core.SELinuxOptions](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#selinuxoptions-v1-core) + +Code Reference: [server_group_security_context_spec.go:62](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L62) + +### .spec.id.securityContext.supplementalGroups: []int64 + +Code Reference: [server_group_security_context_spec.go:51](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L51) + +### .spec.id.serviceAccountName: string + +ServiceAccountName specifies the name of the service account used for Pods in this group. + +Code Reference: [server_id_group_spec.go:50](/pkg/apis/deployment/v1/server_id_group_spec.go#L50) + +### .spec.id.tolerations: []core.Toleration + +Tolerations specifies the tolerations added to Pods in this group. + +Links: +* [Documentation of core.Toleration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#toleration-v1-core) + +Code Reference: [server_id_group_spec.go:32](/pkg/apis/deployment/v1/server_id_group_spec.go#L32) + +### .spec.image: string + +Code Reference: [deployment_spec.go:117](/pkg/apis/deployment/v1/deployment_spec.go#L117) + +### .spec.imageDiscoveryMode: string + +Code Reference: [deployment_spec.go:120](/pkg/apis/deployment/v1/deployment_spec.go#L120) + +### .spec.imagePullPolicy: string + +Code Reference: [deployment_spec.go:118](/pkg/apis/deployment/v1/deployment_spec.go#L118) + +### .spec.imagePullSecrets: []string + +Code Reference: [deployment_spec.go:119](/pkg/apis/deployment/v1/deployment_spec.go#L119) + +### .spec.labels: map[string]string + +Labels specified the labels added to Pods in this group. + +Code Reference: [deployment_spec.go:137](/pkg/apis/deployment/v1/deployment_spec.go#L137) + +### .spec.labelsIgnoreList: []string + +LabelsIgnoreList list regexp or plain definitions which labels should be ignored + +Code Reference: [deployment_spec.go:139](/pkg/apis/deployment/v1/deployment_spec.go#L139) + +### .spec.labelsMode: string + +LabelsMode Define labels mode which should be use while overriding labels + +Code Reference: [deployment_spec.go:141](/pkg/apis/deployment/v1/deployment_spec.go#L141) + +### .spec.license.secretName: string + +Code Reference: [license_spec.go:30](/pkg/apis/deployment/v1/license_spec.go#L30) + +### .spec.lifecycle.resources: core.ResourceRequirements + +Resources holds resource requests & limits + +Links: +* [Documentation of core.ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#resourcerequirements-v1-core) + +Code Reference: [lifecycle_spec.go:31](/pkg/apis/deployment/v1/lifecycle_spec.go#L31) + +### .spec.memberPropagationMode: string + +Code Reference: [deployment_spec.go:171](/pkg/apis/deployment/v1/deployment_spec.go#L171) + +### .spec.metrics.authentication.jwtTokenSecretName: string + +JWTTokenSecretName contains the name of the JWT kubernetes secret used for authentication + +Code Reference: [deployment_metrics_spec.go:34](/pkg/apis/deployment/v1/deployment_metrics_spec.go#L34) + +### .spec.metrics.enabled: bool + +Code Reference: [deployment_metrics_spec.go:77](/pkg/apis/deployment/v1/deployment_metrics_spec.go#L77) + +### .spec.metrics.image: string + +deprecated + +Code Reference: [deployment_metrics_spec.go:79](/pkg/apis/deployment/v1/deployment_metrics_spec.go#L79) + +### .spec.metrics.mode: string + +deprecated + +Code Reference: [deployment_metrics_spec.go:86](/pkg/apis/deployment/v1/deployment_metrics_spec.go#L86) + +### .spec.metrics.port: uint16 + +Code Reference: [deployment_metrics_spec.go:91](/pkg/apis/deployment/v1/deployment_metrics_spec.go#L91) + +### .spec.metrics.resources: core.ResourceRequirements + +Resources holds resource requests & limits + +Links: +* [Documentation of core.ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#resourcerequirements-v1-core) + +Code Reference: [deployment_metrics_spec.go:84](/pkg/apis/deployment/v1/deployment_metrics_spec.go#L84) + +### .spec.metrics.serviceMonitor.enabled: bool + +Code Reference: [deployment_metrics_service_monitor_spec.go:24](/pkg/apis/deployment/v1/deployment_metrics_service_monitor_spec.go#L24) + +### .spec.metrics.serviceMonitor.labels: map[string]string + +Code Reference: [deployment_metrics_service_monitor_spec.go:25](/pkg/apis/deployment/v1/deployment_metrics_service_monitor_spec.go#L25) + +### .spec.metrics.tls: bool + +Code Reference: [deployment_metrics_spec.go:87](/pkg/apis/deployment/v1/deployment_metrics_spec.go#L87) + +### .spec.mode: string + +Code Reference: [deployment_spec.go:114](/pkg/apis/deployment/v1/deployment_spec.go#L114) + +### .spec.networkAttachedVolumes: bool + +Code Reference: [deployment_spec.go:128](/pkg/apis/deployment/v1/deployment_spec.go#L128) + +### .spec.rebalancer.enabled: bool + +Code Reference: [rebalancer_spec.go:26](/pkg/apis/deployment/v1/rebalancer_spec.go#L26) + +### .spec.rebalancer.optimizers.leader: bool + +Code Reference: [rebalancer_spec.go:74](/pkg/apis/deployment/v1/rebalancer_spec.go#L74) + +### .spec.rebalancer.parallelMoves: int + +Code Reference: [rebalancer_spec.go:28](/pkg/apis/deployment/v1/rebalancer_spec.go#L28) + +### .spec.rebalancer.readers.count: bool + +deprecated does not work in Rebalancer V2 + +Count Enable Shard Count machanism + +Code Reference: [rebalancer_spec.go:62](/pkg/apis/deployment/v1/rebalancer_spec.go#L62) + +### .spec.recovery.autoRecover: bool + +Code Reference: [recovery_spec.go:26](/pkg/apis/deployment/v1/recovery_spec.go#L26) + +### .spec.restoreEncryptionSecret: string + +Code Reference: [deployment_spec.go:145](/pkg/apis/deployment/v1/deployment_spec.go#L145) + +### .spec.restoreFrom: string + +Code Reference: [deployment_spec.go:143](/pkg/apis/deployment/v1/deployment_spec.go#L143) + +### .spec.rocksdb.encryption.keySecretName: string + +Code Reference: [rocksdb_spec.go:31](/pkg/apis/deployment/v1/rocksdb_spec.go#L31) + +### .spec.single.affinity: core.PodAffinity + +Affinity specified additional affinity settings in ArangoDB Pod definitions + +Links: +* [Documentation of core.PodAffinity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#podaffinity-v1-core) + +Code Reference: [server_group_spec.go:134](/pkg/apis/deployment/v1/server_group_spec.go#L134) + +### .spec.single.allowMemberRecreation: bool + +AllowMemberRecreation allows to recreate member. Value is used only for Coordinator and DBServer with default to True, for all other groups set to false. + +Code Reference: [server_group_spec.go:171](/pkg/apis/deployment/v1/server_group_spec.go#L171) + +### .spec.single.annotations: map[string]string + +Annotations specified the annotations added to Pods in this group. + +Code Reference: [server_group_spec.go:98](/pkg/apis/deployment/v1/server_group_spec.go#L98) + +### .spec.single.annotationsIgnoreList: []string + +AnnotationsIgnoreList list regexp or plain definitions which annotations should be ignored + +Code Reference: [server_group_spec.go:100](/pkg/apis/deployment/v1/server_group_spec.go#L100) + +### .spec.single.annotationsMode: string + +AnnotationsMode Define annotations mode which should be use while overriding annotations + +Code Reference: [server_group_spec.go:102](/pkg/apis/deployment/v1/server_group_spec.go#L102) + +### .spec.single.antiAffinity: core.PodAntiAffinity + +AntiAffinity specified additional antiAffinity settings in ArangoDB Pod definitions + +Links: +* [Documentation of core.Pod.AntiAffinity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#podantiaffinity-v1-core) + +Code Reference: [server_group_spec.go:130](/pkg/apis/deployment/v1/server_group_spec.go#L130) + +### .spec.single.args: []string + +Args holds additional commandline arguments + +Code Reference: [server_group_spec.go:78](/pkg/apis/deployment/v1/server_group_spec.go#L78) + +### .spec.single.count: int + +Count holds the requested number of servers + +Code Reference: [server_group_spec.go:72](/pkg/apis/deployment/v1/server_group_spec.go#L72) + +### .spec.single.entrypoint: string + +Entrypoint overrides container executable + +Code Reference: [server_group_spec.go:80](/pkg/apis/deployment/v1/server_group_spec.go#L80) + +### .spec.single.envs\[int\].name: string + +Code Reference: [server_group_env_var.go:26](/pkg/apis/deployment/v1/server_group_env_var.go#L26) + +### .spec.single.envs\[int\].value: string + +Code Reference: [server_group_env_var.go:27](/pkg/apis/deployment/v1/server_group_env_var.go#L27) + +### .spec.single.ephemeralVolumes.apps.size: resource.Quantity + +Size define size of the ephemeral volume + +Links: +* [Documentation of resource.Quantity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#quantity-resource-core) + +Code Reference: [server_group_ephemeral_volumes.go:64](/pkg/apis/deployment/v1/server_group_ephemeral_volumes.go#L64) + +### .spec.single.ephemeralVolumes.temp.size: resource.Quantity + +Size define size of the ephemeral volume + +Links: +* [Documentation of resource.Quantity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#quantity-resource-core) + +Code Reference: [server_group_ephemeral_volumes.go:64](/pkg/apis/deployment/v1/server_group_ephemeral_volumes.go#L64) + +### .spec.single.exporterPort: uint16 + +ExporterPort define Port used by exporter + +Code Reference: [server_group_spec.go:182](/pkg/apis/deployment/v1/server_group_spec.go#L182) + +### .spec.single.extendedRotationCheck: bool + +ExtendedRotationCheck extend checks for rotation + +Code Reference: [server_group_spec.go:157](/pkg/apis/deployment/v1/server_group_spec.go#L157) + +### .spec.single.externalPortEnabled: bool + +ExternalPortEnabled if external port should be enabled. If is set to false, ports needs to be exposed via sidecar. Only for ArangoD members + +Code Reference: [server_group_spec.go:169](/pkg/apis/deployment/v1/server_group_spec.go#L169) + +### .spec.single.indexMethod: string + +IndexMethod define group Indexing method + +Code Reference: [server_group_spec.go:175](/pkg/apis/deployment/v1/server_group_spec.go#L175) + +### .spec.single.initContainers.containers: []core.Container + +Containers contains list of containers + +Links: +* [Documentation of core.Container](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#container-v1-core) + +Code Reference: [server_group_init_containers.go:91](/pkg/apis/deployment/v1/server_group_init_containers.go#L91) + +### .spec.single.initContainers.mode: string + +Mode keep container replace mode + +Code Reference: [server_group_init_containers.go:94](/pkg/apis/deployment/v1/server_group_init_containers.go#L94) + +### .spec.single.internalPort: int + +InternalPort define port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members + +Code Reference: [server_group_spec.go:165](/pkg/apis/deployment/v1/server_group_spec.go#L165) + +### .spec.single.internalPortProtocol: string + +InternalPortProtocol define protocol of port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members + +Code Reference: [server_group_spec.go:167](/pkg/apis/deployment/v1/server_group_spec.go#L167) + +### .spec.single.labels: map[string]string + +Labels specified the labels added to Pods in this group. + +Code Reference: [server_group_spec.go:104](/pkg/apis/deployment/v1/server_group_spec.go#L104) + +### .spec.single.labelsIgnoreList: []string + +LabelsIgnoreList list regexp or plain definitions which labels should be ignored + +Code Reference: [server_group_spec.go:106](/pkg/apis/deployment/v1/server_group_spec.go#L106) + +### .spec.single.labelsMode: string + +LabelsMode Define labels mode which should be use while overriding labels + +Code Reference: [server_group_spec.go:108](/pkg/apis/deployment/v1/server_group_spec.go#L108) + +### .spec.single.maxCount: int + +MaxCount specifies a upper limit for count + +Code Reference: [server_group_spec.go:76](/pkg/apis/deployment/v1/server_group_spec.go#L76) + +### .spec.single.minCount: int + +MinCount specifies a lower limit for count + +Code Reference: [server_group_spec.go:74](/pkg/apis/deployment/v1/server_group_spec.go#L74) + +### .spec.single.nodeAffinity: core.NodeAffinity + +NodeAffinity specified additional nodeAffinity settings in ArangoDB Pod definitions + +Links: +* [Documentation of code.NodeAffinity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#nodeaffinity-v1-core) + +Code Reference: [server_group_spec.go:138](/pkg/apis/deployment/v1/server_group_spec.go#L138) + +### .spec.single.nodeSelector: map[string]string + +NodeSelector speficies a set of selectors for nodes + +Code Reference: [server_group_spec.go:114](/pkg/apis/deployment/v1/server_group_spec.go#L114) + +### .spec.single.overrideDetectedNumberOfCores: bool + +OverrideDetectedNumberOfCores determines if number of cores should be overrided based on values in resources. + +Code Reference: [server_group_spec.go:92](/pkg/apis/deployment/v1/server_group_spec.go#L92) + +### .spec.single.overrideDetectedTotalMemory: bool + +OverrideDetectedTotalMemory determines if memory should be overrided based on values in resources. + +Code Reference: [server_group_spec.go:90](/pkg/apis/deployment/v1/server_group_spec.go#L90) + +### .spec.single.podModes.network: string + +Code Reference: [server_group_spec_pod_modes.go:31](/pkg/apis/deployment/v1/server_group_spec_pod_modes.go#L31) + +### .spec.single.podModes.pid: string + +Code Reference: [server_group_spec_pod_modes.go:32](/pkg/apis/deployment/v1/server_group_spec_pod_modes.go#L32) + +### .spec.single.port: uint16 + +Port define Port used by member + +Code Reference: [server_group_spec.go:180](/pkg/apis/deployment/v1/server_group_spec.go#L180) + +### .spec.single.priorityClassName: string + +PriorityClassName specifies a priority class name + +Code Reference: [server_group_spec.go:118](/pkg/apis/deployment/v1/server_group_spec.go#L118) + +### .spec.single.probes.livenessProbeDisabled: bool + +LivenessProbeDisabled if true livenessProbes are disabled + +Code Reference: [server_group_spec.go:188](/pkg/apis/deployment/v1/server_group_spec.go#L188) + +### .spec.single.probes.livenessProbeSpec.failureThreshold: int32 + +Code Reference: [server_group_spec.go:222](/pkg/apis/deployment/v1/server_group_spec.go#L222) + +### .spec.single.probes.livenessProbeSpec.initialDelaySeconds: int32 + +Code Reference: [server_group_spec.go:218](/pkg/apis/deployment/v1/server_group_spec.go#L218) + +### .spec.single.probes.livenessProbeSpec.periodSeconds: int32 + +Code Reference: [server_group_spec.go:219](/pkg/apis/deployment/v1/server_group_spec.go#L219) + +### .spec.single.probes.livenessProbeSpec.successThreshold: int32 + +Code Reference: [server_group_spec.go:221](/pkg/apis/deployment/v1/server_group_spec.go#L221) + +### .spec.single.probes.livenessProbeSpec.timeoutSeconds: int32 + +Code Reference: [server_group_spec.go:220](/pkg/apis/deployment/v1/server_group_spec.go#L220) + +### .spec.single.probes.ReadinessProbeDisabled: bool + +OldReadinessProbeDisabled if true readinessProbes are disabled + +Deprecated: This field is deprecated, keept only for backward compatibility. + +Code Reference: [server_group_spec.go:195](/pkg/apis/deployment/v1/server_group_spec.go#L195) + +### .spec.single.probes.readinessProbeDisabled: bool + +ReadinessProbeDisabled override flag for probe disabled in good manner (lowercase) with backward compatibility + +Code Reference: [server_group_spec.go:197](/pkg/apis/deployment/v1/server_group_spec.go#L197) + +### .spec.single.probes.readinessProbeSpec.failureThreshold: int32 + +Code Reference: [server_group_spec.go:222](/pkg/apis/deployment/v1/server_group_spec.go#L222) + +### .spec.single.probes.readinessProbeSpec.initialDelaySeconds: int32 + +Code Reference: [server_group_spec.go:218](/pkg/apis/deployment/v1/server_group_spec.go#L218) + +### .spec.single.probes.readinessProbeSpec.periodSeconds: int32 + +Code Reference: [server_group_spec.go:219](/pkg/apis/deployment/v1/server_group_spec.go#L219) + +### .spec.single.probes.readinessProbeSpec.successThreshold: int32 + +Code Reference: [server_group_spec.go:221](/pkg/apis/deployment/v1/server_group_spec.go#L221) + +### .spec.single.probes.readinessProbeSpec.timeoutSeconds: int32 + +Code Reference: [server_group_spec.go:220](/pkg/apis/deployment/v1/server_group_spec.go#L220) + +### .spec.single.probes.startupProbeDisabled: bool + +StartupProbeDisabled if true startupProbes are disabled + +Code Reference: [server_group_spec.go:202](/pkg/apis/deployment/v1/server_group_spec.go#L202) + +### .spec.single.probes.startupProbeSpec.failureThreshold: int32 + +Code Reference: [server_group_spec.go:222](/pkg/apis/deployment/v1/server_group_spec.go#L222) + +### .spec.single.probes.startupProbeSpec.initialDelaySeconds: int32 + +Code Reference: [server_group_spec.go:218](/pkg/apis/deployment/v1/server_group_spec.go#L218) + +### .spec.single.probes.startupProbeSpec.periodSeconds: int32 + +Code Reference: [server_group_spec.go:219](/pkg/apis/deployment/v1/server_group_spec.go#L219) + +### .spec.single.probes.startupProbeSpec.successThreshold: int32 + +Code Reference: [server_group_spec.go:221](/pkg/apis/deployment/v1/server_group_spec.go#L221) + +### .spec.single.probes.startupProbeSpec.timeoutSeconds: int32 + +Code Reference: [server_group_spec.go:220](/pkg/apis/deployment/v1/server_group_spec.go#L220) + +### .spec.single.pvcResizeMode: string + +VolumeResizeMode specified resize mode for pvc + +Code Reference: [server_group_spec.go:124](/pkg/apis/deployment/v1/server_group_spec.go#L124) + +### .spec.single.resources: core.ResourceRequirements + +Resources holds resource requests & limits + +Links: +* [Documentation of core.ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#resourcerequirements-v1-core) + +Code Reference: [server_group_spec.go:88](/pkg/apis/deployment/v1/server_group_spec.go#L88) + +### .spec.single.schedulerName: string + +SchedulerName define scheduler name used for group + +Code Reference: [server_group_spec.go:82](/pkg/apis/deployment/v1/server_group_spec.go#L82) + +### .spec.single.securityContext.addCapabilities: []string + +AddCapabilities add new capabilities to containers + +Code Reference: [server_group_security_context_spec.go:42](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L42) + +### .spec.single.securityContext.allowPrivilegeEscalation: bool + +Code Reference: [server_group_security_context_spec.go:44](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L44) + +### .spec.single.securityContext.dropAllCapabilities: bool + +DropAllCapabilities specifies if capabilities should be dropped for this pod containers + +Deprecated: This field is added for backward compatibility. Will be removed in 1.1.0. + +Code Reference: [server_group_security_context_spec.go:40](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L40) + +### .spec.single.securityContext.fsGroup: int64 + +Code Reference: [server_group_security_context_spec.go:52](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L52) + +### .spec.single.securityContext.privileged: bool + +Code Reference: [server_group_security_context_spec.go:45](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L45) + +### .spec.single.securityContext.readOnlyRootFilesystem: bool + +Code Reference: [server_group_security_context_spec.go:46](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L46) + +### .spec.single.securityContext.runAsGroup: int64 + +Code Reference: [server_group_security_context_spec.go:49](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L49) + +### .spec.single.securityContext.runAsNonRoot: bool + +Code Reference: [server_group_security_context_spec.go:47](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L47) + +### .spec.single.securityContext.runAsUser: int64 + +Code Reference: [server_group_security_context_spec.go:48](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L48) + +### .spec.single.securityContext.seccompProfile: core.SeccompProfile + +SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set. + +Links: +* [Documentation of core.SeccompProfile](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#seccompprofile-v1-core) + +Code Reference: [server_group_security_context_spec.go:57](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L57) + +### .spec.single.securityContext.seLinuxOptions: core.SELinuxOptions + +SELinuxOptions are the labels to be applied to the container + +Links: +* [Documentation of core.SELinuxOptions](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#selinuxoptions-v1-core) + +Code Reference: [server_group_security_context_spec.go:62](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L62) + +### .spec.single.securityContext.supplementalGroups: []int64 + +Code Reference: [server_group_security_context_spec.go:51](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L51) + +### .spec.single.serviceAccountName: string + +ServiceAccountName specifies the name of the service account used for Pods in this group. + +Code Reference: [server_group_spec.go:112](/pkg/apis/deployment/v1/server_group_spec.go#L112) + +### .spec.single.shutdownDelay: int + +ShutdownDelay define how long operator should delay finalizer removal after shutdown + +Code Reference: [server_group_spec.go:163](/pkg/apis/deployment/v1/server_group_spec.go#L163) + +### .spec.single.shutdownMethod: string + +ShutdownMethod describe procedure of member shutdown taken by Operator + +Code Reference: [server_group_spec.go:161](/pkg/apis/deployment/v1/server_group_spec.go#L161) + +### .spec.single.sidecarCoreNames: []string + +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. + +Code Reference: [server_group_spec.go:141](/pkg/apis/deployment/v1/server_group_spec.go#L141) + +### .spec.single.sidecars: []core.Container + +Sidecars specifies a list of additional containers to be started + +Links: +* [Documentation of core.Container](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#container-v1-core) + +Code Reference: [server_group_spec.go:145](/pkg/apis/deployment/v1/server_group_spec.go#L145) + +### .spec.single.storageClassName: string + +StorageClassName specifies the classname for storage of the servers. + +Code Reference: [server_group_spec.go:84](/pkg/apis/deployment/v1/server_group_spec.go#L84) + +### .spec.single.terminationGracePeriodSeconds: int64 + +TerminationGracePeriodSeconds override default TerminationGracePeriodSeconds for pods - via silent rotation + +Code Reference: [server_group_spec.go:173](/pkg/apis/deployment/v1/server_group_spec.go#L173) + +### .spec.single.tolerations: []core.Toleration + +Tolerations specifies the tolerations added to Pods in this group. + +Links: +* [Documentation of core.Toleration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#toleration-v1-core) + +Code Reference: [server_group_spec.go:96](/pkg/apis/deployment/v1/server_group_spec.go#L96) + +### .spec.single.volumeAllowShrink: bool + +Deprecated: VolumeAllowShrink allows shrink the volume + +Code Reference: [server_group_spec.go:126](/pkg/apis/deployment/v1/server_group_spec.go#L126) + +### .spec.single.volumeClaimTemplate: core.PersistentVolumeClaim + +VolumeClaimTemplate specifies a template for volume claims + +Links: +* [Documentation of core.PersistentVolumeClaim](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#persistentvolumeclaim-v1-core) + +Code Reference: [server_group_spec.go:122](/pkg/apis/deployment/v1/server_group_spec.go#L122) + +### .spec.single.volumeMounts: []ServerGroupSpecVolumeMount + +VolumeMounts define list of volume mounts mounted into server container + +Links: +* [Documentation of ServerGroupSpecVolumeMount](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#volumemount-v1-core) + +Code Reference: [server_group_spec.go:153](/pkg/apis/deployment/v1/server_group_spec.go#L153) + +### .spec.single.volumes\[int\].configMap: core.ConfigMapVolumeSource + +ConfigMap which should be mounted into pod + +Links: +* [Documentation of core.ConfigMapVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#configmapvolumesource-v1-core) + +Code Reference: [server_group_volume.go:138](/pkg/apis/deployment/v1/server_group_volume.go#L138) + +### .spec.single.volumes\[int\].emptyDir: core.EmptyDirVolumeSource + +EmptyDir + +Links: +* [Documentation of core.EmptyDirVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#emptydirvolumesource-v1-core) + +Code Reference: [server_group_volume.go:143](/pkg/apis/deployment/v1/server_group_volume.go#L143) + +### .spec.single.volumes\[int\].hostPath: core.HostPathVolumeSource + +HostPath + +Links: +* [Documentation of core.HostPathVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#hostpathvolumesource-v1-core) + +Code Reference: [server_group_volume.go:148](/pkg/apis/deployment/v1/server_group_volume.go#L148) + +### .spec.single.volumes\[int\].name: string + +Name of volume + +Code Reference: [server_group_volume.go:128](/pkg/apis/deployment/v1/server_group_volume.go#L128) + +### .spec.single.volumes\[int\].persistentVolumeClaim: core.PersistentVolumeClaimVolumeSource + +PersistentVolumeClaim + +Links: +* [Documentation of core.PersistentVolumeClaimVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#persistentvolumeclaimvolumesource-v1-core) + +Code Reference: [server_group_volume.go:153](/pkg/apis/deployment/v1/server_group_volume.go#L153) + +### .spec.single.volumes\[int\].secret: core.SecretVolumeSource + +Secret which should be mounted into pod + +Links: +* [Documentation of core.SecretVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#secretvolumesource-v1-core) + +Code Reference: [server_group_volume.go:133](/pkg/apis/deployment/v1/server_group_volume.go#L133) + +### .spec.storageEngine: string + +Code Reference: [deployment_spec.go:116](/pkg/apis/deployment/v1/deployment_spec.go#L116) + +### .spec.sync.auth.clientCASecretName: string + +Code Reference: [sync_authentication_spec.go:32](/pkg/apis/deployment/v1/sync_authentication_spec.go#L32) + +### .spec.sync.auth.jwtSecretName: string + +Code Reference: [sync_authentication_spec.go:31](/pkg/apis/deployment/v1/sync_authentication_spec.go#L31) + +### .spec.sync.enabled: bool + +Code Reference: [sync_spec.go:30](/pkg/apis/deployment/v1/sync_spec.go#L30) + +### .spec.sync.externalAccess.accessPackageSecretNames: []string + +Code Reference: [sync_external_access_spec.go:36](/pkg/apis/deployment/v1/sync_external_access_spec.go#L36) + +### .spec.sync.externalAccess.advertisedEndpoint: string + +AdvertisedEndpoint is passed to the coordinators/single servers for advertising a specific endpoint + +Code Reference: [external_access_spec.go:45](/pkg/apis/deployment/v1/external_access_spec.go#L45) + +### .spec.sync.externalAccess.loadBalancerIP: string + +Optional IP used to configure a load-balancer on, in case of Auto or LoadBalancer type. + +Code Reference: [external_access_spec.go:38](/pkg/apis/deployment/v1/external_access_spec.go#L38) + +### .spec.sync.externalAccess.loadBalancerSourceRanges: []string + +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. + +More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/ + +Code Reference: [external_access_spec.go:43](/pkg/apis/deployment/v1/external_access_spec.go#L43) + +### .spec.sync.externalAccess.managedServiceNames: []string + +ManagedServiceNames keeps names of services which are not managed by KubeArangoDB. + +It is only relevant when type of service is `managed`. + +Code Reference: [external_access_spec.go:48](/pkg/apis/deployment/v1/external_access_spec.go#L48) + +### .spec.sync.externalAccess.masterEndpoint: []string + +Code Reference: [sync_external_access_spec.go:35](/pkg/apis/deployment/v1/sync_external_access_spec.go#L35) + +### .spec.sync.externalAccess.nodePort: int + +Optional port used in case of Auto or NodePort type. + +Code Reference: [external_access_spec.go:36](/pkg/apis/deployment/v1/external_access_spec.go#L36) + +### .spec.sync.externalAccess.type: string + +Type of external access + +Code Reference: [external_access_spec.go:34](/pkg/apis/deployment/v1/external_access_spec.go#L34) + +### .spec.sync.image: string + +Code Reference: [sync_spec.go:36](/pkg/apis/deployment/v1/sync_spec.go#L36) + +### .spec.sync.monitoring.tokenSecretName: string + +Code Reference: [sync_monitoring_spec.go:31](/pkg/apis/deployment/v1/sync_monitoring_spec.go#L31) + +### .spec.sync.tls.altNames: []string + +Code Reference: [tls_spec.go:58](/pkg/apis/deployment/v1/tls_spec.go#L58) + +### .spec.sync.tls.caSecretName: string + +Code Reference: [tls_spec.go:57](/pkg/apis/deployment/v1/tls_spec.go#L57) + +### .spec.sync.tls.mode: string + +Code Reference: [tls_spec.go:61](/pkg/apis/deployment/v1/tls_spec.go#L61) + +### .spec.sync.tls.sni.mapping.\: []string + +Code Reference: [tls_sni_spec.go:30](/pkg/apis/deployment/v1/tls_sni_spec.go#L30) + +### .spec.sync.tls.ttl: string + +Code Reference: [tls_spec.go:59](/pkg/apis/deployment/v1/tls_spec.go#L59) + +### .spec.syncmasters.affinity: core.PodAffinity + +Affinity specified additional affinity settings in ArangoDB Pod definitions + +Links: +* [Documentation of core.PodAffinity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#podaffinity-v1-core) + +Code Reference: [server_group_spec.go:134](/pkg/apis/deployment/v1/server_group_spec.go#L134) + +### .spec.syncmasters.allowMemberRecreation: bool + +AllowMemberRecreation allows to recreate member. Value is used only for Coordinator and DBServer with default to True, for all other groups set to false. + +Code Reference: [server_group_spec.go:171](/pkg/apis/deployment/v1/server_group_spec.go#L171) + +### .spec.syncmasters.annotations: map[string]string + +Annotations specified the annotations added to Pods in this group. + +Code Reference: [server_group_spec.go:98](/pkg/apis/deployment/v1/server_group_spec.go#L98) + +### .spec.syncmasters.annotationsIgnoreList: []string + +AnnotationsIgnoreList list regexp or plain definitions which annotations should be ignored + +Code Reference: [server_group_spec.go:100](/pkg/apis/deployment/v1/server_group_spec.go#L100) + +### .spec.syncmasters.annotationsMode: string + +AnnotationsMode Define annotations mode which should be use while overriding annotations + +Code Reference: [server_group_spec.go:102](/pkg/apis/deployment/v1/server_group_spec.go#L102) + +### .spec.syncmasters.antiAffinity: core.PodAntiAffinity + +AntiAffinity specified additional antiAffinity settings in ArangoDB Pod definitions + +Links: +* [Documentation of core.Pod.AntiAffinity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#podantiaffinity-v1-core) + +Code Reference: [server_group_spec.go:130](/pkg/apis/deployment/v1/server_group_spec.go#L130) + +### .spec.syncmasters.args: []string + +Args holds additional commandline arguments + +Code Reference: [server_group_spec.go:78](/pkg/apis/deployment/v1/server_group_spec.go#L78) + +### .spec.syncmasters.count: int + +Count holds the requested number of servers + +Code Reference: [server_group_spec.go:72](/pkg/apis/deployment/v1/server_group_spec.go#L72) + +### .spec.syncmasters.entrypoint: string + +Entrypoint overrides container executable + +Code Reference: [server_group_spec.go:80](/pkg/apis/deployment/v1/server_group_spec.go#L80) + +### .spec.syncmasters.envs\[int\].name: string + +Code Reference: [server_group_env_var.go:26](/pkg/apis/deployment/v1/server_group_env_var.go#L26) + +### .spec.syncmasters.envs\[int\].value: string + +Code Reference: [server_group_env_var.go:27](/pkg/apis/deployment/v1/server_group_env_var.go#L27) + +### .spec.syncmasters.ephemeralVolumes.apps.size: resource.Quantity + +Size define size of the ephemeral volume + +Links: +* [Documentation of resource.Quantity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#quantity-resource-core) + +Code Reference: [server_group_ephemeral_volumes.go:64](/pkg/apis/deployment/v1/server_group_ephemeral_volumes.go#L64) + +### .spec.syncmasters.ephemeralVolumes.temp.size: resource.Quantity + +Size define size of the ephemeral volume + +Links: +* [Documentation of resource.Quantity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#quantity-resource-core) + +Code Reference: [server_group_ephemeral_volumes.go:64](/pkg/apis/deployment/v1/server_group_ephemeral_volumes.go#L64) + +### .spec.syncmasters.exporterPort: uint16 + +ExporterPort define Port used by exporter + +Code Reference: [server_group_spec.go:182](/pkg/apis/deployment/v1/server_group_spec.go#L182) + +### .spec.syncmasters.extendedRotationCheck: bool + +ExtendedRotationCheck extend checks for rotation + +Code Reference: [server_group_spec.go:157](/pkg/apis/deployment/v1/server_group_spec.go#L157) + +### .spec.syncmasters.externalPortEnabled: bool + +ExternalPortEnabled if external port should be enabled. If is set to false, ports needs to be exposed via sidecar. Only for ArangoD members + +Code Reference: [server_group_spec.go:169](/pkg/apis/deployment/v1/server_group_spec.go#L169) + +### .spec.syncmasters.indexMethod: string + +IndexMethod define group Indexing method + +Code Reference: [server_group_spec.go:175](/pkg/apis/deployment/v1/server_group_spec.go#L175) + +### .spec.syncmasters.initContainers.containers: []core.Container + +Containers contains list of containers + +Links: +* [Documentation of core.Container](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#container-v1-core) + +Code Reference: [server_group_init_containers.go:91](/pkg/apis/deployment/v1/server_group_init_containers.go#L91) + +### .spec.syncmasters.initContainers.mode: string + +Mode keep container replace mode + +Code Reference: [server_group_init_containers.go:94](/pkg/apis/deployment/v1/server_group_init_containers.go#L94) + +### .spec.syncmasters.internalPort: int + +InternalPort define port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members + +Code Reference: [server_group_spec.go:165](/pkg/apis/deployment/v1/server_group_spec.go#L165) + +### .spec.syncmasters.internalPortProtocol: string + +InternalPortProtocol define protocol of port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members + +Code Reference: [server_group_spec.go:167](/pkg/apis/deployment/v1/server_group_spec.go#L167) + +### .spec.syncmasters.labels: map[string]string + +Labels specified the labels added to Pods in this group. + +Code Reference: [server_group_spec.go:104](/pkg/apis/deployment/v1/server_group_spec.go#L104) + +### .spec.syncmasters.labelsIgnoreList: []string + +LabelsIgnoreList list regexp or plain definitions which labels should be ignored + +Code Reference: [server_group_spec.go:106](/pkg/apis/deployment/v1/server_group_spec.go#L106) + +### .spec.syncmasters.labelsMode: string + +LabelsMode Define labels mode which should be use while overriding labels + +Code Reference: [server_group_spec.go:108](/pkg/apis/deployment/v1/server_group_spec.go#L108) + +### .spec.syncmasters.maxCount: int + +MaxCount specifies a upper limit for count + +Code Reference: [server_group_spec.go:76](/pkg/apis/deployment/v1/server_group_spec.go#L76) + +### .spec.syncmasters.minCount: int + +MinCount specifies a lower limit for count + +Code Reference: [server_group_spec.go:74](/pkg/apis/deployment/v1/server_group_spec.go#L74) + +### .spec.syncmasters.nodeAffinity: core.NodeAffinity + +NodeAffinity specified additional nodeAffinity settings in ArangoDB Pod definitions + +Links: +* [Documentation of code.NodeAffinity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#nodeaffinity-v1-core) + +Code Reference: [server_group_spec.go:138](/pkg/apis/deployment/v1/server_group_spec.go#L138) + +### .spec.syncmasters.nodeSelector: map[string]string + +NodeSelector speficies a set of selectors for nodes + +Code Reference: [server_group_spec.go:114](/pkg/apis/deployment/v1/server_group_spec.go#L114) + +### .spec.syncmasters.overrideDetectedNumberOfCores: bool + +OverrideDetectedNumberOfCores determines if number of cores should be overrided based on values in resources. + +Code Reference: [server_group_spec.go:92](/pkg/apis/deployment/v1/server_group_spec.go#L92) + +### .spec.syncmasters.overrideDetectedTotalMemory: bool + +OverrideDetectedTotalMemory determines if memory should be overrided based on values in resources. + +Code Reference: [server_group_spec.go:90](/pkg/apis/deployment/v1/server_group_spec.go#L90) + +### .spec.syncmasters.podModes.network: string + +Code Reference: [server_group_spec_pod_modes.go:31](/pkg/apis/deployment/v1/server_group_spec_pod_modes.go#L31) + +### .spec.syncmasters.podModes.pid: string + +Code Reference: [server_group_spec_pod_modes.go:32](/pkg/apis/deployment/v1/server_group_spec_pod_modes.go#L32) + +### .spec.syncmasters.port: uint16 + +Port define Port used by member + +Code Reference: [server_group_spec.go:180](/pkg/apis/deployment/v1/server_group_spec.go#L180) + +### .spec.syncmasters.priorityClassName: string + +PriorityClassName specifies a priority class name + +Code Reference: [server_group_spec.go:118](/pkg/apis/deployment/v1/server_group_spec.go#L118) + +### .spec.syncmasters.probes.livenessProbeDisabled: bool + +LivenessProbeDisabled if true livenessProbes are disabled + +Code Reference: [server_group_spec.go:188](/pkg/apis/deployment/v1/server_group_spec.go#L188) + +### .spec.syncmasters.probes.livenessProbeSpec.failureThreshold: int32 + +Code Reference: [server_group_spec.go:222](/pkg/apis/deployment/v1/server_group_spec.go#L222) + +### .spec.syncmasters.probes.livenessProbeSpec.initialDelaySeconds: int32 + +Code Reference: [server_group_spec.go:218](/pkg/apis/deployment/v1/server_group_spec.go#L218) + +### .spec.syncmasters.probes.livenessProbeSpec.periodSeconds: int32 + +Code Reference: [server_group_spec.go:219](/pkg/apis/deployment/v1/server_group_spec.go#L219) + +### .spec.syncmasters.probes.livenessProbeSpec.successThreshold: int32 + +Code Reference: [server_group_spec.go:221](/pkg/apis/deployment/v1/server_group_spec.go#L221) + +### .spec.syncmasters.probes.livenessProbeSpec.timeoutSeconds: int32 + +Code Reference: [server_group_spec.go:220](/pkg/apis/deployment/v1/server_group_spec.go#L220) + +### .spec.syncmasters.probes.ReadinessProbeDisabled: bool + +OldReadinessProbeDisabled if true readinessProbes are disabled + +Deprecated: This field is deprecated, keept only for backward compatibility. + +Code Reference: [server_group_spec.go:195](/pkg/apis/deployment/v1/server_group_spec.go#L195) + +### .spec.syncmasters.probes.readinessProbeDisabled: bool + +ReadinessProbeDisabled override flag for probe disabled in good manner (lowercase) with backward compatibility + +Code Reference: [server_group_spec.go:197](/pkg/apis/deployment/v1/server_group_spec.go#L197) + +### .spec.syncmasters.probes.readinessProbeSpec.failureThreshold: int32 + +Code Reference: [server_group_spec.go:222](/pkg/apis/deployment/v1/server_group_spec.go#L222) + +### .spec.syncmasters.probes.readinessProbeSpec.initialDelaySeconds: int32 + +Code Reference: [server_group_spec.go:218](/pkg/apis/deployment/v1/server_group_spec.go#L218) + +### .spec.syncmasters.probes.readinessProbeSpec.periodSeconds: int32 + +Code Reference: [server_group_spec.go:219](/pkg/apis/deployment/v1/server_group_spec.go#L219) + +### .spec.syncmasters.probes.readinessProbeSpec.successThreshold: int32 + +Code Reference: [server_group_spec.go:221](/pkg/apis/deployment/v1/server_group_spec.go#L221) + +### .spec.syncmasters.probes.readinessProbeSpec.timeoutSeconds: int32 + +Code Reference: [server_group_spec.go:220](/pkg/apis/deployment/v1/server_group_spec.go#L220) + +### .spec.syncmasters.probes.startupProbeDisabled: bool + +StartupProbeDisabled if true startupProbes are disabled + +Code Reference: [server_group_spec.go:202](/pkg/apis/deployment/v1/server_group_spec.go#L202) + +### .spec.syncmasters.probes.startupProbeSpec.failureThreshold: int32 + +Code Reference: [server_group_spec.go:222](/pkg/apis/deployment/v1/server_group_spec.go#L222) + +### .spec.syncmasters.probes.startupProbeSpec.initialDelaySeconds: int32 + +Code Reference: [server_group_spec.go:218](/pkg/apis/deployment/v1/server_group_spec.go#L218) + +### .spec.syncmasters.probes.startupProbeSpec.periodSeconds: int32 + +Code Reference: [server_group_spec.go:219](/pkg/apis/deployment/v1/server_group_spec.go#L219) + +### .spec.syncmasters.probes.startupProbeSpec.successThreshold: int32 + +Code Reference: [server_group_spec.go:221](/pkg/apis/deployment/v1/server_group_spec.go#L221) + +### .spec.syncmasters.probes.startupProbeSpec.timeoutSeconds: int32 + +Code Reference: [server_group_spec.go:220](/pkg/apis/deployment/v1/server_group_spec.go#L220) + +### .spec.syncmasters.pvcResizeMode: string + +VolumeResizeMode specified resize mode for pvc + +Code Reference: [server_group_spec.go:124](/pkg/apis/deployment/v1/server_group_spec.go#L124) + +### .spec.syncmasters.resources: core.ResourceRequirements + +Resources holds resource requests & limits + +Links: +* [Documentation of core.ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#resourcerequirements-v1-core) + +Code Reference: [server_group_spec.go:88](/pkg/apis/deployment/v1/server_group_spec.go#L88) + +### .spec.syncmasters.schedulerName: string + +SchedulerName define scheduler name used for group + +Code Reference: [server_group_spec.go:82](/pkg/apis/deployment/v1/server_group_spec.go#L82) + +### .spec.syncmasters.securityContext.addCapabilities: []string + +AddCapabilities add new capabilities to containers + +Code Reference: [server_group_security_context_spec.go:42](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L42) + +### .spec.syncmasters.securityContext.allowPrivilegeEscalation: bool + +Code Reference: [server_group_security_context_spec.go:44](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L44) + +### .spec.syncmasters.securityContext.dropAllCapabilities: bool + +DropAllCapabilities specifies if capabilities should be dropped for this pod containers + +Deprecated: This field is added for backward compatibility. Will be removed in 1.1.0. + +Code Reference: [server_group_security_context_spec.go:40](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L40) + +### .spec.syncmasters.securityContext.fsGroup: int64 + +Code Reference: [server_group_security_context_spec.go:52](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L52) + +### .spec.syncmasters.securityContext.privileged: bool + +Code Reference: [server_group_security_context_spec.go:45](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L45) + +### .spec.syncmasters.securityContext.readOnlyRootFilesystem: bool + +Code Reference: [server_group_security_context_spec.go:46](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L46) + +### .spec.syncmasters.securityContext.runAsGroup: int64 + +Code Reference: [server_group_security_context_spec.go:49](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L49) + +### .spec.syncmasters.securityContext.runAsNonRoot: bool + +Code Reference: [server_group_security_context_spec.go:47](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L47) + +### .spec.syncmasters.securityContext.runAsUser: int64 + +Code Reference: [server_group_security_context_spec.go:48](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L48) + +### .spec.syncmasters.securityContext.seccompProfile: core.SeccompProfile + +SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set. + +Links: +* [Documentation of core.SeccompProfile](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#seccompprofile-v1-core) + +Code Reference: [server_group_security_context_spec.go:57](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L57) + +### .spec.syncmasters.securityContext.seLinuxOptions: core.SELinuxOptions + +SELinuxOptions are the labels to be applied to the container + +Links: +* [Documentation of core.SELinuxOptions](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#selinuxoptions-v1-core) + +Code Reference: [server_group_security_context_spec.go:62](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L62) + +### .spec.syncmasters.securityContext.supplementalGroups: []int64 + +Code Reference: [server_group_security_context_spec.go:51](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L51) + +### .spec.syncmasters.serviceAccountName: string + +ServiceAccountName specifies the name of the service account used for Pods in this group. + +Code Reference: [server_group_spec.go:112](/pkg/apis/deployment/v1/server_group_spec.go#L112) + +### .spec.syncmasters.shutdownDelay: int + +ShutdownDelay define how long operator should delay finalizer removal after shutdown + +Code Reference: [server_group_spec.go:163](/pkg/apis/deployment/v1/server_group_spec.go#L163) + +### .spec.syncmasters.shutdownMethod: string + +ShutdownMethod describe procedure of member shutdown taken by Operator + +Code Reference: [server_group_spec.go:161](/pkg/apis/deployment/v1/server_group_spec.go#L161) + +### .spec.syncmasters.sidecarCoreNames: []string + +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. + +Code Reference: [server_group_spec.go:141](/pkg/apis/deployment/v1/server_group_spec.go#L141) + +### .spec.syncmasters.sidecars: []core.Container + +Sidecars specifies a list of additional containers to be started + +Links: +* [Documentation of core.Container](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#container-v1-core) + +Code Reference: [server_group_spec.go:145](/pkg/apis/deployment/v1/server_group_spec.go#L145) + +### .spec.syncmasters.storageClassName: string + +StorageClassName specifies the classname for storage of the servers. + +Code Reference: [server_group_spec.go:84](/pkg/apis/deployment/v1/server_group_spec.go#L84) + +### .spec.syncmasters.terminationGracePeriodSeconds: int64 + +TerminationGracePeriodSeconds override default TerminationGracePeriodSeconds for pods - via silent rotation + +Code Reference: [server_group_spec.go:173](/pkg/apis/deployment/v1/server_group_spec.go#L173) + +### .spec.syncmasters.tolerations: []core.Toleration + +Tolerations specifies the tolerations added to Pods in this group. + +Links: +* [Documentation of core.Toleration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#toleration-v1-core) + +Code Reference: [server_group_spec.go:96](/pkg/apis/deployment/v1/server_group_spec.go#L96) + +### .spec.syncmasters.volumeAllowShrink: bool + +Deprecated: VolumeAllowShrink allows shrink the volume + +Code Reference: [server_group_spec.go:126](/pkg/apis/deployment/v1/server_group_spec.go#L126) + +### .spec.syncmasters.volumeClaimTemplate: core.PersistentVolumeClaim + +VolumeClaimTemplate specifies a template for volume claims + +Links: +* [Documentation of core.PersistentVolumeClaim](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#persistentvolumeclaim-v1-core) + +Code Reference: [server_group_spec.go:122](/pkg/apis/deployment/v1/server_group_spec.go#L122) + +### .spec.syncmasters.volumeMounts: []ServerGroupSpecVolumeMount + +VolumeMounts define list of volume mounts mounted into server container + +Links: +* [Documentation of ServerGroupSpecVolumeMount](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#volumemount-v1-core) + +Code Reference: [server_group_spec.go:153](/pkg/apis/deployment/v1/server_group_spec.go#L153) + +### .spec.syncmasters.volumes\[int\].configMap: core.ConfigMapVolumeSource + +ConfigMap which should be mounted into pod + +Links: +* [Documentation of core.ConfigMapVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#configmapvolumesource-v1-core) + +Code Reference: [server_group_volume.go:138](/pkg/apis/deployment/v1/server_group_volume.go#L138) + +### .spec.syncmasters.volumes\[int\].emptyDir: core.EmptyDirVolumeSource + +EmptyDir + +Links: +* [Documentation of core.EmptyDirVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#emptydirvolumesource-v1-core) + +Code Reference: [server_group_volume.go:143](/pkg/apis/deployment/v1/server_group_volume.go#L143) + +### .spec.syncmasters.volumes\[int\].hostPath: core.HostPathVolumeSource + +HostPath + +Links: +* [Documentation of core.HostPathVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#hostpathvolumesource-v1-core) + +Code Reference: [server_group_volume.go:148](/pkg/apis/deployment/v1/server_group_volume.go#L148) + +### .spec.syncmasters.volumes\[int\].name: string + +Name of volume + +Code Reference: [server_group_volume.go:128](/pkg/apis/deployment/v1/server_group_volume.go#L128) + +### .spec.syncmasters.volumes\[int\].persistentVolumeClaim: core.PersistentVolumeClaimVolumeSource + +PersistentVolumeClaim + +Links: +* [Documentation of core.PersistentVolumeClaimVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#persistentvolumeclaimvolumesource-v1-core) + +Code Reference: [server_group_volume.go:153](/pkg/apis/deployment/v1/server_group_volume.go#L153) + +### .spec.syncmasters.volumes\[int\].secret: core.SecretVolumeSource + +Secret which should be mounted into pod + +Links: +* [Documentation of core.SecretVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#secretvolumesource-v1-core) + +Code Reference: [server_group_volume.go:133](/pkg/apis/deployment/v1/server_group_volume.go#L133) + +### .spec.syncworkers.affinity: core.PodAffinity + +Affinity specified additional affinity settings in ArangoDB Pod definitions + +Links: +* [Documentation of core.PodAffinity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#podaffinity-v1-core) + +Code Reference: [server_group_spec.go:134](/pkg/apis/deployment/v1/server_group_spec.go#L134) + +### .spec.syncworkers.allowMemberRecreation: bool + +AllowMemberRecreation allows to recreate member. Value is used only for Coordinator and DBServer with default to True, for all other groups set to false. + +Code Reference: [server_group_spec.go:171](/pkg/apis/deployment/v1/server_group_spec.go#L171) + +### .spec.syncworkers.annotations: map[string]string + +Annotations specified the annotations added to Pods in this group. + +Code Reference: [server_group_spec.go:98](/pkg/apis/deployment/v1/server_group_spec.go#L98) + +### .spec.syncworkers.annotationsIgnoreList: []string + +AnnotationsIgnoreList list regexp or plain definitions which annotations should be ignored + +Code Reference: [server_group_spec.go:100](/pkg/apis/deployment/v1/server_group_spec.go#L100) + +### .spec.syncworkers.annotationsMode: string + +AnnotationsMode Define annotations mode which should be use while overriding annotations + +Code Reference: [server_group_spec.go:102](/pkg/apis/deployment/v1/server_group_spec.go#L102) + +### .spec.syncworkers.antiAffinity: core.PodAntiAffinity + +AntiAffinity specified additional antiAffinity settings in ArangoDB Pod definitions + +Links: +* [Documentation of core.Pod.AntiAffinity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#podantiaffinity-v1-core) + +Code Reference: [server_group_spec.go:130](/pkg/apis/deployment/v1/server_group_spec.go#L130) + +### .spec.syncworkers.args: []string + +Args holds additional commandline arguments + +Code Reference: [server_group_spec.go:78](/pkg/apis/deployment/v1/server_group_spec.go#L78) + +### .spec.syncworkers.count: int + +Count holds the requested number of servers + +Code Reference: [server_group_spec.go:72](/pkg/apis/deployment/v1/server_group_spec.go#L72) + +### .spec.syncworkers.entrypoint: string + +Entrypoint overrides container executable + +Code Reference: [server_group_spec.go:80](/pkg/apis/deployment/v1/server_group_spec.go#L80) + +### .spec.syncworkers.envs\[int\].name: string + +Code Reference: [server_group_env_var.go:26](/pkg/apis/deployment/v1/server_group_env_var.go#L26) + +### .spec.syncworkers.envs\[int\].value: string + +Code Reference: [server_group_env_var.go:27](/pkg/apis/deployment/v1/server_group_env_var.go#L27) + +### .spec.syncworkers.ephemeralVolumes.apps.size: resource.Quantity + +Size define size of the ephemeral volume + +Links: +* [Documentation of resource.Quantity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#quantity-resource-core) + +Code Reference: [server_group_ephemeral_volumes.go:64](/pkg/apis/deployment/v1/server_group_ephemeral_volumes.go#L64) + +### .spec.syncworkers.ephemeralVolumes.temp.size: resource.Quantity + +Size define size of the ephemeral volume + +Links: +* [Documentation of resource.Quantity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#quantity-resource-core) + +Code Reference: [server_group_ephemeral_volumes.go:64](/pkg/apis/deployment/v1/server_group_ephemeral_volumes.go#L64) + +### .spec.syncworkers.exporterPort: uint16 + +ExporterPort define Port used by exporter + +Code Reference: [server_group_spec.go:182](/pkg/apis/deployment/v1/server_group_spec.go#L182) + +### .spec.syncworkers.extendedRotationCheck: bool + +ExtendedRotationCheck extend checks for rotation + +Code Reference: [server_group_spec.go:157](/pkg/apis/deployment/v1/server_group_spec.go#L157) + +### .spec.syncworkers.externalPortEnabled: bool + +ExternalPortEnabled if external port should be enabled. If is set to false, ports needs to be exposed via sidecar. Only for ArangoD members + +Code Reference: [server_group_spec.go:169](/pkg/apis/deployment/v1/server_group_spec.go#L169) + +### .spec.syncworkers.indexMethod: string + +IndexMethod define group Indexing method + +Code Reference: [server_group_spec.go:175](/pkg/apis/deployment/v1/server_group_spec.go#L175) + +### .spec.syncworkers.initContainers.containers: []core.Container + +Containers contains list of containers + +Links: +* [Documentation of core.Container](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#container-v1-core) + +Code Reference: [server_group_init_containers.go:91](/pkg/apis/deployment/v1/server_group_init_containers.go#L91) + +### .spec.syncworkers.initContainers.mode: string + +Mode keep container replace mode + +Code Reference: [server_group_init_containers.go:94](/pkg/apis/deployment/v1/server_group_init_containers.go#L94) + +### .spec.syncworkers.internalPort: int + +InternalPort define port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members + +Code Reference: [server_group_spec.go:165](/pkg/apis/deployment/v1/server_group_spec.go#L165) + +### .spec.syncworkers.internalPortProtocol: string + +InternalPortProtocol define protocol of port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members + +Code Reference: [server_group_spec.go:167](/pkg/apis/deployment/v1/server_group_spec.go#L167) + +### .spec.syncworkers.labels: map[string]string + +Labels specified the labels added to Pods in this group. + +Code Reference: [server_group_spec.go:104](/pkg/apis/deployment/v1/server_group_spec.go#L104) + +### .spec.syncworkers.labelsIgnoreList: []string + +LabelsIgnoreList list regexp or plain definitions which labels should be ignored + +Code Reference: [server_group_spec.go:106](/pkg/apis/deployment/v1/server_group_spec.go#L106) + +### .spec.syncworkers.labelsMode: string + +LabelsMode Define labels mode which should be use while overriding labels + +Code Reference: [server_group_spec.go:108](/pkg/apis/deployment/v1/server_group_spec.go#L108) + +### .spec.syncworkers.maxCount: int + +MaxCount specifies a upper limit for count + +Code Reference: [server_group_spec.go:76](/pkg/apis/deployment/v1/server_group_spec.go#L76) + +### .spec.syncworkers.minCount: int + +MinCount specifies a lower limit for count + +Code Reference: [server_group_spec.go:74](/pkg/apis/deployment/v1/server_group_spec.go#L74) + +### .spec.syncworkers.nodeAffinity: core.NodeAffinity + +NodeAffinity specified additional nodeAffinity settings in ArangoDB Pod definitions + +Links: +* [Documentation of code.NodeAffinity](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#nodeaffinity-v1-core) + +Code Reference: [server_group_spec.go:138](/pkg/apis/deployment/v1/server_group_spec.go#L138) + +### .spec.syncworkers.nodeSelector: map[string]string + +NodeSelector speficies a set of selectors for nodes + +Code Reference: [server_group_spec.go:114](/pkg/apis/deployment/v1/server_group_spec.go#L114) + +### .spec.syncworkers.overrideDetectedNumberOfCores: bool + +OverrideDetectedNumberOfCores determines if number of cores should be overrided based on values in resources. + +Code Reference: [server_group_spec.go:92](/pkg/apis/deployment/v1/server_group_spec.go#L92) + +### .spec.syncworkers.overrideDetectedTotalMemory: bool + +OverrideDetectedTotalMemory determines if memory should be overrided based on values in resources. + +Code Reference: [server_group_spec.go:90](/pkg/apis/deployment/v1/server_group_spec.go#L90) + +### .spec.syncworkers.podModes.network: string + +Code Reference: [server_group_spec_pod_modes.go:31](/pkg/apis/deployment/v1/server_group_spec_pod_modes.go#L31) + +### .spec.syncworkers.podModes.pid: string + +Code Reference: [server_group_spec_pod_modes.go:32](/pkg/apis/deployment/v1/server_group_spec_pod_modes.go#L32) + +### .spec.syncworkers.port: uint16 + +Port define Port used by member + +Code Reference: [server_group_spec.go:180](/pkg/apis/deployment/v1/server_group_spec.go#L180) + +### .spec.syncworkers.priorityClassName: string + +PriorityClassName specifies a priority class name + +Code Reference: [server_group_spec.go:118](/pkg/apis/deployment/v1/server_group_spec.go#L118) + +### .spec.syncworkers.probes.livenessProbeDisabled: bool + +LivenessProbeDisabled if true livenessProbes are disabled + +Code Reference: [server_group_spec.go:188](/pkg/apis/deployment/v1/server_group_spec.go#L188) + +### .spec.syncworkers.probes.livenessProbeSpec.failureThreshold: int32 + +Code Reference: [server_group_spec.go:222](/pkg/apis/deployment/v1/server_group_spec.go#L222) + +### .spec.syncworkers.probes.livenessProbeSpec.initialDelaySeconds: int32 + +Code Reference: [server_group_spec.go:218](/pkg/apis/deployment/v1/server_group_spec.go#L218) + +### .spec.syncworkers.probes.livenessProbeSpec.periodSeconds: int32 + +Code Reference: [server_group_spec.go:219](/pkg/apis/deployment/v1/server_group_spec.go#L219) + +### .spec.syncworkers.probes.livenessProbeSpec.successThreshold: int32 + +Code Reference: [server_group_spec.go:221](/pkg/apis/deployment/v1/server_group_spec.go#L221) + +### .spec.syncworkers.probes.livenessProbeSpec.timeoutSeconds: int32 + +Code Reference: [server_group_spec.go:220](/pkg/apis/deployment/v1/server_group_spec.go#L220) + +### .spec.syncworkers.probes.ReadinessProbeDisabled: bool + +OldReadinessProbeDisabled if true readinessProbes are disabled + +Deprecated: This field is deprecated, keept only for backward compatibility. + +Code Reference: [server_group_spec.go:195](/pkg/apis/deployment/v1/server_group_spec.go#L195) + +### .spec.syncworkers.probes.readinessProbeDisabled: bool + +ReadinessProbeDisabled override flag for probe disabled in good manner (lowercase) with backward compatibility + +Code Reference: [server_group_spec.go:197](/pkg/apis/deployment/v1/server_group_spec.go#L197) + +### .spec.syncworkers.probes.readinessProbeSpec.failureThreshold: int32 + +Code Reference: [server_group_spec.go:222](/pkg/apis/deployment/v1/server_group_spec.go#L222) + +### .spec.syncworkers.probes.readinessProbeSpec.initialDelaySeconds: int32 + +Code Reference: [server_group_spec.go:218](/pkg/apis/deployment/v1/server_group_spec.go#L218) + +### .spec.syncworkers.probes.readinessProbeSpec.periodSeconds: int32 + +Code Reference: [server_group_spec.go:219](/pkg/apis/deployment/v1/server_group_spec.go#L219) + +### .spec.syncworkers.probes.readinessProbeSpec.successThreshold: int32 + +Code Reference: [server_group_spec.go:221](/pkg/apis/deployment/v1/server_group_spec.go#L221) + +### .spec.syncworkers.probes.readinessProbeSpec.timeoutSeconds: int32 + +Code Reference: [server_group_spec.go:220](/pkg/apis/deployment/v1/server_group_spec.go#L220) + +### .spec.syncworkers.probes.startupProbeDisabled: bool + +StartupProbeDisabled if true startupProbes are disabled + +Code Reference: [server_group_spec.go:202](/pkg/apis/deployment/v1/server_group_spec.go#L202) + +### .spec.syncworkers.probes.startupProbeSpec.failureThreshold: int32 + +Code Reference: [server_group_spec.go:222](/pkg/apis/deployment/v1/server_group_spec.go#L222) + +### .spec.syncworkers.probes.startupProbeSpec.initialDelaySeconds: int32 + +Code Reference: [server_group_spec.go:218](/pkg/apis/deployment/v1/server_group_spec.go#L218) + +### .spec.syncworkers.probes.startupProbeSpec.periodSeconds: int32 + +Code Reference: [server_group_spec.go:219](/pkg/apis/deployment/v1/server_group_spec.go#L219) + +### .spec.syncworkers.probes.startupProbeSpec.successThreshold: int32 + +Code Reference: [server_group_spec.go:221](/pkg/apis/deployment/v1/server_group_spec.go#L221) + +### .spec.syncworkers.probes.startupProbeSpec.timeoutSeconds: int32 + +Code Reference: [server_group_spec.go:220](/pkg/apis/deployment/v1/server_group_spec.go#L220) + +### .spec.syncworkers.pvcResizeMode: string + +VolumeResizeMode specified resize mode for pvc + +Code Reference: [server_group_spec.go:124](/pkg/apis/deployment/v1/server_group_spec.go#L124) + +### .spec.syncworkers.resources: core.ResourceRequirements + +Resources holds resource requests & limits + +Links: +* [Documentation of core.ResourceRequirements](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#resourcerequirements-v1-core) + +Code Reference: [server_group_spec.go:88](/pkg/apis/deployment/v1/server_group_spec.go#L88) + +### .spec.syncworkers.schedulerName: string + +SchedulerName define scheduler name used for group + +Code Reference: [server_group_spec.go:82](/pkg/apis/deployment/v1/server_group_spec.go#L82) + +### .spec.syncworkers.securityContext.addCapabilities: []string + +AddCapabilities add new capabilities to containers + +Code Reference: [server_group_security_context_spec.go:42](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L42) + +### .spec.syncworkers.securityContext.allowPrivilegeEscalation: bool + +Code Reference: [server_group_security_context_spec.go:44](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L44) + +### .spec.syncworkers.securityContext.dropAllCapabilities: bool + +DropAllCapabilities specifies if capabilities should be dropped for this pod containers + +Deprecated: This field is added for backward compatibility. Will be removed in 1.1.0. + +Code Reference: [server_group_security_context_spec.go:40](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L40) + +### .spec.syncworkers.securityContext.fsGroup: int64 + +Code Reference: [server_group_security_context_spec.go:52](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L52) + +### .spec.syncworkers.securityContext.privileged: bool + +Code Reference: [server_group_security_context_spec.go:45](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L45) + +### .spec.syncworkers.securityContext.readOnlyRootFilesystem: bool + +Code Reference: [server_group_security_context_spec.go:46](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L46) + +### .spec.syncworkers.securityContext.runAsGroup: int64 + +Code Reference: [server_group_security_context_spec.go:49](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L49) + +### .spec.syncworkers.securityContext.runAsNonRoot: bool + +Code Reference: [server_group_security_context_spec.go:47](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L47) + +### .spec.syncworkers.securityContext.runAsUser: int64 + +Code Reference: [server_group_security_context_spec.go:48](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L48) + +### .spec.syncworkers.securityContext.seccompProfile: core.SeccompProfile + +SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set. + +Links: +* [Documentation of core.SeccompProfile](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#seccompprofile-v1-core) + +Code Reference: [server_group_security_context_spec.go:57](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L57) + +### .spec.syncworkers.securityContext.seLinuxOptions: core.SELinuxOptions + +SELinuxOptions are the labels to be applied to the container + +Links: +* [Documentation of core.SELinuxOptions](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#selinuxoptions-v1-core) + +Code Reference: [server_group_security_context_spec.go:62](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L62) + +### .spec.syncworkers.securityContext.supplementalGroups: []int64 + +Code Reference: [server_group_security_context_spec.go:51](/pkg/apis/deployment/v1/server_group_security_context_spec.go#L51) + +### .spec.syncworkers.serviceAccountName: string + +ServiceAccountName specifies the name of the service account used for Pods in this group. + +Code Reference: [server_group_spec.go:112](/pkg/apis/deployment/v1/server_group_spec.go#L112) + +### .spec.syncworkers.shutdownDelay: int + +ShutdownDelay define how long operator should delay finalizer removal after shutdown + +Code Reference: [server_group_spec.go:163](/pkg/apis/deployment/v1/server_group_spec.go#L163) + +### .spec.syncworkers.shutdownMethod: string + +ShutdownMethod describe procedure of member shutdown taken by Operator + +Code Reference: [server_group_spec.go:161](/pkg/apis/deployment/v1/server_group_spec.go#L161) + +### .spec.syncworkers.sidecarCoreNames: []string + +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. + +Code Reference: [server_group_spec.go:141](/pkg/apis/deployment/v1/server_group_spec.go#L141) + +### .spec.syncworkers.sidecars: []core.Container + +Sidecars specifies a list of additional containers to be started + +Links: +* [Documentation of core.Container](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#container-v1-core) + +Code Reference: [server_group_spec.go:145](/pkg/apis/deployment/v1/server_group_spec.go#L145) + +### .spec.syncworkers.storageClassName: string + +StorageClassName specifies the classname for storage of the servers. + +Code Reference: [server_group_spec.go:84](/pkg/apis/deployment/v1/server_group_spec.go#L84) + +### .spec.syncworkers.terminationGracePeriodSeconds: int64 + +TerminationGracePeriodSeconds override default TerminationGracePeriodSeconds for pods - via silent rotation + +Code Reference: [server_group_spec.go:173](/pkg/apis/deployment/v1/server_group_spec.go#L173) + +### .spec.syncworkers.tolerations: []core.Toleration + +Tolerations specifies the tolerations added to Pods in this group. + +Links: +* [Documentation of core.Toleration](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#toleration-v1-core) + +Code Reference: [server_group_spec.go:96](/pkg/apis/deployment/v1/server_group_spec.go#L96) + +### .spec.syncworkers.volumeAllowShrink: bool + +Deprecated: VolumeAllowShrink allows shrink the volume + +Code Reference: [server_group_spec.go:126](/pkg/apis/deployment/v1/server_group_spec.go#L126) + +### .spec.syncworkers.volumeClaimTemplate: core.PersistentVolumeClaim + +VolumeClaimTemplate specifies a template for volume claims + +Links: +* [Documentation of core.PersistentVolumeClaim](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#persistentvolumeclaim-v1-core) + +Code Reference: [server_group_spec.go:122](/pkg/apis/deployment/v1/server_group_spec.go#L122) + +### .spec.syncworkers.volumeMounts: []ServerGroupSpecVolumeMount + +VolumeMounts define list of volume mounts mounted into server container + +Links: +* [Documentation of ServerGroupSpecVolumeMount](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#volumemount-v1-core) + +Code Reference: [server_group_spec.go:153](/pkg/apis/deployment/v1/server_group_spec.go#L153) + +### .spec.syncworkers.volumes\[int\].configMap: core.ConfigMapVolumeSource + +ConfigMap which should be mounted into pod + +Links: +* [Documentation of core.ConfigMapVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#configmapvolumesource-v1-core) + +Code Reference: [server_group_volume.go:138](/pkg/apis/deployment/v1/server_group_volume.go#L138) + +### .spec.syncworkers.volumes\[int\].emptyDir: core.EmptyDirVolumeSource + +EmptyDir + +Links: +* [Documentation of core.EmptyDirVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#emptydirvolumesource-v1-core) + +Code Reference: [server_group_volume.go:143](/pkg/apis/deployment/v1/server_group_volume.go#L143) + +### .spec.syncworkers.volumes\[int\].hostPath: core.HostPathVolumeSource + +HostPath + +Links: +* [Documentation of core.HostPathVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#hostpathvolumesource-v1-core) + +Code Reference: [server_group_volume.go:148](/pkg/apis/deployment/v1/server_group_volume.go#L148) + +### .spec.syncworkers.volumes\[int\].name: string + +Name of volume + +Code Reference: [server_group_volume.go:128](/pkg/apis/deployment/v1/server_group_volume.go#L128) + +### .spec.syncworkers.volumes\[int\].persistentVolumeClaim: core.PersistentVolumeClaimVolumeSource + +PersistentVolumeClaim + +Links: +* [Documentation of core.PersistentVolumeClaimVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#persistentvolumeclaimvolumesource-v1-core) + +Code Reference: [server_group_volume.go:153](/pkg/apis/deployment/v1/server_group_volume.go#L153) + +### .spec.syncworkers.volumes\[int\].secret: core.SecretVolumeSource + +Secret which should be mounted into pod + +Links: +* [Documentation of core.SecretVolumeSource](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#secretvolumesource-v1-core) + +Code Reference: [server_group_volume.go:133](/pkg/apis/deployment/v1/server_group_volume.go#L133) + +### .spec.timeouts.actions: map[string]meta.Duration + +Actions keep map of the actions timeouts. + +Links: +* [List of supported action names](/docs/generated/actions.md) +* [Definition of meta.Duration](https://github.com/kubernetes/apimachinery/blob/v0.26.6/pkg/apis/meta/v1/duration.go) + +Example: +```yaml +actions: + AddMember: 30m +``` + +Code Reference: [timeouts.go:44](/pkg/apis/deployment/v1/timeouts.go#L44) + +### .spec.timeouts.maintenanceGracePeriod: int64 + +MaintenanceGracePeriod action timeout + +Code Reference: [timeouts.go:36](/pkg/apis/deployment/v1/timeouts.go#L36) + +### .spec.timezone: string + +Code Reference: [deployment_spec.go:198](/pkg/apis/deployment/v1/deployment_spec.go#L198) + +### .spec.tls.altNames: []string + +Code Reference: [tls_spec.go:58](/pkg/apis/deployment/v1/tls_spec.go#L58) + +### .spec.tls.caSecretName: string + +Code Reference: [tls_spec.go:57](/pkg/apis/deployment/v1/tls_spec.go#L57) + +### .spec.tls.mode: string + +Code Reference: [tls_spec.go:61](/pkg/apis/deployment/v1/tls_spec.go#L61) + +### .spec.tls.sni.mapping.\: []string + +Code Reference: [tls_sni_spec.go:30](/pkg/apis/deployment/v1/tls_sni_spec.go#L30) + +### .spec.tls.ttl: string + +Code Reference: [tls_spec.go:59](/pkg/apis/deployment/v1/tls_spec.go#L59) + +### .spec.topology.enabled: bool + +Code Reference: [topology_spec.go:26](/pkg/apis/deployment/v1/topology_spec.go#L26) + +### .spec.topology.label: string + +Code Reference: [topology_spec.go:28](/pkg/apis/deployment/v1/topology_spec.go#L28) + +### .spec.topology.zones: int + +Code Reference: [topology_spec.go:27](/pkg/apis/deployment/v1/topology_spec.go#L27) + +### .spec.upgrade.autoUpgrade: bool + +Flag specify if upgrade should be auto-injected, even if is not required (in case of stuck) + +Code Reference: [deployment_upgrade_spec.go:25](/pkg/apis/deployment/v1/deployment_upgrade_spec.go#L25) + diff --git a/internal/docs_test.go b/internal/docs_test.go new file mode 100644 index 000000000..c767e344b --- /dev/null +++ b/internal/docs_test.go @@ -0,0 +1,447 @@ +// +// DISCLAIMER +// +// Copyright 2023 ArangoDB GmbH, Cologne, Germany +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Copyright holder is ArangoDB GmbH, Cologne, Germany +// + +package internal + +import ( + "bytes" + "fmt" + "go/ast" + "go/parser" + "go/token" + "io" + "io/fs" + "os" + "path" + "path/filepath" + "reflect" + "sort" + "strings" + "testing" + + "github.com/stretchr/testify/require" + + api "github.com/arangodb/kube-arangodb/pkg/apis/deployment/v1" + "github.com/arangodb/kube-arangodb/pkg/util" +) + +type DocDefinitions []DocDefinition + +func (d DocDefinitions) Render(t *testing.T) []byte { + out := bytes.NewBuffer(nil) + + for _, el := range d { + + write(t, out, "### %s: %s\n\n", el.Path, el.Type) + + if len(el.Docs) > 0 { + for _, doc := range el.Docs { + write(t, out, "%s\n\n", doc) + } + } + + if len(el.Links) > 0 { + write(t, out, "Links:\n") + + for _, link := range el.Links { + z := strings.Split(link, "|") + if len(z) == 1 { + write(t, out, "* [Documentation](%s)\n", z[0]) + } else if len(z) == 2 { + write(t, out, "* [%s](%s)\n", z[0], z[1]) + } else { + require.Fail(t, "Invalid link format") + } + } + + write(t, out, "\n") + } + + if len(el.Example) > 0 { + write(t, out, "Example:\n") + write(t, out, "```yaml\n") + for _, example := range el.Example { + write(t, out, "%s\n", example) + } + write(t, out, "```\n\n") + } + + if d := el.Default; d != nil { + write(t, out, "Default Value: %s\n\n", *d) + } + + write(t, out, "Code Reference: [%s:%d](/%s#L%d)\n\n", filepath.Base(el.File), el.Line, el.File, el.Line) + } + + return out.Bytes() +} + +type DocDefinition struct { + Path string + Type string + + File string + Line int + + Docs []string + + Links []string + + Default *string + Example []string +} + +func Test_GenerateAPIDocs(t *testing.T) { + root := os.Getenv("ROOT") + require.NotEmpty(t, root) + + generateDocs(t, map[string]map[string]interface{}{ + "ArangoDeployment.V1": { + "Spec": api.ArangoDeployment{}.Spec, + }, + }, + fmt.Sprintf("%s/pkg/apis/deployment/v1", root)) +} + +func generateDocs(t *testing.T, objects map[string]map[string]interface{}, paths ...string) { + root := os.Getenv("ROOT") + require.NotEmpty(t, root) + + docs, fs := getDocs(t, paths...) + + for object, sections := range objects { + t.Run(object, func(t *testing.T) { + renderSections := map[string][]byte{} + for section, data := range sections { + t.Run(section, func(t *testing.T) { + + res := iterateOverObject(t, docs, strings.ToLower(section), reflect.TypeOf(data), "") + + var elements []string + + for k := range res { + elements = append(elements, k) + } + + sort.Slice(elements, func(i, j int) bool { + if a, b := strings.ToLower(elements[i]), strings.ToLower(elements[j]); a == b { + return elements[i] < elements[j] + } else { + return a < b + } + }) + + defs := make(DocDefinitions, len(elements)) + + for id, k := range elements { + field := res[k] + + var def DocDefinition + + def.Path = strings.Split(k, ":")[0] + def.Type = strings.Split(k, ":")[1] + + require.NotNil(t, field) + + if links, ok := extract(field, "link"); ok { + def.Links = links + } + + if d, ok := extract(field, "default"); ok { + def.Default = util.NewType[string](d[0]) + } + + if example, ok := extract(field, "example"); ok { + def.Example = example + } + + if docs, ok := extractNotTags(field); !ok { + println(def.Path, " is missing documentation!") + } else { + def.Docs = docs + } + + file := fs.File(field.Pos()) + + filePath, err := filepath.Rel(root, file.Name()) + require.NoError(t, err) + + def.File = filePath + def.Line = file.Line(field.Pos()) + + defs[id] = def + } + + renderSections[section] = defs.Render(t) + }) + } + + out, err := os.OpenFile(path.Join(root, "docs/api", fmt.Sprintf("%s.md", object)), os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0644) + require.NoError(t, err) + + defer func() { + require.NoError(t, out.Close()) + }() + + write(t, out, "# API Reference for %s\n\n", strings.ReplaceAll(object, ".", " ")) + + for name, section := range renderSections { + write(t, out, "## %s\n\n", name) + + _, err = out.Write(section) + require.NoError(t, err) + } + }) + } +} + +func write(t *testing.T, out io.Writer, format string, args ...interface{}) { + _, err := out.Write([]byte(fmt.Sprintf(format, args...))) + require.NoError(t, err) +} + +func iterateOverObject(t *testing.T, docs map[string]*ast.Field, name string, object reflect.Type, path string) map[string]*ast.Field { + r := map[string]*ast.Field{} + t.Run(name, func(t *testing.T) { + for k, v := range iterateOverObjectDirect(t, docs, name, object, path) { + r[k] = v + } + }) + + return r +} + +func iterateOverObjectDirect(t *testing.T, docs map[string]*ast.Field, name string, object reflect.Type, path string) map[string]*ast.Field { + if n, simple := isSimpleType(object); simple { + return map[string]*ast.Field{ + fmt.Sprintf("%s.%s:%s", path, name, n): nil, + } + } + + r := map[string]*ast.Field{} + + switch object.Kind() { + case reflect.Array, reflect.Slice: + if n, simple := isSimpleType(object.Elem()); simple { + return map[string]*ast.Field{ + fmt.Sprintf("%s.%s:[]%s", path, name, n): nil, + } + } + + for k, v := range iterateOverObjectDirect(t, docs, fmt.Sprintf("%s\\[int\\]", name), object.Elem(), path) { + r[k] = v + } + case reflect.Map: + if n, simple := isSimpleType(object.Elem()); simple { + return map[string]*ast.Field{ + fmt.Sprintf("%s.%s:map[%s]%s", path, name, object.Key().String(), n): nil, + } + } + + for k, v := range iterateOverObjectDirect(t, docs, fmt.Sprintf("%s.\\<%s\\>", name, object.Key().Kind().String()), object.Elem(), path) { + r[k] = v + } + case reflect.Struct: + for field := 0; field < object.NumField(); field++ { + f := object.Field(field) + + if !f.IsExported() { + continue + } + + tag, ok := f.Tag.Lookup("json") + if !ok { + if f.Anonymous { + tag = ",inline" + } + } + + n, inline := extractTag(tag) + + if n == "-" { + continue + } + + docName := fmt.Sprintf("%s.%s", object.String(), f.Name) + + doc, ok := docs[docName] + if !ok && !f.Anonymous { + require.True(t, ok, docName) + } + + if !f.Anonymous { + if t, ok := extractType(doc); ok { + r[fmt.Sprintf("%s.%s.%s:%s", path, name, n, t[0])] = doc + continue + } + } + + if inline { + for k, v := range iterateOverObjectDirect(t, docs, name, f.Type, path) { + if v == nil { + v = doc + } + r[k] = v + } + } else { + + for k, v := range iterateOverObject(t, docs, n, f.Type, fmt.Sprintf("%s.%s", path, name)) { + if v == nil { + v = doc + } + r[k] = v + } + } + } + case reflect.Pointer: + for k, v := range iterateOverObjectDirect(t, docs, name, object.Elem(), path) { + r[k] = v + } + default: + require.Fail(t, object.String()) + } + + return r +} + +func extractType(n *ast.Field) ([]string, bool) { + return extract(n, "type") +} + +func extract(n *ast.Field, tag string) ([]string, bool) { + if n.Doc == nil { + return nil, false + } + + var ret []string + + for _, c := range n.Doc.List { + if strings.HasPrefix(c.Text, fmt.Sprintf("// +doc/%s: ", tag)) { + ret = append(ret, strings.TrimPrefix(c.Text, fmt.Sprintf("// +doc/%s: ", tag))) + } + } + + return ret, len(ret) > 0 +} + +func extractNotTags(n *ast.Field) ([]string, bool) { + if n.Doc == nil { + return nil, false + } + + var ret []string + + for _, c := range n.Doc.List { + if strings.HasPrefix(c.Text, "// ") { + if !strings.HasPrefix(c.Text, "// +doc/") { + ret = append(ret, strings.TrimPrefix(c.Text, "// ")) + } + } + } + + return ret, len(ret) > 0 +} + +func isSimpleType(obj reflect.Type) (string, bool) { + switch obj.Kind() { + case reflect.String, reflect.Int64, reflect.Bool, reflect.Int, reflect.Uint16, reflect.Int32: + return obj.Kind().String(), true + } + + return "", false +} + +func extractTag(tag string) (string, bool) { + parts := strings.SplitN(tag, ",", 2) + + if len(parts) == 1 { + return parts[0], false + } + + if parts[1] == "inline" { + return parts[0], true + } + + return parts[0], false +} + +func getDocs(t *testing.T, paths ...string) (map[string]*ast.Field, *token.FileSet) { + d, fs := parseMultipleDirs(t, parser.ParseComments, paths...) + + r := map[string]*ast.Field{} + + for k, f := range d { + var ct *ast.TypeSpec + var nt *ast.TypeSpec + + ast.Inspect(f, func(n ast.Node) bool { + switch x := n.(type) { + case *ast.TypeSpec, *ast.FuncDecl, *ast.Field, *ast.Package, *ast.File, *ast.Ident, *ast.StructType: + default: + if x == nil { + return true + } + return true + } + + switch x := n.(type) { + case *ast.TypeSpec: + ct = x + case *ast.StructType: + nt = ct + case *ast.FuncDecl: + nt = nil + case *ast.Field: + if nt != nil { + require.NotEmpty(t, nt.Name) + + for _, name := range x.Names { + r[fmt.Sprintf("%s.%s.%s", k, nt.Name, name)] = x + } + } + } + + return true + }) + } + + return r, fs +} + +func parseMultipleDirs(t *testing.T, mode parser.Mode, dirs ...string) (map[string]*ast.Package, *token.FileSet) { + fset := token.NewFileSet() // positions are relative to fset + + r := map[string]*ast.Package{} + + for _, dir := range dirs { + d, err := parser.ParseDir(fset, dir, func(info fs.FileInfo) bool { + return !strings.HasSuffix(info.Name(), "_test.go") + }, mode) + require.NoError(t, err) + + for k, v := range d { + _, ok := r[k] + require.False(t, ok) + r[k] = v + } + } + + return r, fset +} diff --git a/pkg/apis/deployment/v1/deployment_metrics_spec.go b/pkg/apis/deployment/v1/deployment_metrics_spec.go index e2f812f48..79ddee0e5 100644 --- a/pkg/apis/deployment/v1/deployment_metrics_spec.go +++ b/pkg/apis/deployment/v1/deployment_metrics_spec.go @@ -78,7 +78,10 @@ type MetricsSpec struct { // deprecated Image *string `json:"image,omitempty"` Authentication MetricsAuthenticationSpec `json:"authentication,omitempty"` - Resources core.ResourceRequirements `json:"resources,omitempty"` + // Resources holds resource requests & limits + // +doc/type: core.ResourceRequirements + // +doc/link: Documentation of core.ResourceRequirements|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#resourcerequirements-v1-core + Resources core.ResourceRequirements `json:"resources,omitempty"` // deprecated Mode *MetricsMode `json:"mode,omitempty"` TLS *bool `json:"tls,omitempty"` diff --git a/pkg/apis/deployment/v1/deployment_spec.go b/pkg/apis/deployment/v1/deployment_spec.go index b8a58d649..93464b73b 100644 --- a/pkg/apis/deployment/v1/deployment_spec.go +++ b/pkg/apis/deployment/v1/deployment_spec.go @@ -178,6 +178,9 @@ type DeploymentSpec struct { Timeouts *Timeouts `json:"timeouts,omitempty"` + // ClusterDomain define domain used in the kubernetes cluster. + // Required only of domain is not set to default (cluster.local) + // +doc/default: cluster.local ClusterDomain *string `json:"ClusterDomain,omitempty"` // CommunicationMethod define communication method used in deployment diff --git a/pkg/apis/deployment/v1/lifecycle_spec.go b/pkg/apis/deployment/v1/lifecycle_spec.go index 88c82d338..40a22cd1c 100644 --- a/pkg/apis/deployment/v1/lifecycle_spec.go +++ b/pkg/apis/deployment/v1/lifecycle_spec.go @@ -1,7 +1,7 @@ // // DISCLAIMER // -// Copyright 2016-2022 ArangoDB GmbH, Cologne, Germany +// Copyright 2016-2023 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. @@ -25,6 +25,9 @@ import ( ) type LifecycleSpec struct { + // Resources holds resource requests & limits + // +doc/type: core.ResourceRequirements + // +doc/link: Documentation of core.ResourceRequirements|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#resourcerequirements-v1-core Resources core.ResourceRequirements `json:"resources,omitempty"` } diff --git a/pkg/apis/deployment/v1/member_status.go b/pkg/apis/deployment/v1/member_status.go index a825ff7bf..d275977f9 100644 --- a/pkg/apis/deployment/v1/member_status.go +++ b/pkg/apis/deployment/v1/member_status.go @@ -86,7 +86,9 @@ type MemberStatus struct { SecondaryPersistentVolumeClaim *MemberPersistentVolumeClaimStatus `json:"secondaryPersistentVolumeClaim,omitempty"` // deprecated - // SideCarSpecs contains list of specifications specified for side cars + // SideCarSpecs contains map of specifications specified for side cars + // +doc/type: map[string]core.Container + // +doc/link: Documentation of core.Container|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#container-v1-core SideCarSpecs map[string]core.Container `json:"sidecars-specs,omitempty"` // deprecated // PodName holds the name of the Pod that currently runs this member diff --git a/pkg/apis/deployment/v1/server_group_ephemeral_volumes.go b/pkg/apis/deployment/v1/server_group_ephemeral_volumes.go index a4878d38c..49ae5d966 100644 --- a/pkg/apis/deployment/v1/server_group_ephemeral_volumes.go +++ b/pkg/apis/deployment/v1/server_group_ephemeral_volumes.go @@ -1,7 +1,7 @@ // // DISCLAIMER // -// Copyright 2016-2022 ArangoDB GmbH, Cologne, Germany +// Copyright 2016-2023 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. @@ -58,6 +58,9 @@ func (e *EphemeralVolumes) getTempSize(d *resource.Quantity) *resource.Quantity // EphemeralVolume keeps information about ephemeral volumes. type EphemeralVolume struct { + // Size define size of the ephemeral volume + // +doc/type: resource.Quantity + // +doc/link: Documentation of resource.Quantity|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#quantity-resource-core Size *resource.Quantity `json:"size"` } diff --git a/pkg/apis/deployment/v1/server_group_init_containers.go b/pkg/apis/deployment/v1/server_group_init_containers.go index 9743d8bcc..23ecacfc0 100644 --- a/pkg/apis/deployment/v1/server_group_init_containers.go +++ b/pkg/apis/deployment/v1/server_group_init_containers.go @@ -1,7 +1,7 @@ // // DISCLAIMER // -// Copyright 2016-2022 ArangoDB GmbH, Cologne, Germany +// Copyright 2016-2023 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. @@ -86,6 +86,8 @@ const ( type ServerGroupInitContainers struct { // Containers contains list of containers + // +doc/type: []core.Container + // +doc/link: Documentation of core.Container|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#container-v1-core Containers []core.Container `json:"containers,omitempty"` // Mode keep container replace mode diff --git a/pkg/apis/deployment/v1/server_group_security_context_spec.go b/pkg/apis/deployment/v1/server_group_security_context_spec.go index 9df236acd..11dbb97ca 100644 --- a/pkg/apis/deployment/v1/server_group_security_context_spec.go +++ b/pkg/apis/deployment/v1/server_group_security_context_spec.go @@ -51,7 +51,14 @@ type ServerGroupSpecSecurityContext struct { SupplementalGroups []int64 `json:"supplementalGroups,omitempty"` FSGroup *int64 `json:"fsGroup,omitempty"` + // SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set. + // +doc/type: core.SeccompProfile + // +doc/link: Documentation of core.SeccompProfile|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#seccompprofile-v1-core SeccompProfile *core.SeccompProfile `json:"seccompProfile,omitempty" protobuf:"bytes,11,opt,name=seccompProfile"` + + // SELinuxOptions are the labels to be applied to the container + // +doc/type: core.SELinuxOptions + // +doc/link: Documentation of core.SELinuxOptions|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#selinuxoptions-v1-core SELinuxOptions *core.SELinuxOptions `json:"seLinuxOptions,omitempty" protobuf:"bytes,3,opt,name=seLinuxOptions"` } diff --git a/pkg/apis/deployment/v1/server_group_spec.go b/pkg/apis/deployment/v1/server_group_spec.go index 89384037a..9423b1254 100644 --- a/pkg/apis/deployment/v1/server_group_spec.go +++ b/pkg/apis/deployment/v1/server_group_spec.go @@ -83,12 +83,16 @@ type ServerGroupSpec struct { // StorageClassName specifies the classname for storage of the servers. StorageClassName *string `json:"storageClassName,omitempty"` // Resources holds resource requests & limits + // +doc/type: core.ResourceRequirements + // +doc/link: Documentation of core.ResourceRequirements|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#resourcerequirements-v1-core Resources core.ResourceRequirements `json:"resources,omitempty"` // OverrideDetectedTotalMemory determines if memory should be overrided based on values in resources. OverrideDetectedTotalMemory *bool `json:"overrideDetectedTotalMemory,omitempty"` // OverrideDetectedNumberOfCores determines if number of cores should be overrided based on values in resources. OverrideDetectedNumberOfCores *bool `json:"overrideDetectedNumberOfCores,omitempty"` // Tolerations specifies the tolerations added to Pods in this group. + // +doc/type: []core.Toleration + // +doc/link: Documentation of core.Toleration|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#toleration-v1-core Tolerations []core.Toleration `json:"tolerations,omitempty"` // Annotations specified the annotations added to Pods in this group. Annotations map[string]string `json:"annotations,omitempty"` @@ -113,27 +117,39 @@ type ServerGroupSpec struct { // PriorityClassName specifies a priority class name PriorityClassName string `json:"priorityClassName,omitempty"` // VolumeClaimTemplate specifies a template for volume claims + // +doc/type: core.PersistentVolumeClaim + // +doc/link: Documentation of core.PersistentVolumeClaim|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#persistentvolumeclaim-v1-core VolumeClaimTemplate *core.PersistentVolumeClaim `json:"volumeClaimTemplate,omitempty"` // VolumeResizeMode specified resize mode for pvc VolumeResizeMode *PVCResizeMode `json:"pvcResizeMode,omitempty"` // Deprecated: VolumeAllowShrink allows shrink the volume VolumeAllowShrink *bool `json:"volumeAllowShrink,omitempty"` // AntiAffinity specified additional antiAffinity settings in ArangoDB Pod definitions + // +doc/type: core.PodAntiAffinity + // +doc/link: Documentation of core.Pod.AntiAffinity|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#podantiaffinity-v1-core AntiAffinity *core.PodAntiAffinity `json:"antiAffinity,omitempty"` // Affinity specified additional affinity settings in ArangoDB Pod definitions + // +doc/type: core.PodAffinity + // +doc/link: Documentation of core.PodAffinity|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#podaffinity-v1-core Affinity *core.PodAffinity `json:"affinity,omitempty"` // NodeAffinity specified additional nodeAffinity settings in ArangoDB Pod definitions + // +doc/type: core.NodeAffinity + // +doc/link: Documentation of code.NodeAffinity|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#nodeaffinity-v1-core NodeAffinity *core.NodeAffinity `json:"nodeAffinity,omitempty"` // 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. SidecarCoreNames []string `json:"sidecarCoreNames,omitempty"` // Sidecars specifies a list of additional containers to be started + // +doc/type: []core.Container + // +doc/link: Documentation of core.Container|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#container-v1-core Sidecars []core.Container `json:"sidecars,omitempty"` // SecurityContext specifies security context for group SecurityContext *ServerGroupSpecSecurityContext `json:"securityContext,omitempty"` // Volumes define list of volumes mounted to pod Volumes ServerGroupSpecVolumes `json:"volumes,omitempty"` // VolumeMounts define list of volume mounts mounted into server container + // +doc/type: []ServerGroupSpecVolumeMount + // +doc/link: Documentation of ServerGroupSpecVolumeMount|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#volumemount-v1-core VolumeMounts ServerGroupSpecVolumeMounts `json:"volumeMounts,omitempty"` // EphemeralVolumes keeps information about ephemeral volumes. EphemeralVolumes *EphemeralVolumes `json:"ephemeralVolumes,omitempty"` diff --git a/pkg/apis/deployment/v1/server_group_volume.go b/pkg/apis/deployment/v1/server_group_volume.go index a37cdde90..52d55551b 100644 --- a/pkg/apis/deployment/v1/server_group_volume.go +++ b/pkg/apis/deployment/v1/server_group_volume.go @@ -1,7 +1,7 @@ // // DISCLAIMER // -// Copyright 2016-2022 ArangoDB GmbH, Cologne, Germany +// Copyright 2016-2023 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. @@ -128,18 +128,28 @@ type ServerGroupSpecVolume struct { Name string `json:"name"` // Secret which should be mounted into pod + // +doc/type: core.SecretVolumeSource + // +doc/link: Documentation of core.SecretVolumeSource|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#secretvolumesource-v1-core Secret *ServerGroupSpecVolumeSecret `json:"secret,omitempty"` // ConfigMap which should be mounted into pod + // +doc/type: core.ConfigMapVolumeSource + // +doc/link: Documentation of core.ConfigMapVolumeSource|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#configmapvolumesource-v1-core ConfigMap *ServerGroupSpecVolumeConfigMap `json:"configMap,omitempty"` // EmptyDir + // +doc/type: core.EmptyDirVolumeSource + // +doc/link: Documentation of core.EmptyDirVolumeSource|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#emptydirvolumesource-v1-core EmptyDir *ServerGroupSpecVolumeEmptyDir `json:"emptyDir,omitempty"` // HostPath + // +doc/type: core.HostPathVolumeSource + // +doc/link: Documentation of core.HostPathVolumeSource|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#hostpathvolumesource-v1-core HostPath *ServerGroupSpecVolumeHostPath `json:"hostPath,omitempty"` // PersistentVolumeClaim + // +doc/type: core.PersistentVolumeClaimVolumeSource + // +doc/link: Documentation of core.PersistentVolumeClaimVolumeSource|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#persistentvolumeclaimvolumesource-v1-core PersistentVolumeClaim *ServerGroupSpecVolumePersistentVolumeClaim `json:"persistentVolumeClaim,omitempty"` } diff --git a/pkg/apis/deployment/v1/server_id_group_spec.go b/pkg/apis/deployment/v1/server_id_group_spec.go index 126701612..9b8a53a3c 100644 --- a/pkg/apis/deployment/v1/server_id_group_spec.go +++ b/pkg/apis/deployment/v1/server_id_group_spec.go @@ -1,7 +1,7 @@ // // DISCLAIMER // -// Copyright 2016-2022 ArangoDB GmbH, Cologne, Germany +// Copyright 2016-2023 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. @@ -27,22 +27,32 @@ type ServerIDGroupSpec struct { // Entrypoint overrides container executable Entrypoint *string `json:"entrypoint,omitempty"` // Tolerations specifies the tolerations added to Pods in this group. + // +doc/type: []core.Toleration + // +doc/link: Documentation of core.Toleration|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#toleration-v1-core Tolerations []core.Toleration `json:"tolerations,omitempty"` // NodeSelector speficies a set of selectors for nodes NodeSelector map[string]string `json:"nodeSelector,omitempty"` // PriorityClassName specifies a priority class name PriorityClassName string `json:"priorityClassName,omitempty"` // AntiAffinity specified additional antiAffinity settings in ArangoDB Pod definitions + // +doc/type: core.PodAntiAffinity + // +doc/link: Documentation of core.Pod.AntiAffinity|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#podantiaffinity-v1-core AntiAffinity *core.PodAntiAffinity `json:"antiAffinity,omitempty"` // Affinity specified additional affinity settings in ArangoDB Pod definitions + // +doc/type: core.PodAffinity + // +doc/link: Documentation of core.PodAffinity|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#podaffinity-v1-core Affinity *core.PodAffinity `json:"affinity,omitempty"` // NodeAffinity specified additional nodeAffinity settings in ArangoDB Pod definitions + // +doc/type: core.NodeAffinity + // +doc/link: Documentation of code.NodeAffinity|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#nodeaffinity-v1-core NodeAffinity *core.NodeAffinity `json:"nodeAffinity,omitempty"` // ServiceAccountName specifies the name of the service account used for Pods in this group. ServiceAccountName *string `json:"serviceAccountName,omitempty"` // SecurityContext specifies security context for group SecurityContext *ServerGroupSpecSecurityContext `json:"securityContext,omitempty"` // Resources holds resource requests & limits + // +doc/type: core.ResourceRequirements + // +doc/link: Documentation of core.ResourceRequirements|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#resourcerequirements-v1-core Resources *core.ResourceRequirements `json:"resources,omitempty"` } diff --git a/pkg/apis/deployment/v1/timeouts.go b/pkg/apis/deployment/v1/timeouts.go index 15532860c..ee580ebd0 100644 --- a/pkg/apis/deployment/v1/timeouts.go +++ b/pkg/apis/deployment/v1/timeouts.go @@ -35,7 +35,12 @@ type Timeouts struct { // MaintenanceGracePeriod action timeout MaintenanceGracePeriod *Timeout `json:"maintenanceGracePeriod,omitempty"` - // Actions + // Actions keep map of the actions timeouts. + // +doc/type: map[string]meta.Duration + // +doc/link: List of supported action names|/docs/generated/actions.md + // +doc/link: Definition of meta.Duration|https://github.com/kubernetes/apimachinery/blob/v0.26.6/pkg/apis/meta/v1/duration.go + // +doc/example: actions: + // +doc/example: AddMember: 30m Actions ActionTimeouts `json:"actions,omitempty"` // deprecated diff --git a/pkg/apis/deployment/v2alpha1/deployment_metrics_spec.go b/pkg/apis/deployment/v2alpha1/deployment_metrics_spec.go index 0ab98dc5f..060eaad35 100644 --- a/pkg/apis/deployment/v2alpha1/deployment_metrics_spec.go +++ b/pkg/apis/deployment/v2alpha1/deployment_metrics_spec.go @@ -78,7 +78,10 @@ type MetricsSpec struct { // deprecated Image *string `json:"image,omitempty"` Authentication MetricsAuthenticationSpec `json:"authentication,omitempty"` - Resources core.ResourceRequirements `json:"resources,omitempty"` + // Resources holds resource requests & limits + // +doc/type: core.ResourceRequirements + // +doc/link: Documentation of core.ResourceRequirements|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#resourcerequirements-v1-core + Resources core.ResourceRequirements `json:"resources,omitempty"` // deprecated Mode *MetricsMode `json:"mode,omitempty"` TLS *bool `json:"tls,omitempty"` diff --git a/pkg/apis/deployment/v2alpha1/deployment_spec.go b/pkg/apis/deployment/v2alpha1/deployment_spec.go index beb88a5a8..ca291c9be 100644 --- a/pkg/apis/deployment/v2alpha1/deployment_spec.go +++ b/pkg/apis/deployment/v2alpha1/deployment_spec.go @@ -178,6 +178,9 @@ type DeploymentSpec struct { Timeouts *Timeouts `json:"timeouts,omitempty"` + // ClusterDomain define domain used in the kubernetes cluster. + // Required only of domain is not set to default (cluster.local) + // +doc/default: cluster.local ClusterDomain *string `json:"ClusterDomain,omitempty"` // CommunicationMethod define communication method used in deployment diff --git a/pkg/apis/deployment/v2alpha1/lifecycle_spec.go b/pkg/apis/deployment/v2alpha1/lifecycle_spec.go index 60b404c6d..f800a1b88 100644 --- a/pkg/apis/deployment/v2alpha1/lifecycle_spec.go +++ b/pkg/apis/deployment/v2alpha1/lifecycle_spec.go @@ -1,7 +1,7 @@ // // DISCLAIMER // -// Copyright 2016-2022 ArangoDB GmbH, Cologne, Germany +// Copyright 2016-2023 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. @@ -25,6 +25,9 @@ import ( ) type LifecycleSpec struct { + // Resources holds resource requests & limits + // +doc/type: core.ResourceRequirements + // +doc/link: Documentation of core.ResourceRequirements|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#resourcerequirements-v1-core Resources core.ResourceRequirements `json:"resources,omitempty"` } diff --git a/pkg/apis/deployment/v2alpha1/member_status.go b/pkg/apis/deployment/v2alpha1/member_status.go index cc1789551..1be5c604b 100644 --- a/pkg/apis/deployment/v2alpha1/member_status.go +++ b/pkg/apis/deployment/v2alpha1/member_status.go @@ -86,7 +86,9 @@ type MemberStatus struct { SecondaryPersistentVolumeClaim *MemberPersistentVolumeClaimStatus `json:"secondaryPersistentVolumeClaim,omitempty"` // deprecated - // SideCarSpecs contains list of specifications specified for side cars + // SideCarSpecs contains map of specifications specified for side cars + // +doc/type: map[string]core.Container + // +doc/link: Documentation of core.Container|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#container-v1-core SideCarSpecs map[string]core.Container `json:"sidecars-specs,omitempty"` // deprecated // PodName holds the name of the Pod that currently runs this member diff --git a/pkg/apis/deployment/v2alpha1/server_group_ephemeral_volumes.go b/pkg/apis/deployment/v2alpha1/server_group_ephemeral_volumes.go index 5f6c9356e..8fae01c5b 100644 --- a/pkg/apis/deployment/v2alpha1/server_group_ephemeral_volumes.go +++ b/pkg/apis/deployment/v2alpha1/server_group_ephemeral_volumes.go @@ -1,7 +1,7 @@ // // DISCLAIMER // -// Copyright 2016-2022 ArangoDB GmbH, Cologne, Germany +// Copyright 2016-2023 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. @@ -58,6 +58,9 @@ func (e *EphemeralVolumes) getTempSize(d *resource.Quantity) *resource.Quantity // EphemeralVolume keeps information about ephemeral volumes. type EphemeralVolume struct { + // Size define size of the ephemeral volume + // +doc/type: resource.Quantity + // +doc/link: Documentation of resource.Quantity|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#quantity-resource-core Size *resource.Quantity `json:"size"` } diff --git a/pkg/apis/deployment/v2alpha1/server_group_init_containers.go b/pkg/apis/deployment/v2alpha1/server_group_init_containers.go index aea3efee8..df4e9c6e3 100644 --- a/pkg/apis/deployment/v2alpha1/server_group_init_containers.go +++ b/pkg/apis/deployment/v2alpha1/server_group_init_containers.go @@ -1,7 +1,7 @@ // // DISCLAIMER // -// Copyright 2016-2022 ArangoDB GmbH, Cologne, Germany +// Copyright 2016-2023 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. @@ -86,6 +86,8 @@ const ( type ServerGroupInitContainers struct { // Containers contains list of containers + // +doc/type: []core.Container + // +doc/link: Documentation of core.Container|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#container-v1-core Containers []core.Container `json:"containers,omitempty"` // Mode keep container replace mode diff --git a/pkg/apis/deployment/v2alpha1/server_group_security_context_spec.go b/pkg/apis/deployment/v2alpha1/server_group_security_context_spec.go index dcaabd148..7f44b72ea 100644 --- a/pkg/apis/deployment/v2alpha1/server_group_security_context_spec.go +++ b/pkg/apis/deployment/v2alpha1/server_group_security_context_spec.go @@ -51,7 +51,14 @@ type ServerGroupSpecSecurityContext struct { SupplementalGroups []int64 `json:"supplementalGroups,omitempty"` FSGroup *int64 `json:"fsGroup,omitempty"` + // SeccompProfile defines a pod/container's seccomp profile settings. Only one profile source may be set. + // +doc/type: core.SeccompProfile + // +doc/link: Documentation of core.SeccompProfile|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#seccompprofile-v1-core SeccompProfile *core.SeccompProfile `json:"seccompProfile,omitempty" protobuf:"bytes,11,opt,name=seccompProfile"` + + // SELinuxOptions are the labels to be applied to the container + // +doc/type: core.SELinuxOptions + // +doc/link: Documentation of core.SELinuxOptions|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#selinuxoptions-v1-core SELinuxOptions *core.SELinuxOptions `json:"seLinuxOptions,omitempty" protobuf:"bytes,3,opt,name=seLinuxOptions"` } diff --git a/pkg/apis/deployment/v2alpha1/server_group_spec.go b/pkg/apis/deployment/v2alpha1/server_group_spec.go index 9ada6c467..a0365d6cd 100644 --- a/pkg/apis/deployment/v2alpha1/server_group_spec.go +++ b/pkg/apis/deployment/v2alpha1/server_group_spec.go @@ -83,12 +83,16 @@ type ServerGroupSpec struct { // StorageClassName specifies the classname for storage of the servers. StorageClassName *string `json:"storageClassName,omitempty"` // Resources holds resource requests & limits + // +doc/type: core.ResourceRequirements + // +doc/link: Documentation of core.ResourceRequirements|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#resourcerequirements-v1-core Resources core.ResourceRequirements `json:"resources,omitempty"` // OverrideDetectedTotalMemory determines if memory should be overrided based on values in resources. OverrideDetectedTotalMemory *bool `json:"overrideDetectedTotalMemory,omitempty"` // OverrideDetectedNumberOfCores determines if number of cores should be overrided based on values in resources. OverrideDetectedNumberOfCores *bool `json:"overrideDetectedNumberOfCores,omitempty"` // Tolerations specifies the tolerations added to Pods in this group. + // +doc/type: []core.Toleration + // +doc/link: Documentation of core.Toleration|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#toleration-v1-core Tolerations []core.Toleration `json:"tolerations,omitempty"` // Annotations specified the annotations added to Pods in this group. Annotations map[string]string `json:"annotations,omitempty"` @@ -113,27 +117,39 @@ type ServerGroupSpec struct { // PriorityClassName specifies a priority class name PriorityClassName string `json:"priorityClassName,omitempty"` // VolumeClaimTemplate specifies a template for volume claims + // +doc/type: core.PersistentVolumeClaim + // +doc/link: Documentation of core.PersistentVolumeClaim|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#persistentvolumeclaim-v1-core VolumeClaimTemplate *core.PersistentVolumeClaim `json:"volumeClaimTemplate,omitempty"` // VolumeResizeMode specified resize mode for pvc VolumeResizeMode *PVCResizeMode `json:"pvcResizeMode,omitempty"` // Deprecated: VolumeAllowShrink allows shrink the volume VolumeAllowShrink *bool `json:"volumeAllowShrink,omitempty"` // AntiAffinity specified additional antiAffinity settings in ArangoDB Pod definitions + // +doc/type: core.PodAntiAffinity + // +doc/link: Documentation of core.Pod.AntiAffinity|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#podantiaffinity-v1-core AntiAffinity *core.PodAntiAffinity `json:"antiAffinity,omitempty"` // Affinity specified additional affinity settings in ArangoDB Pod definitions + // +doc/type: core.PodAffinity + // +doc/link: Documentation of core.PodAffinity|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#podaffinity-v1-core Affinity *core.PodAffinity `json:"affinity,omitempty"` // NodeAffinity specified additional nodeAffinity settings in ArangoDB Pod definitions + // +doc/type: core.NodeAffinity + // +doc/link: Documentation of code.NodeAffinity|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#nodeaffinity-v1-core NodeAffinity *core.NodeAffinity `json:"nodeAffinity,omitempty"` // 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. SidecarCoreNames []string `json:"sidecarCoreNames,omitempty"` // Sidecars specifies a list of additional containers to be started + // +doc/type: []core.Container + // +doc/link: Documentation of core.Container|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#container-v1-core Sidecars []core.Container `json:"sidecars,omitempty"` // SecurityContext specifies security context for group SecurityContext *ServerGroupSpecSecurityContext `json:"securityContext,omitempty"` // Volumes define list of volumes mounted to pod Volumes ServerGroupSpecVolumes `json:"volumes,omitempty"` // VolumeMounts define list of volume mounts mounted into server container + // +doc/type: []ServerGroupSpecVolumeMount + // +doc/link: Documentation of ServerGroupSpecVolumeMount|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#volumemount-v1-core VolumeMounts ServerGroupSpecVolumeMounts `json:"volumeMounts,omitempty"` // EphemeralVolumes keeps information about ephemeral volumes. EphemeralVolumes *EphemeralVolumes `json:"ephemeralVolumes,omitempty"` diff --git a/pkg/apis/deployment/v2alpha1/server_group_volume.go b/pkg/apis/deployment/v2alpha1/server_group_volume.go index e2bdec4ec..6527a6348 100644 --- a/pkg/apis/deployment/v2alpha1/server_group_volume.go +++ b/pkg/apis/deployment/v2alpha1/server_group_volume.go @@ -1,7 +1,7 @@ // // DISCLAIMER // -// Copyright 2016-2022 ArangoDB GmbH, Cologne, Germany +// Copyright 2016-2023 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. @@ -128,18 +128,28 @@ type ServerGroupSpecVolume struct { Name string `json:"name"` // Secret which should be mounted into pod + // +doc/type: core.SecretVolumeSource + // +doc/link: Documentation of core.SecretVolumeSource|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#secretvolumesource-v1-core Secret *ServerGroupSpecVolumeSecret `json:"secret,omitempty"` // ConfigMap which should be mounted into pod + // +doc/type: core.ConfigMapVolumeSource + // +doc/link: Documentation of core.ConfigMapVolumeSource|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#configmapvolumesource-v1-core ConfigMap *ServerGroupSpecVolumeConfigMap `json:"configMap,omitempty"` // EmptyDir + // +doc/type: core.EmptyDirVolumeSource + // +doc/link: Documentation of core.EmptyDirVolumeSource|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#emptydirvolumesource-v1-core EmptyDir *ServerGroupSpecVolumeEmptyDir `json:"emptyDir,omitempty"` // HostPath + // +doc/type: core.HostPathVolumeSource + // +doc/link: Documentation of core.HostPathVolumeSource|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#hostpathvolumesource-v1-core HostPath *ServerGroupSpecVolumeHostPath `json:"hostPath,omitempty"` // PersistentVolumeClaim + // +doc/type: core.PersistentVolumeClaimVolumeSource + // +doc/link: Documentation of core.PersistentVolumeClaimVolumeSource|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#persistentvolumeclaimvolumesource-v1-core PersistentVolumeClaim *ServerGroupSpecVolumePersistentVolumeClaim `json:"persistentVolumeClaim,omitempty"` } diff --git a/pkg/apis/deployment/v2alpha1/server_id_group_spec.go b/pkg/apis/deployment/v2alpha1/server_id_group_spec.go index 419f043bb..750060727 100644 --- a/pkg/apis/deployment/v2alpha1/server_id_group_spec.go +++ b/pkg/apis/deployment/v2alpha1/server_id_group_spec.go @@ -1,7 +1,7 @@ // // DISCLAIMER // -// Copyright 2016-2022 ArangoDB GmbH, Cologne, Germany +// Copyright 2016-2023 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. @@ -27,22 +27,32 @@ type ServerIDGroupSpec struct { // Entrypoint overrides container executable Entrypoint *string `json:"entrypoint,omitempty"` // Tolerations specifies the tolerations added to Pods in this group. + // +doc/type: []core.Toleration + // +doc/link: Documentation of core.Toleration|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#toleration-v1-core Tolerations []core.Toleration `json:"tolerations,omitempty"` // NodeSelector speficies a set of selectors for nodes NodeSelector map[string]string `json:"nodeSelector,omitempty"` // PriorityClassName specifies a priority class name PriorityClassName string `json:"priorityClassName,omitempty"` // AntiAffinity specified additional antiAffinity settings in ArangoDB Pod definitions + // +doc/type: core.PodAntiAffinity + // +doc/link: Documentation of core.Pod.AntiAffinity|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#podantiaffinity-v1-core AntiAffinity *core.PodAntiAffinity `json:"antiAffinity,omitempty"` // Affinity specified additional affinity settings in ArangoDB Pod definitions + // +doc/type: core.PodAffinity + // +doc/link: Documentation of core.PodAffinity|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#podaffinity-v1-core Affinity *core.PodAffinity `json:"affinity,omitempty"` // NodeAffinity specified additional nodeAffinity settings in ArangoDB Pod definitions + // +doc/type: core.NodeAffinity + // +doc/link: Documentation of code.NodeAffinity|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#nodeaffinity-v1-core NodeAffinity *core.NodeAffinity `json:"nodeAffinity,omitempty"` // ServiceAccountName specifies the name of the service account used for Pods in this group. ServiceAccountName *string `json:"serviceAccountName,omitempty"` // SecurityContext specifies security context for group SecurityContext *ServerGroupSpecSecurityContext `json:"securityContext,omitempty"` // Resources holds resource requests & limits + // +doc/type: core.ResourceRequirements + // +doc/link: Documentation of core.ResourceRequirements|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.26/#resourcerequirements-v1-core Resources *core.ResourceRequirements `json:"resources,omitempty"` } diff --git a/pkg/apis/deployment/v2alpha1/timeouts.go b/pkg/apis/deployment/v2alpha1/timeouts.go index 6c28f53fd..3a2ec5591 100644 --- a/pkg/apis/deployment/v2alpha1/timeouts.go +++ b/pkg/apis/deployment/v2alpha1/timeouts.go @@ -35,7 +35,12 @@ type Timeouts struct { // MaintenanceGracePeriod action timeout MaintenanceGracePeriod *Timeout `json:"maintenanceGracePeriod,omitempty"` - // Actions + // Actions keep list of the actions timeouts. + // +doc/type: map[string]meta.Duration + // +doc/link: List of supported action names|/docs/generated/actions.md + // +doc/link: Definition of meta.Duration|https://github.com/kubernetes/apimachinery/blob/v0.26.6/pkg/apis/meta/v1/duration.go + // +doc/example: actions: + // +doc/example: AddMember: 30m Actions ActionTimeouts `json:"actions,omitempty"` // deprecated diff --git a/pkg/deployment/pod/security.go b/pkg/deployment/pod/security.go index a483c7d70..bc7a8795c 100644 --- a/pkg/deployment/pod/security.go +++ b/pkg/deployment/pod/security.go @@ -1,7 +1,7 @@ // // DISCLAIMER // -// Copyright 2016-2022 ArangoDB GmbH, Cologne, Germany +// Copyright 2016-2023 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.