v1

package
v0.0.0-...-44f2bf6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 25, 2024 License: Apache-2.0 Imports: 38 Imported by: 0

Documentation

Overview

+k8s:deepcopy-gen=package +groupName=database.arangodb.com

Index

Constants

View Source
const (

	// ActionsDefaultTimeout define default timeout
	ActionsDefaultTimeout time.Duration = 600 * time.Second // 10m0s

	// ActionAddMemberDefaultTimeout define default timeout for action ActionAddMember
	ActionAddMemberDefaultTimeout time.Duration = 600 * time.Second // 10m0s

	// ActionAppendTLSCACertificateDefaultTimeout define default timeout for action ActionAppendTLSCACertificate
	ActionAppendTLSCACertificateDefaultTimeout time.Duration = 1800 * time.Second // 30m0s

	// ActionArangoMemberUpdatePodSpecDefaultTimeout define default timeout for action ActionArangoMemberUpdatePodSpec
	ActionArangoMemberUpdatePodSpecDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionArangoMemberUpdatePodStatusDefaultTimeout define default timeout for action ActionArangoMemberUpdatePodStatus
	ActionArangoMemberUpdatePodStatusDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionBackupRestoreDefaultTimeout define default timeout for action ActionBackupRestore
	ActionBackupRestoreDefaultTimeout time.Duration = 900 * time.Second // 15m0s

	// ActionBackupRestoreCleanDefaultTimeout define default timeout for action ActionBackupRestoreClean
	ActionBackupRestoreCleanDefaultTimeout time.Duration = 900 * time.Second // 15m0s

	// ActionBootstrapSetPasswordDefaultTimeout define default timeout for action ActionBootstrapSetPassword
	ActionBootstrapSetPasswordDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionBootstrapUpdateDefaultTimeout define default timeout for action ActionBootstrapUpdate
	ActionBootstrapUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionCleanMemberServiceDefaultTimeout define default timeout for action ActionCleanMemberService
	ActionCleanMemberServiceDefaultTimeout time.Duration = 1800 * time.Second // 30m0s

	// ActionCleanOutMemberDefaultTimeout define default timeout for action ActionCleanOutMember
	ActionCleanOutMemberDefaultTimeout time.Duration = 172800 * time.Second // 48h0m0s

	// ActionCleanTLSCACertificateDefaultTimeout define default timeout for action ActionCleanTLSCACertificate
	ActionCleanTLSCACertificateDefaultTimeout time.Duration = 1800 * time.Second // 30m0s

	// ActionCleanTLSKeyfileCertificateDefaultTimeout define default timeout for action ActionCleanTLSKeyfileCertificate
	ActionCleanTLSKeyfileCertificateDefaultTimeout time.Duration = 1800 * time.Second // 30m0s

	// ActionClusterMemberCleanupDefaultTimeout define default timeout for action ActionClusterMemberCleanup
	ActionClusterMemberCleanupDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionDisableClusterScalingDefaultTimeout define default timeout for action ActionDisableClusterScaling
	ActionDisableClusterScalingDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionDisableMaintenanceDefaultTimeout define default timeout for action ActionDisableMaintenance
	ActionDisableMaintenanceDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionDisableMemberMaintenanceDefaultTimeout define default timeout for action ActionDisableMemberMaintenance
	ActionDisableMemberMaintenanceDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionEnableClusterScalingDefaultTimeout define default timeout for action ActionEnableClusterScaling
	ActionEnableClusterScalingDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionEnableMaintenanceDefaultTimeout define default timeout for action ActionEnableMaintenance
	ActionEnableMaintenanceDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionEnableMemberMaintenanceDefaultTimeout define default timeout for action ActionEnableMemberMaintenance
	ActionEnableMemberMaintenanceDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionEncryptionKeyAddDefaultTimeout define default timeout for action ActionEncryptionKeyAdd
	ActionEncryptionKeyAddDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionEncryptionKeyPropagatedDefaultTimeout define default timeout for action ActionEncryptionKeyPropagated
	ActionEncryptionKeyPropagatedDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionEncryptionKeyRefreshDefaultTimeout define default timeout for action ActionEncryptionKeyRefresh
	ActionEncryptionKeyRefreshDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionEncryptionKeyRemoveDefaultTimeout define default timeout for action ActionEncryptionKeyRemove
	ActionEncryptionKeyRemoveDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionEncryptionKeyStatusUpdateDefaultTimeout define default timeout for action ActionEncryptionKeyStatusUpdate
	ActionEncryptionKeyStatusUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionEnforceResignLeadershipDefaultTimeout define default timeout for action ActionEnforceResignLeadership
	ActionEnforceResignLeadershipDefaultTimeout time.Duration = 2700 * time.Second // 45m0s

	// ActionIdleDefaultTimeout define default timeout for action ActionIdle
	ActionIdleDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionJWTAddDefaultTimeout define default timeout for action ActionJWTAdd
	ActionJWTAddDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionJWTCleanDefaultTimeout define default timeout for action ActionJWTClean
	ActionJWTCleanDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionJWTPropagatedDefaultTimeout define default timeout for action ActionJWTPropagated
	ActionJWTPropagatedDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionJWTRefreshDefaultTimeout define default timeout for action ActionJWTRefresh
	ActionJWTRefreshDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionJWTSetActiveDefaultTimeout define default timeout for action ActionJWTSetActive
	ActionJWTSetActiveDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionJWTStatusUpdateDefaultTimeout define default timeout for action ActionJWTStatusUpdate
	ActionJWTStatusUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionKillMemberPodDefaultTimeout define default timeout for action ActionKillMemberPod
	ActionKillMemberPodDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionLicenseSetDefaultTimeout define default timeout for action ActionLicenseSet
	ActionLicenseSetDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionMarkToRemoveMemberDefaultTimeout define default timeout for action ActionMarkToRemoveMember
	ActionMarkToRemoveMemberDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionMemberPhaseUpdateDefaultTimeout define default timeout for action ActionMemberPhaseUpdate
	ActionMemberPhaseUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionMemberRIDUpdateDefaultTimeout define default timeout for action ActionMemberRIDUpdate
	ActionMemberRIDUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionMemberStatusSyncDefaultTimeout define default timeout for action ActionMemberStatusSync
	ActionMemberStatusSyncDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionPVCResizeDefaultTimeout define default timeout for action ActionPVCResize
	ActionPVCResizeDefaultTimeout time.Duration = 1800 * time.Second // 30m0s

	// ActionPVCResizedDefaultTimeout define default timeout for action ActionPVCResized
	ActionPVCResizedDefaultTimeout time.Duration = 900 * time.Second // 15m0s

	// ActionPlaceHolderDefaultTimeout define default timeout for action ActionPlaceHolder
	ActionPlaceHolderDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionRebalancerCheckDefaultTimeout define default timeout for action ActionRebalancerCheck
	ActionRebalancerCheckDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionRebalancerCheckV2DefaultTimeout define default timeout for action ActionRebalancerCheckV2
	ActionRebalancerCheckV2DefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionRebalancerCleanDefaultTimeout define default timeout for action ActionRebalancerClean
	ActionRebalancerCleanDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionRebalancerCleanV2DefaultTimeout define default timeout for action ActionRebalancerCleanV2
	ActionRebalancerCleanV2DefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionRebalancerGenerateDefaultTimeout define default timeout for action ActionRebalancerGenerate
	ActionRebalancerGenerateDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionRebalancerGenerateV2DefaultTimeout define default timeout for action ActionRebalancerGenerateV2
	ActionRebalancerGenerateV2DefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionRebuildOutSyncedShardsDefaultTimeout define default timeout for action ActionRebuildOutSyncedShards
	ActionRebuildOutSyncedShardsDefaultTimeout time.Duration = 86400 * time.Second // 24h0m0s

	// ActionRecreateMemberDefaultTimeout define default timeout for action ActionRecreateMember
	ActionRecreateMemberDefaultTimeout time.Duration = 900 * time.Second // 15m0s

	// ActionRefreshTLSCADefaultTimeout define default timeout for action ActionRefreshTLSCA
	ActionRefreshTLSCADefaultTimeout time.Duration = 1800 * time.Second // 30m0s

	// ActionRefreshTLSKeyfileCertificateDefaultTimeout define default timeout for action ActionRefreshTLSKeyfileCertificate
	ActionRefreshTLSKeyfileCertificateDefaultTimeout time.Duration = 1800 * time.Second // 30m0s

	// ActionRemoveMemberDefaultTimeout define default timeout for action ActionRemoveMember
	ActionRemoveMemberDefaultTimeout time.Duration = 900 * time.Second // 15m0s

	// ActionRemoveMemberPVCDefaultTimeout define default timeout for action ActionRemoveMemberPVC
	ActionRemoveMemberPVCDefaultTimeout time.Duration = 900 * time.Second // 15m0s

	// ActionRenewTLSCACertificateDefaultTimeout define default timeout for action ActionRenewTLSCACertificate
	ActionRenewTLSCACertificateDefaultTimeout time.Duration = 1800 * time.Second // 30m0s

	// ActionRenewTLSCertificateDefaultTimeout define default timeout for action ActionRenewTLSCertificate
	ActionRenewTLSCertificateDefaultTimeout time.Duration = 1800 * time.Second // 30m0s

	// ActionResignLeadershipDefaultTimeout define default timeout for action ActionResignLeadership
	ActionResignLeadershipDefaultTimeout time.Duration = 1800 * time.Second // 30m0s

	// ActionResourceSyncDefaultTimeout define default timeout for action ActionResourceSync
	ActionResourceSyncDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionRotateMemberDefaultTimeout define default timeout for action ActionRotateMember
	ActionRotateMemberDefaultTimeout time.Duration = 900 * time.Second // 15m0s

	// ActionRotateStartMemberDefaultTimeout define default timeout for action ActionRotateStartMember
	ActionRotateStartMemberDefaultTimeout time.Duration = 900 * time.Second // 15m0s

	// ActionRotateStopMemberDefaultTimeout define default timeout for action ActionRotateStopMember
	ActionRotateStopMemberDefaultTimeout time.Duration = 900 * time.Second // 15m0s

	// ActionRuntimeContainerArgsLogLevelUpdateDefaultTimeout define default timeout for action ActionRuntimeContainerArgsLogLevelUpdate
	ActionRuntimeContainerArgsLogLevelUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionRuntimeContainerImageUpdateDefaultTimeout define default timeout for action ActionRuntimeContainerImageUpdate
	ActionRuntimeContainerImageUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionRuntimeContainerSyncTolerationsDefaultTimeout define default timeout for action ActionRuntimeContainerSyncTolerations
	ActionRuntimeContainerSyncTolerationsDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionSetConditionDefaultTimeout define default timeout for action ActionSetCondition
	ActionSetConditionDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionSetConditionV2DefaultTimeout define default timeout for action ActionSetConditionV2
	ActionSetConditionV2DefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionSetCurrentImageDefaultTimeout define default timeout for action ActionSetCurrentImage
	ActionSetCurrentImageDefaultTimeout time.Duration = 21600 * time.Second // 6h0m0s

	// ActionSetCurrentMemberArchDefaultTimeout define default timeout for action ActionSetCurrentMemberArch
	ActionSetCurrentMemberArchDefaultTimeout time.Duration = 600 * time.Second // 10m0s

	// ActionSetMaintenanceConditionDefaultTimeout define default timeout for action ActionSetMaintenanceCondition
	ActionSetMaintenanceConditionDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionSetMemberConditionDefaultTimeout define default timeout for action ActionSetMemberCondition
	ActionSetMemberConditionDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionSetMemberConditionV2DefaultTimeout define default timeout for action ActionSetMemberConditionV2
	ActionSetMemberConditionV2DefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionSetMemberCurrentImageDefaultTimeout define default timeout for action ActionSetMemberCurrentImage
	ActionSetMemberCurrentImageDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionShutdownMemberDefaultTimeout define default timeout for action ActionShutdownMember
	ActionShutdownMemberDefaultTimeout time.Duration = 1800 * time.Second // 30m0s

	// ActionTLSKeyStatusUpdateDefaultTimeout define default timeout for action ActionTLSKeyStatusUpdate
	ActionTLSKeyStatusUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionTLSPropagatedDefaultTimeout define default timeout for action ActionTLSPropagated
	ActionTLSPropagatedDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionTimezoneSecretSetDefaultTimeout define default timeout for action ActionTimezoneSecretSet
	ActionTimezoneSecretSetDefaultTimeout time.Duration = 1800 * time.Second // 30m0s

	// ActionTopologyDisableDefaultTimeout define default timeout for action ActionTopologyDisable
	ActionTopologyDisableDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionTopologyEnableDefaultTimeout define default timeout for action ActionTopologyEnable
	ActionTopologyEnableDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionTopologyMemberAssignmentDefaultTimeout define default timeout for action ActionTopologyMemberAssignment
	ActionTopologyMemberAssignmentDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionTopologyZonesUpdateDefaultTimeout define default timeout for action ActionTopologyZonesUpdate
	ActionTopologyZonesUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionUpToDateUpdateDefaultTimeout define default timeout for action ActionUpToDateUpdate
	ActionUpToDateUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout

	// ActionUpdateTLSSNIDefaultTimeout define default timeout for action ActionUpdateTLSSNI
	ActionUpdateTLSSNIDefaultTimeout time.Duration = 600 * time.Second // 10m0s

	// ActionUpgradeMemberDefaultTimeout define default timeout for action ActionUpgradeMember
	ActionUpgradeMemberDefaultTimeout time.Duration = 21600 * time.Second // 6h0m0s

	// ActionWaitForMemberInSyncDefaultTimeout define default timeout for action ActionWaitForMemberInSync
	ActionWaitForMemberInSyncDefaultTimeout time.Duration = 1800 * time.Second // 30m0s

	// ActionWaitForMemberReadyDefaultTimeout define default timeout for action ActionWaitForMemberReady
	ActionWaitForMemberReadyDefaultTimeout time.Duration = 1800 * time.Second // 30m0s

	// ActionWaitForMemberUpDefaultTimeout define default timeout for action ActionWaitForMemberUp
	ActionWaitForMemberUpDefaultTimeout time.Duration = 1800 * time.Second // 30m0s

	// ActionTypeAddMember in scopes Normal. Adds new member to the Member list
	ActionTypeAddMember ActionType = "AddMember"

	// ActionTypeAppendTLSCACertificate in scopes Normal. Append Certificate into CA TrustStore
	ActionTypeAppendTLSCACertificate ActionType = "AppendTLSCACertificate"

	// ActionTypeArangoMemberUpdatePodSpec in scopes High. Propagate Member Pod spec (requested)
	ActionTypeArangoMemberUpdatePodSpec ActionType = "ArangoMemberUpdatePodSpec"

	// ActionTypeArangoMemberUpdatePodStatus in scopes High. Propagate Member Pod status (current)
	ActionTypeArangoMemberUpdatePodStatus ActionType = "ArangoMemberUpdatePodStatus"

	// ActionTypeBackupRestore in scopes Normal. Restore selected Backup
	ActionTypeBackupRestore ActionType = "BackupRestore"

	// ActionTypeBackupRestoreClean in scopes Normal. Clean restore status in case of restore spec change
	ActionTypeBackupRestoreClean ActionType = "BackupRestoreClean"

	// ActionTypeBootstrapSetPassword in scopes Normal. Change password during bootstrap procedure
	ActionTypeBootstrapSetPassword ActionType = "BootstrapSetPassword"

	// ActionTypeBootstrapUpdate in scopes Normal. Update bootstrap status
	ActionTypeBootstrapUpdate ActionType = "BootstrapUpdate"

	// ActionTypeCleanMemberService in scopes Normal. Removes Server Service
	ActionTypeCleanMemberService ActionType = "CleanMemberService"

	// ActionTypeCleanOutMember in scopes Normal. Run the CleanOut job on member
	ActionTypeCleanOutMember ActionType = "CleanOutMember"

	// ActionTypeCleanTLSCACertificate in scopes Normal. Remove Certificate from CA TrustStore
	ActionTypeCleanTLSCACertificate ActionType = "CleanTLSCACertificate"

	// ActionTypeCleanTLSKeyfileCertificate in scopes Normal. Remove old TLS certificate from server
	ActionTypeCleanTLSKeyfileCertificate ActionType = "CleanTLSKeyfileCertificate"

	// ActionTypeClusterMemberCleanup in scopes Normal. Remove member from Cluster if it is gone already (Coordinators)
	ActionTypeClusterMemberCleanup ActionType = "ClusterMemberCleanup"

	// ActionTypeDisableClusterScaling in scopes Normal. Disable Cluster Scaling integration
	//
	// Deprecated: action is not used anymore
	ActionTypeDisableClusterScaling ActionType = "DisableClusterScaling"

	// ActionTypeDisableMaintenance in scopes Normal. Disable ArangoDB maintenance mode
	ActionTypeDisableMaintenance ActionType = "DisableMaintenance"

	// ActionTypeDisableMemberMaintenance in scopes Normal. Disable ArangoDB DBServer maintenance mode
	ActionTypeDisableMemberMaintenance ActionType = "DisableMemberMaintenance"

	// ActionTypeEnableClusterScaling in scopes Normal. Enable Cluster Scaling integration
	//
	// Deprecated: action is not used anymore
	ActionTypeEnableClusterScaling ActionType = "EnableClusterScaling"

	// ActionTypeEnableMaintenance in scopes Normal. Enable ArangoDB maintenance mode
	ActionTypeEnableMaintenance ActionType = "EnableMaintenance"

	// ActionTypeEnableMemberMaintenance in scopes Normal. Enable ArangoDB DBServer maintenance mode
	ActionTypeEnableMemberMaintenance ActionType = "EnableMemberMaintenance"

	// ActionTypeEncryptionKeyAdd in scopes Normal. Add the encryption key to the pool
	ActionTypeEncryptionKeyAdd ActionType = "EncryptionKeyAdd"

	// ActionTypeEncryptionKeyPropagated in scopes Normal. Update condition of encryption propagation
	ActionTypeEncryptionKeyPropagated ActionType = "EncryptionKeyPropagated"

	// ActionTypeEncryptionKeyRefresh in scopes Normal. Refresh the encryption keys on member
	ActionTypeEncryptionKeyRefresh ActionType = "EncryptionKeyRefresh"

	// ActionTypeEncryptionKeyRemove in scopes Normal. Remove the encryption key to the pool
	ActionTypeEncryptionKeyRemove ActionType = "EncryptionKeyRemove"

	// ActionTypeEncryptionKeyStatusUpdate in scopes Normal. Update status of encryption propagation
	ActionTypeEncryptionKeyStatusUpdate ActionType = "EncryptionKeyStatusUpdate"

	// ActionTypeEnforceResignLeadership in scopes Normal. Run the ResignLeadership job on DBServer and checks data compatibility after
	ActionTypeEnforceResignLeadership ActionType = "EnforceResignLeadership"

	// ActionTypeIdle in scopes Normal. Define idle operation in case if preconditions are not meet
	ActionTypeIdle ActionType = "Idle"

	// ActionTypeJWTAdd in scopes Normal. Adds new JWT to the pool
	ActionTypeJWTAdd ActionType = "JWTAdd"

	// ActionTypeJWTClean in scopes Normal. Remove JWT key from the pool
	ActionTypeJWTClean ActionType = "JWTClean"

	// ActionTypeJWTPropagated in scopes Normal. Update condition of JWT propagation
	ActionTypeJWTPropagated ActionType = "JWTPropagated"

	// ActionTypeJWTRefresh in scopes Normal. Refresh current JWT secrets on the member
	ActionTypeJWTRefresh ActionType = "JWTRefresh"

	// ActionTypeJWTSetActive in scopes Normal. Change active JWT key on the cluster
	ActionTypeJWTSetActive ActionType = "JWTSetActive"

	// ActionTypeJWTStatusUpdate in scopes Normal. Update status of JWT propagation
	ActionTypeJWTStatusUpdate ActionType = "JWTStatusUpdate"

	// ActionTypeKillMemberPod in scopes High and Normal. Execute Delete on Pod (put pod in Terminating state)
	ActionTypeKillMemberPod ActionType = "KillMemberPod"

	// ActionTypeLicenseSet in scopes Normal. Update Cluster license (3.9+)
	ActionTypeLicenseSet ActionType = "LicenseSet"

	// ActionTypeMarkToRemoveMember in scopes Normal. Marks member to be removed. Used when member Pod is annotated with replace annotation
	ActionTypeMarkToRemoveMember ActionType = "MarkToRemoveMember"

	// ActionTypeMemberPhaseUpdate in scopes High. Change member phase
	ActionTypeMemberPhaseUpdate ActionType = "MemberPhaseUpdate"

	// ActionTypeMemberRIDUpdate in scopes High. Update Run ID of member
	//
	// Deprecated: action is not used anymore
	ActionTypeMemberRIDUpdate ActionType = "MemberRIDUpdate"

	// ActionTypeMemberStatusSync in scopes High. Sync ArangoMember Status with ArangoDeployment Status, to keep Member information up to date
	ActionTypeMemberStatusSync ActionType = "MemberStatusSync"

	// ActionTypePVCResize in scopes Normal. Start the resize procedure. Updates PVC Requests field
	ActionTypePVCResize ActionType = "PVCResize"

	// ActionTypePVCResized in scopes Normal. Waits for PVC resize to be completed
	ActionTypePVCResized ActionType = "PVCResized"

	// ActionTypePlaceHolder in scopes Normal. Empty placeholder action
	ActionTypePlaceHolder ActionType = "PlaceHolder"

	// ActionTypeRebalancerCheck in scopes Normal. Check Rebalancer job progress
	ActionTypeRebalancerCheck ActionType = "RebalancerCheck"

	// ActionTypeRebalancerCheckV2 in scopes Normal. Check Rebalancer job progress
	ActionTypeRebalancerCheckV2 ActionType = "RebalancerCheckV2"

	// ActionTypeRebalancerClean in scopes Normal. Cleans Rebalancer jobs
	ActionTypeRebalancerClean ActionType = "RebalancerClean"

	// ActionTypeRebalancerCleanV2 in scopes Normal. Cleans Rebalancer jobs
	ActionTypeRebalancerCleanV2 ActionType = "RebalancerCleanV2"

	// ActionTypeRebalancerGenerate in scopes Normal. Generates the Rebalancer plan
	ActionTypeRebalancerGenerate ActionType = "RebalancerGenerate"

	// ActionTypeRebalancerGenerateV2 in scopes Normal. Generates the Rebalancer plan
	ActionTypeRebalancerGenerateV2 ActionType = "RebalancerGenerateV2"

	// ActionTypeRebuildOutSyncedShards in scopes High. Run Rebuild Out Synced Shards procedure for DBServers
	ActionTypeRebuildOutSyncedShards ActionType = "RebuildOutSyncedShards"

	// ActionTypeRecreateMember in scopes Normal. Recreate member with same ID and Data
	ActionTypeRecreateMember ActionType = "RecreateMember"

	// ActionTypeRefreshTLSCA in scopes Normal. Refresh internal CA
	ActionTypeRefreshTLSCA ActionType = "RefreshTLSCA"

	// ActionTypeRefreshTLSKeyfileCertificate in scopes Normal. Recreate Server TLS Certificate secret
	ActionTypeRefreshTLSKeyfileCertificate ActionType = "RefreshTLSKeyfileCertificate"

	// ActionTypeRemoveMember in scopes Normal. Removes member from the Cluster and Status
	ActionTypeRemoveMember ActionType = "RemoveMember"

	// ActionTypeRemoveMemberPVC in scopes Normal. Removes member PVC and enforce recreate procedure
	ActionTypeRemoveMemberPVC ActionType = "RemoveMemberPVC"

	// ActionTypeRenewTLSCACertificate in scopes Normal. Recreate Managed CA secret
	ActionTypeRenewTLSCACertificate ActionType = "RenewTLSCACertificate"

	// ActionTypeRenewTLSCertificate in scopes Normal. Recreate Server TLS Certificate secret
	ActionTypeRenewTLSCertificate ActionType = "RenewTLSCertificate"

	// ActionTypeResignLeadership in scopes Normal. Run the ResignLeadership job on DBServer
	ActionTypeResignLeadership ActionType = "ResignLeadership"

	// ActionTypeResourceSync in scopes Normal. Runs the Resource sync
	ActionTypeResourceSync ActionType = "ResourceSync"

	// ActionTypeRotateMember in scopes Normal. Waits for Pod restart and recreation
	ActionTypeRotateMember ActionType = "RotateMember"

	// ActionTypeRotateStartMember in scopes Normal. Start member rotation. After this action member is down
	ActionTypeRotateStartMember ActionType = "RotateStartMember"

	// ActionTypeRotateStopMember in scopes Normal. Finalize member rotation. After this action member is started back
	ActionTypeRotateStopMember ActionType = "RotateStopMember"

	// ActionTypeRuntimeContainerArgsLogLevelUpdate in scopes Normal. Change ArangoDB Member log levels in runtime
	ActionTypeRuntimeContainerArgsLogLevelUpdate ActionType = "RuntimeContainerArgsLogLevelUpdate"

	// ActionTypeRuntimeContainerImageUpdate in scopes Normal. Update Container Image in runtime
	ActionTypeRuntimeContainerImageUpdate ActionType = "RuntimeContainerImageUpdate"

	// ActionTypeRuntimeContainerSyncTolerations in scopes Normal. Update Pod Tolerations in runtime
	ActionTypeRuntimeContainerSyncTolerations ActionType = "RuntimeContainerSyncTolerations"

	// ActionTypeSetCondition in scopes High. Set deployment condition
	//
	// Deprecated: action is not used anymore
	ActionTypeSetCondition ActionType = "SetCondition"

	// ActionTypeSetConditionV2 in scopes High. Set deployment condition
	ActionTypeSetConditionV2 ActionType = "SetConditionV2"

	// ActionTypeSetCurrentImage in scopes Normal. Update deployment current image after image discovery
	ActionTypeSetCurrentImage ActionType = "SetCurrentImage"

	// ActionTypeSetCurrentMemberArch in scopes Normal. Set current member architecture
	ActionTypeSetCurrentMemberArch ActionType = "SetCurrentMemberArch"

	// ActionTypeSetMaintenanceCondition in scopes Normal. Update ArangoDB maintenance condition
	ActionTypeSetMaintenanceCondition ActionType = "SetMaintenanceCondition"

	// ActionTypeSetMemberCondition in scopes High. Set member condition
	//
	// Deprecated: action is not used anymore
	ActionTypeSetMemberCondition ActionType = "SetMemberCondition"

	// ActionTypeSetMemberConditionV2 in scopes High. Set member condition
	ActionTypeSetMemberConditionV2 ActionType = "SetMemberConditionV2"

	// ActionTypeSetMemberCurrentImage in scopes Normal. Update Member current image
	ActionTypeSetMemberCurrentImage ActionType = "SetMemberCurrentImage"

	// ActionTypeShutdownMember in scopes Normal. Sends Shutdown requests and waits for container to be stopped
	ActionTypeShutdownMember ActionType = "ShutdownMember"

	// ActionTypeTLSKeyStatusUpdate in scopes Normal. Update Status of TLS propagation process
	ActionTypeTLSKeyStatusUpdate ActionType = "TLSKeyStatusUpdate"

	// ActionTypeTLSPropagated in scopes Normal. Update TLS propagation condition
	ActionTypeTLSPropagated ActionType = "TLSPropagated"

	// ActionTypeTimezoneSecretSet in scopes Normal. Set timezone details in cluster
	ActionTypeTimezoneSecretSet ActionType = "TimezoneSecretSet"

	// ActionTypeTopologyDisable in scopes Normal. Disable TopologyAwareness
	ActionTypeTopologyDisable ActionType = "TopologyDisable"

	// ActionTypeTopologyEnable in scopes Normal. Enable TopologyAwareness
	ActionTypeTopologyEnable ActionType = "TopologyEnable"

	// ActionTypeTopologyMemberAssignment in scopes Normal. Update TopologyAwareness Members assignments
	ActionTypeTopologyMemberAssignment ActionType = "TopologyMemberAssignment"

	// ActionTypeTopologyZonesUpdate in scopes Normal. Update TopologyAwareness Zones info
	ActionTypeTopologyZonesUpdate ActionType = "TopologyZonesUpdate"

	// ActionTypeUpToDateUpdate in scopes Normal. Update UpToDate condition
	ActionTypeUpToDateUpdate ActionType = "UpToDateUpdate"

	// ActionTypeUpdateTLSSNI in scopes Normal. Update certificate in SNI
	ActionTypeUpdateTLSSNI ActionType = "UpdateTLSSNI"

	// ActionTypeUpgradeMember in scopes Normal. Run the Upgrade procedure on member
	ActionTypeUpgradeMember ActionType = "UpgradeMember"

	// ActionTypeWaitForMemberInSync in scopes Normal. Wait for member to be in sync. In case of DBServer waits for shards. In case of Agents to catch-up on Agency index
	ActionTypeWaitForMemberInSync ActionType = "WaitForMemberInSync"

	// ActionTypeWaitForMemberReady in scopes Normal. Wait for member Ready condition
	ActionTypeWaitForMemberReady ActionType = "WaitForMemberReady"

	// ActionTypeWaitForMemberUp in scopes Normal. Wait for member to be responsive
	ActionTypeWaitForMemberUp ActionType = "WaitForMemberUp"
)
View Source
const (
	// ArangoDeploymentArchitectureAMD64 define const for architecture for amd64
	ArangoDeploymentArchitectureAMD64 ArangoDeploymentArchitectureType = "amd64"
	// ArangoDeploymentArchitectureARM64 define const for architecture for arm64
	ArangoDeploymentArchitectureARM64 ArangoDeploymentArchitectureType = "arm64"

	// ArangoDeploymentArchitectureDefault define default architecture used by Operator
	ArangoDeploymentArchitectureDefault = ArangoDeploymentArchitectureAMD64

	// ArangoDeploymentArchitectureCurrent define current Operator architecture
	ArangoDeploymentArchitectureCurrent = ArangoDeploymentArchitectureType(runtime.GOARCH)
)
View Source
const (
	DeploymentImageDiscoveryDirectMode  = "direct"
	DeploymentImageDiscoveryKubeletMode = "kubelet"
)
View Source
const (
	ProbeTypeLiveness  = "liveness"
	ProbeTypeReadiness = "readiness"
	ProbeTypeStartUp   = "startup"
)
View Source
const (
	ServerGroupUnknown        ServerGroup = 0
	ServerGroupSingle         ServerGroup = 1
	ServerGroupAgents         ServerGroup = 2
	ServerGroupDBServers      ServerGroup = 3
	ServerGroupCoordinators   ServerGroup = 4
	ServerGroupSyncMasters    ServerGroup = 5
	ServerGroupSyncWorkers    ServerGroup = 6
	ServerGroupGateways       ServerGroup = 7
	ServerGroupImageDiscovery ServerGroup = -1

	ServerGroupSingleString         = "single"
	ServerGroupAgentsString         = "agent"
	ServerGroupDBServersString      = "dbserver"
	ServerGroupCoordinatorsString   = "coordinator"
	ServerGroupSyncMastersString    = "syncmaster"
	ServerGroupSyncWorkersString    = "syncworker"
	ServerGroupGatewaysString       = "gateways"
	ServerGroupImageDiscoveryString = "id"

	ServerGroupSingleAbbreviatedString         = "sngl"
	ServerGroupAgentsAbbreviatedString         = "agnt"
	ServerGroupDBServersAbbreviatedString      = "prmr"
	ServerGroupCoordinatorsAbbreviatedString   = "crdn"
	ServerGroupSyncMastersAbbreviatedString    = "syma"
	ServerGroupSyncWorkersAbbreviatedString    = "sywo"
	ServerGroupGatewaysAbbreviatedString       = "gway"
	ServerGroupImageDiscoveryAbbreviatedString = "id"
)
View Source
const (
	ServerGroupReservedContainerNameServer   = "server"
	ServerGroupReservedContainerNameExporter = "exporter"
)
View Source
const (
	ServerGroupReservedInitContainerNameLifecycle    = "init-lifecycle"
	ServerGroupReservedInitContainerNameUUID         = "uuid"
	ServerGroupReservedInitContainerNameWait         = "wait"
	ServerGroupReservedInitContainerNameStartup      = "arango-init-startup"
	ServerGroupReservedInitContainerNameUpgrade      = "upgrade"
	ServerGroupReservedInitContainerNameVersionCheck = "version-check"
)
View Source
const (
	ServerGroupSpecVolumeRenderParamDeploymentName      = "DEPLOYMENT_NAME"
	ServerGroupSpecVolumeRenderParamDeploymentNamespace = "DEPLOYMENT_NAMESPACE"
	ServerGroupSpecVolumeRenderParamMemberID            = "MEMBER_ID"
	ServerGroupSpecVolumeRenderParamMemberRoleAbbr      = "ROLE_ABBR"
	ServerGroupSpecVolumeRenderParamMemberRole          = "ROLE"
)
View Source
const ArangoDeploymentRebalancerDefaultParallelMoves = 32
View Source
const (
	ArangoDeploymentVersion = "v1"
)
View Source
const (
	// CASecretNameDisabled is the value of CASecretName to use for disabling authentication.
	CASecretNameDisabled = "None"
)
View Source
const (
	DefaultMaintenanceGracePeriod = 30 * time.Minute
)
View Source
const (
	DefaultTLSTTL = Duration("2610h") // About 3 month
)
View Source
const DefaultTopologySpecLabel = "topology.kubernetes.io/zone"
View Source
const InfiniteTimeout time.Duration = 0
View Source
const (
	// JWTSecretNameDisabled is the value of JWTSecretName to use for disabling authentication.
	JWTSecretNameDisabled = "None"
)
View Source
const (
	// MemberIDPreviousAction is used for Action.MemberID when the MemberID
	// should be derived from the previous action.
	MemberIDPreviousAction = "@previous"
)
View Source
const (
	ParamPodUID = "PodUID"
)
View Source
const ServerGroupSpecNumactlPathDefault = "/usr/bin/numactl"
View Source
const (
	// UserNameRoot root user name
	UserNameRoot = "root"
)

Variables

View Source
var (
	// ValidationError indicates a validation failure
	ValidationError = errors.New("validation failed")

	// AlreadyExistsError indicates an object that already exists
	AlreadyExistsError = errors.New("already exists")

	// NotFoundError indicates an object that cannot be found
	NotFoundError = errors.New("not found")
)
View Source
var (
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	AddToScheme   = SchemeBuilder.AddToScheme

	SchemeGroupVersion = schema.GroupVersion{Group: deployment.ArangoDeploymentGroupName, Version: ArangoDeploymentVersion}
)
View Source
var (
	// AllServerGroups contains a constant list of all known server groups
	AllServerGroups = []ServerGroup{
		ServerGroupAgents,
		ServerGroupSingle,
		ServerGroupDBServers,
		ServerGroupCoordinators,
		ServerGroupSyncMasters,
		ServerGroupSyncWorkers,
		ServerGroupGateways,
	}
	// AllArangoDServerGroups contains a constant list of all ArangoD server groups
	AllArangoDServerGroups = []ServerGroup{
		ServerGroupAgents,
		ServerGroupSingle,
		ServerGroupDBServers,
		ServerGroupCoordinators,
	}
)
View Source
var (
	DefaultImage = "arangodb/arangodb:latest"
)

Functions

func ActionDefaultTimeout

func ActionDefaultTimeout(a ActionType) time.Duration

func GetAllArchFromNodeSelector

func GetAllArchFromNodeSelector(selectors []core.NodeSelectorTerm) map[ArangoDeploymentArchitectureType]bool

func IsAlreadyExists

func IsAlreadyExists(err error) bool

IsAlreadyExists return true when the given error is or is caused by a AlreadyExistsError.

func IsNotFound

func IsNotFound(err error) bool

IsNotFound return true when the given error is or is caused by a NotFoundError.

func IsReservedServerGroupContainerName

func IsReservedServerGroupContainerName(name string) bool

func IsReservedServerGroupInitContainerName

func IsReservedServerGroupInitContainerName(name string) bool

func IsRestrictedVolumeName

func IsRestrictedVolumeName(name string) bool

IsRestrictedVolumeName check of volume name is restricted, for example for originally mounted volumes

func IsValidation

func IsValidation(err error) bool

IsValidation return true when the given error is or is caused by a ValidationError.

func Resource

func Resource(resource string) schema.GroupResource

Resource gets an ArangoCluster GroupResource for a specified resource

func ValidateServerGroupInitContainerName

func ValidateServerGroupInitContainerName(name string) error

Types

type Action

type Action struct {
	// ID of this action (unique for every action)
	ID string `json:"id"`
	// SetID define the unique ID of current action set
	SetID types.UID `json:"setID,omitempty"`
	// Type of action.
	Type ActionType `json:"type"`
	// ID reference of the member involved in this action (if any)
	MemberID string `json:"memberID,omitempty"`
	// Group involved in this action
	Group ServerGroup `json:"group,omitempty"`
	// CreationTime is set when the action is created.
	CreationTime meta.Time `json:"creationTime"`
	// StartTime is set when the action has been started, but needs to wait to be finished.
	StartTime *meta.Time `json:"startTime,omitempty"`
	// Reason for this action
	Reason string `json:"reason,omitempty"`
	// Image used in can of a SetCurrentImage action.
	Image string `json:"image,omitempty"`
	// Params additional parameters used for action
	Params map[string]string `json:"params,omitempty"`
	// Locals additional storage for local variables which are produced during the action.
	Locals PlanLocals `json:"locals,omitempty"`
	// ID reference of the task involved in this action (if any)
	TaskID types.UID `json:"taskID,omitempty"`
	// Architecture of the member involved in this action (if any)
	Architecture ArangoDeploymentArchitectureType `json:"arch,omitempty"`
	// Progress describes the status of the current action.
	Progress string `json:"progress,omitempty"`
}

Action represents a single action to be taken to update a deployment.

func NewAction

func NewAction(actionType ActionType, group ServerGroup, memberID string, reason ...string) Action

NewAction instantiates a new Action.

func NewActionSet

func NewActionSet(actions ...Action) []Action

NewActionSet add new SetID vale to the actions

func (Action) AddParam

func (a Action) AddParam(key, value string) Action

AddParam returns copy of action with set parameter

func (*Action) DeepCopy

func (in *Action) DeepCopy() *Action

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Action.

func (*Action) DeepCopyInto

func (in *Action) DeepCopyInto(out *Action)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Action) Equal

func (a Action) Equal(other Action) bool

Equal compares two Actions

func (Action) GetParam

func (a Action) GetParam(key string) (string, bool)

GetParam returns action parameter

func (Action) IsStarted

func (a Action) IsStarted() bool

IsStarted returns true if the action has been started already.

func (Action) SetArch

SetArch sets the Architecture field to the given value and returns the modified

func (Action) SetImage

func (a Action) SetImage(image string) Action

SetImage sets the Image field to the given value and returns the modified action.

type ActionBuilder

type ActionBuilder interface {
	// NewAction instantiates a new Action.
	NewAction(actionType ActionType, reason ...string) Action

	// Group returns ServerGroup for this builder
	Group() ServerGroup

	// MemberID returns Member ID for this builder
	MemberID() string
}

ActionBuilder allows to generate actions based on predefined group and member id

func NewActionBuilder

func NewActionBuilder(group ServerGroup, memberID string) ActionBuilder

NewActionBuilder create new action builder with provided group and id

type ActionPriority

type ActionPriority int

ActionPriority define action priority

const (
	// ActionPriorityNormal define Normal priority plan
	ActionPriorityNormal ActionPriority = iota
	// ActionPriorityHigh define High priority plan
	ActionPriorityHigh
	// ActionPriorityResource define Resource priority plan
	ActionPriorityResource
	ActionPriorityUnknown
)

func GetActionPriority

func GetActionPriority(a ActionType) ActionPriority

type ActionTimeouts

type ActionTimeouts map[ActionType]Timeout

func (ActionTimeouts) DeepCopy

func (in ActionTimeouts) DeepCopy() ActionTimeouts

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionTimeouts.

func (ActionTimeouts) DeepCopyInto

func (in ActionTimeouts) DeepCopyInto(out *ActionTimeouts)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ActionType

type ActionType string

ActionType is a strongly typed name for a plan action item

func (ActionType) DefaultTimeout

func (a ActionType) DefaultTimeout() time.Duration

func (ActionType) Internal

func (a ActionType) Internal() bool

Internal returns true if action is considered to be internal

func (ActionType) Optional

func (a ActionType) Optional() bool

Optional returns true if action execution wont abort Plan

func (ActionType) Priority

func (a ActionType) Priority() ActionPriority

Priority returns action priority

func (ActionType) String

func (a ActionType) String() string

type ArangoClusterSynchronization

type ArangoClusterSynchronization struct {
	meta.TypeMeta   `json:",inline"`
	meta.ObjectMeta `json:"metadata,omitempty"`
	Spec            ArangoClusterSynchronizationSpec   `json:"spec,omitempty"`
	Status          ArangoClusterSynchronizationStatus `json:"status,omitempty"`
}

ArangoClusterSynchronization contains definition and status of the ArangoDB type Job.

func (*ArangoClusterSynchronization) AsOwner

AsOwner creates an OwnerReference for the given job

func (*ArangoClusterSynchronization) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArangoClusterSynchronization.

func (*ArangoClusterSynchronization) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ArangoClusterSynchronization) DeepCopyObject

func (in *ArangoClusterSynchronization) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ArangoClusterSynchronizationDeploymentStatus

type ArangoClusterSynchronizationDeploymentStatus struct {
	Name      string    `json:"name"`
	Namespace string    `json:"namespace"`
	UID       types.UID `json:"uid"`
}

func (*ArangoClusterSynchronizationDeploymentStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArangoClusterSynchronizationDeploymentStatus.

func (*ArangoClusterSynchronizationDeploymentStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ArangoClusterSynchronizationKubeConfigSpec

type ArangoClusterSynchronizationKubeConfigSpec struct {
	SecretName string `json:"secretName"`
	SecretKey  string `json:"secretKey"`
	Namespace  string `json:"namespace"`
}

func (*ArangoClusterSynchronizationKubeConfigSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArangoClusterSynchronizationKubeConfigSpec.

func (*ArangoClusterSynchronizationKubeConfigSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ArangoClusterSynchronizationKubeConfigSpec) Validate

type ArangoClusterSynchronizationList

type ArangoClusterSynchronizationList struct {
	meta.TypeMeta `json:",inline"`
	meta.ListMeta `json:"metadata,omitempty"`

	Items []ArangoClusterSynchronization `json:"items"`
}

ArangoClusterSynchronizationList is a list of ArangoDB jobs.

func (*ArangoClusterSynchronizationList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArangoClusterSynchronizationList.

func (*ArangoClusterSynchronizationList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ArangoClusterSynchronizationList) DeepCopyObject

func (in *ArangoClusterSynchronizationList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ArangoClusterSynchronizationSpec

type ArangoClusterSynchronizationSpec struct {
	DeploymentName string                                      `json:"deploymentName,omitempty"`
	KubeConfig     *ArangoClusterSynchronizationKubeConfigSpec `json:"kubeconfig,omitempty"`
}

func (*ArangoClusterSynchronizationSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArangoClusterSynchronizationSpec.

func (*ArangoClusterSynchronizationSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ArangoClusterSynchronizationStatus

type ArangoClusterSynchronizationStatus struct {
	Deployment       *ArangoClusterSynchronizationDeploymentStatus `json:"deployment,omitempty"`
	RemoteDeployment *ArangoClusterSynchronizationDeploymentStatus `json:"remoteDeployment,omitempty"`

	Conditions ConditionList `json:"conditions,omitempty"`
}

func (*ArangoClusterSynchronizationStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArangoClusterSynchronizationStatus.

func (*ArangoClusterSynchronizationStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ArangoDeployment

type ArangoDeployment struct {
	meta.TypeMeta   `json:",inline"`
	meta.ObjectMeta `json:"metadata,omitempty"`
	Spec            DeploymentSpec   `json:"spec,omitempty"`
	Status          DeploymentStatus `json:"status,omitempty"`
}

ArangoDeployment contains the entire Kubernetes info for an ArangoDB database deployment.

func (*ArangoDeployment) AsOwner

func (d *ArangoDeployment) AsOwner() meta.OwnerReference

AsOwner creates an OwnerReference for the given deployment

func (*ArangoDeployment) DeepCopy

func (in *ArangoDeployment) DeepCopy() *ArangoDeployment

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArangoDeployment.

func (*ArangoDeployment) DeepCopyInto

func (in *ArangoDeployment) DeepCopyInto(out *ArangoDeployment)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ArangoDeployment) DeepCopyObject

func (in *ArangoDeployment) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*ArangoDeployment) ForeachServerGroup

func (d *ArangoDeployment) ForeachServerGroup(cb ServerGroupFunc, status *DeploymentStatus) error

ForeachServerGroup calls the given callback for all server groups. If the callback returns an error, this error is returned and no other server groups are processed. Groups are processed in this order: agents, single, dbservers, coordinators, syncmasters, syncworkers, gateways

func (*ArangoDeployment) ForeachServerGroupAccepted

func (d *ArangoDeployment) ForeachServerGroupAccepted(cb ServerGroupFunc, status *DeploymentStatus) error

ForeachServerGroupAccepted calls the given callback for all accepted server groups. If the callback returns an error, this error is returned and no other server groups are processed. Groups are processed in this order: agents, single, dbservers, coordinators, syncmasters, syncworkers, gateways

func (ArangoDeployment) GetAcceptedSpec

func (d ArangoDeployment) GetAcceptedSpec() DeploymentSpec

func (ArangoDeployment) IsAccepted

func (d ArangoDeployment) IsAccepted() (bool, error)

IsAccepted checks if accepted version match current version in spec

func (ArangoDeployment) IsUpToDate

func (d ArangoDeployment) IsUpToDate() (bool, error)

IsUpToDate checks if applied version match current version in spec

func (*ArangoDeployment) OwnerOf

func (d *ArangoDeployment) OwnerOf(in meta.Object) bool

type ArangoDeploymentArchitecture

type ArangoDeploymentArchitecture []ArangoDeploymentArchitectureType

ArangoDeploymentArchitecture defines the list of supported architectures. +doc/enum: amd64|Use processors with the x86-64 architecture. +doc/enum: arm64|Use processors with the 64-bit ARM architecture.

func (ArangoDeploymentArchitecture) AsNodeSelectorRequirement

func (a ArangoDeploymentArchitecture) AsNodeSelectorRequirement() core.NodeSelectorTerm

func (ArangoDeploymentArchitecture) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArangoDeploymentArchitecture.

func (ArangoDeploymentArchitecture) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ArangoDeploymentArchitecture) GetDefault

func (ArangoDeploymentArchitecture) IsArchAllowed

func (ArangoDeploymentArchitecture) Validate

func (a ArangoDeploymentArchitecture) Validate() error

type ArangoDeploymentArchitectureType

type ArangoDeploymentArchitectureType string

func (ArangoDeploymentArchitectureType) AsNodeSelectorRequirement

func (a ArangoDeploymentArchitectureType) AsNodeSelectorRequirement() core.NodeSelectorTerm

func (*ArangoDeploymentArchitectureType) Default

func (*ArangoDeploymentArchitectureType) Equal

func (ArangoDeploymentArchitectureType) IsArchMismatch

func (ArangoDeploymentArchitectureType) String

func (ArangoDeploymentArchitectureType) Validate

type ArangoDeploymentList

type ArangoDeploymentList struct {
	meta.TypeMeta `json:",inline"`
	// Standard list metadata
	// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
	meta.ListMeta `json:"metadata,omitempty"`
	Items         []ArangoDeployment `json:"items"`
}

ArangoDeploymentList is a list of ArangoDB clusters.

func (*ArangoDeploymentList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArangoDeploymentList.

func (*ArangoDeploymentList) DeepCopyInto

func (in *ArangoDeploymentList) DeepCopyInto(out *ArangoDeploymentList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ArangoDeploymentList) DeepCopyObject

func (in *ArangoDeploymentList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ArangoDeploymentRebalancerOptimizersSpec

type ArangoDeploymentRebalancerOptimizersSpec struct {
	Leader *bool `json:"leader,omitempty"`
}

func (*ArangoDeploymentRebalancerOptimizersSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArangoDeploymentRebalancerOptimizersSpec.

func (*ArangoDeploymentRebalancerOptimizersSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ArangoDeploymentRebalancerOptimizersSpec) IsLeaderEnabled

func (a *ArangoDeploymentRebalancerOptimizersSpec) IsLeaderEnabled() bool

type ArangoDeploymentRebalancerReadersSpec

type ArangoDeploymentRebalancerReadersSpec struct {
	// Count Enable Shard Count machanism
	//
	// Deprecated: does not work in Rebalancer V2
	Count *bool `json:"count,omitempty"`
}

func (*ArangoDeploymentRebalancerReadersSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArangoDeploymentRebalancerReadersSpec.

func (*ArangoDeploymentRebalancerReadersSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ArangoDeploymentRebalancerReadersSpec) IsCountEnabled

func (a *ArangoDeploymentRebalancerReadersSpec) IsCountEnabled() bool

type ArangoDeploymentRebalancerSpec

type ArangoDeploymentRebalancerSpec struct {
	Enabled *bool `json:"enabled"`

	ParallelMoves *int `json:"parallelMoves,omitempty"`

	Readers *ArangoDeploymentRebalancerReadersSpec `json:"readers,omitempty"`

	Optimizers *ArangoDeploymentRebalancerOptimizersSpec `json:"optimizers,omitempty"`
}

func (*ArangoDeploymentRebalancerSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArangoDeploymentRebalancerSpec.

func (*ArangoDeploymentRebalancerSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ArangoDeploymentRebalancerSpec) GetParallelMoves

func (a *ArangoDeploymentRebalancerSpec) GetParallelMoves() int

func (*ArangoDeploymentRebalancerSpec) IsEnabled

func (a *ArangoDeploymentRebalancerSpec) IsEnabled() bool

type ArangoDeploymentRebalancerStatus

type ArangoDeploymentRebalancerStatus struct {
	LastCheckTime *meta.Time `json:"lastCheckTime,omitempty"`

	MoveJobs []string `json:"moveJobs,omitempty"`
}

func (*ArangoDeploymentRebalancerStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArangoDeploymentRebalancerStatus.

func (*ArangoDeploymentRebalancerStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ArangoDeploymentRebalancerStatus) IsMoveInProgress

func (a *ArangoDeploymentRebalancerStatus) IsMoveInProgress() bool

type ArangoDeploymentRecoverySpec

type ArangoDeploymentRecoverySpec struct {
	AutoRecover *bool `json:"autoRecover"`
}

func (*ArangoDeploymentRecoverySpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArangoDeploymentRecoverySpec.

func (*ArangoDeploymentRecoverySpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ArangoDeploymentRecoverySpec) Get

func (ArangoDeploymentRecoverySpec) GetAutoRecover

func (a ArangoDeploymentRecoverySpec) GetAutoRecover() bool

type ArangoMember

type ArangoMember struct {
	meta.TypeMeta   `json:",inline"`
	meta.ObjectMeta `json:"metadata,omitempty"`
	Spec            ArangoMemberSpec   `json:"spec,omitempty"`
	Status          ArangoMemberStatus `json:"status,omitempty"`
}

ArangoMember contains the entire Kubernetes info for an ArangoDB database members.

func (*ArangoMember) AsOwner

func (a *ArangoMember) AsOwner() meta.OwnerReference

AsOwner creates an OwnerReference for the given member

func (*ArangoMember) DeepCopy

func (in *ArangoMember) DeepCopy() *ArangoMember

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArangoMember.

func (*ArangoMember) DeepCopyInto

func (in *ArangoMember) DeepCopyInto(out *ArangoMember)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ArangoMember) DeepCopyObject

func (in *ArangoMember) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ArangoMemberList

type ArangoMemberList struct {
	meta.TypeMeta `json:",inline"`
	// Standard list metadata
	// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
	meta.ListMeta `json:"metadata,omitempty"`
	Items         []ArangoMember `json:"items"`
}

ArangoMemberList is a list of ArangoDB cluster members.

func (*ArangoMemberList) DeepCopy

func (in *ArangoMemberList) DeepCopy() *ArangoMemberList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArangoMemberList.

func (*ArangoMemberList) DeepCopyInto

func (in *ArangoMemberList) DeepCopyInto(out *ArangoMemberList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ArangoMemberList) DeepCopyObject

func (in *ArangoMemberList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ArangoMemberPodTemplate

type ArangoMemberPodTemplate struct {
	// PodSpec specifies the Pod Spec used for this Member.
	// +doc/type: core.PodTemplateSpec
	// +doc/link: Documentation of core.PodTemplateSpec|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#podtemplatespec-v1-core
	PodSpec *core.PodTemplateSpec `json:"podSpec,omitempty"`

	// PodSpecChecksum keep the Pod Spec Checksum (without ignored fields).
	PodSpecChecksum string `json:"podSpecChecksum,omitempty"`

	// Checksum keep the Pod Spec Checksum (with ignored fields).
	Checksum string `json:"checksum,omitempty"`

	// Deprecated: Endpoint is not saved into the template
	Endpoint *string `json:"endpoint,omitempty"`
}

func GetArangoMemberPodTemplate

func GetArangoMemberPodTemplate(pod *core.PodTemplateSpec, podSpecChecksum string) (*ArangoMemberPodTemplate, error)

func (*ArangoMemberPodTemplate) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArangoMemberPodTemplate.

func (*ArangoMemberPodTemplate) DeepCopyInto

func (in *ArangoMemberPodTemplate) DeepCopyInto(out *ArangoMemberPodTemplate)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ArangoMemberPodTemplate) EqualPodSpecChecksum

func (a *ArangoMemberPodTemplate) EqualPodSpecChecksum(checksum string) bool

func (*ArangoMemberPodTemplate) Equals

func (*ArangoMemberPodTemplate) GetChecksum

func (a *ArangoMemberPodTemplate) GetChecksum() string

func (*ArangoMemberPodTemplate) GetTemplate

func (a *ArangoMemberPodTemplate) GetTemplate() *core.PodTemplateSpec

func (*ArangoMemberPodTemplate) GetTemplateChecksum

func (a *ArangoMemberPodTemplate) GetTemplateChecksum() string

func (*ArangoMemberPodTemplate) RotationNeeded

func (*ArangoMemberPodTemplate) SetChecksum

func (a *ArangoMemberPodTemplate) SetChecksum(s string)

func (*ArangoMemberPodTemplate) SetTemplate

func (a *ArangoMemberPodTemplate) SetTemplate(t *core.PodTemplateSpec)

func (*ArangoMemberPodTemplate) SetTemplateChecksum

func (a *ArangoMemberPodTemplate) SetTemplateChecksum(s string)

type ArangoMemberSpec

type ArangoMemberSpec struct {
	// Group define Member Groups.
	// +doc/type: string
	Group ServerGroup `json:"group,omitempty"`

	ID string `json:"id,omitempty"`

	// DeploymentUID define Deployment UID.
	DeploymentUID types.UID `json:"deploymentUID,omitempty"`

	// Overrides define Member Overrides (Override values from ServerGroup).
	Overrides *ArangoMemberSpecOverrides `json:"overrides,omitempty"`

	// Template keeps template which is gonna be applied on the Pod.
	Template *ArangoMemberPodTemplate `json:"template,omitempty"`

	// DeletionPriority define Deletion Priority.
	// Higher value means higher priority. Default is 0.
	// Example: set 1 for Coordinator which should be deleted first and scale down coordinators by one.
	DeletionPriority *int `json:"deletion_priority,omitempty"`
}

func (*ArangoMemberSpec) DeepCopy

func (in *ArangoMemberSpec) DeepCopy() *ArangoMemberSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArangoMemberSpec.

func (*ArangoMemberSpec) DeepCopyInto

func (in *ArangoMemberSpec) DeepCopyInto(out *ArangoMemberSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ArangoMemberSpec) GetDeletionPriority

func (a *ArangoMemberSpec) GetDeletionPriority() int

type ArangoMemberSpecOverrides

type ArangoMemberSpecOverrides struct {
	// VolumeClaimTemplate specifies a template for volume claims. Overrides template provided on the group level.
	// +doc/type: core.PersistentVolumeClaim
	// +doc/link: Documentation of core.PersistentVolumeClaim|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#persistentvolumeclaim-v1-core
	VolumeClaimTemplate *core.PersistentVolumeClaim `json:"volumeClaimTemplate,omitempty"`

	// Resources holds resource requests & limits. Overrides template provided on the group level.
	// +doc/type: core.ResourceRequirements
	// +doc/link: Documentation of core.ResourceRequirements|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#resourcerequirements-v1-core
	Resources core.ResourceRequirements `json:"resources,omitempty"`
}

func (*ArangoMemberSpecOverrides) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArangoMemberSpecOverrides.

func (*ArangoMemberSpecOverrides) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ArangoMemberSpecOverrides) GetResources

func (*ArangoMemberSpecOverrides) GetStorageClassName

func (a *ArangoMemberSpecOverrides) GetStorageClassName(g *ServerGroupSpec) string

func (*ArangoMemberSpecOverrides) GetVolumeClaimTemplate

func (*ArangoMemberSpecOverrides) HasVolumeClaimTemplate

func (a *ArangoMemberSpecOverrides) HasVolumeClaimTemplate(g *ServerGroupSpec) bool

type ArangoMemberStatus

type ArangoMemberStatus struct {
	Conditions ConditionList `json:"conditions,omitempty"`

	Template *ArangoMemberPodTemplate `json:"template,omitempty"`

	// Message keeps the information about time when ArangoMember Status was modified last time
	LastUpdateTime meta.Time `json:"lastUpdateTime,omitempty"`

	// Message keeps the information about ArangoMember Message in the String format
	Message string `json:"message,omitempty"`
}

func (*ArangoMemberStatus) DeepCopy

func (in *ArangoMemberStatus) DeepCopy() *ArangoMemberStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArangoMemberStatus.

func (*ArangoMemberStatus) DeepCopyInto

func (in *ArangoMemberStatus) DeepCopyInto(out *ArangoMemberStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ArangoMemberStatus) InSync

func (a ArangoMemberStatus) InSync(status MemberStatus) bool

func (*ArangoMemberStatus) Propagate

func (a *ArangoMemberStatus) Propagate(status MemberStatus) (changed bool)

type ArangoTask

type ArangoTask struct {
	meta.TypeMeta   `json:",inline"`
	meta.ObjectMeta `json:"metadata,omitempty"`
	Spec            ArangoTaskSpec   `json:"spec,omitempty"`
	Status          ArangoTaskStatus `json:"status,omitempty"`
}

ArangoTask contains task definition info.

func (*ArangoTask) DeepCopy

func (in *ArangoTask) DeepCopy() *ArangoTask

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArangoTask.

func (*ArangoTask) DeepCopyInto

func (in *ArangoTask) DeepCopyInto(out *ArangoTask)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ArangoTask) DeepCopyObject

func (in *ArangoTask) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ArangoTaskDetails

type ArangoTaskDetails []byte

func (ArangoTaskDetails) DeepCopy

func (in ArangoTaskDetails) DeepCopy() ArangoTaskDetails

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArangoTaskDetails.

func (ArangoTaskDetails) DeepCopyInto

func (in ArangoTaskDetails) DeepCopyInto(out *ArangoTaskDetails)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ArangoTaskDetails) Get

func (a ArangoTaskDetails) Get(i interface{}) error

func (ArangoTaskDetails) MarshalJSON

func (a ArangoTaskDetails) MarshalJSON() ([]byte, error)

func (*ArangoTaskDetails) Set

func (a *ArangoTaskDetails) Set(i interface{}) error

func (*ArangoTaskDetails) UnmarshalJSON

func (a *ArangoTaskDetails) UnmarshalJSON(bytes []byte) error

type ArangoTaskList

type ArangoTaskList struct {
	meta.TypeMeta `json:",inline"`
	// Standard list metadata
	// More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata
	meta.ListMeta `json:"metadata,omitempty"`
	Items         []ArangoTask `json:"items"`
}

ArangoTaskList is a list of ArangoDB tasks.

func (*ArangoTaskList) DeepCopy

func (in *ArangoTaskList) DeepCopy() *ArangoTaskList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArangoTaskList.

func (*ArangoTaskList) DeepCopyInto

func (in *ArangoTaskList) DeepCopyInto(out *ArangoTaskList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ArangoTaskList) DeepCopyObject

func (in *ArangoTaskList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ArangoTaskSpec

type ArangoTaskSpec struct {
	Type ArangoTaskType `json:"type,omitempty"`

	Details ArangoTaskDetails `json:"details,omitempty"`
}

func (*ArangoTaskSpec) DeepCopy

func (in *ArangoTaskSpec) DeepCopy() *ArangoTaskSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArangoTaskSpec.

func (*ArangoTaskSpec) DeepCopyInto

func (in *ArangoTaskSpec) DeepCopyInto(out *ArangoTaskSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ArangoTaskState

type ArangoTaskState string
const (
	ArangoTaskUnknownState ArangoTaskState = ""
	ArangoTaskPendingState ArangoTaskState = "Pending"
	ArangoTaskRunningState ArangoTaskState = "Running"
	ArangoTaskSuccessState ArangoTaskState = "Success"
	ArangoTaskFailedState  ArangoTaskState = "Failed"
)

type ArangoTaskStatus

type ArangoTaskStatus struct {
	AcceptedSpec *ArangoTaskSpec `json:"acceptedSpec,omitempty"`

	State   ArangoTaskState   `json:"state,omitempty"`
	Details ArangoTaskDetails `json:"details,omitempty"`
}

func (*ArangoTaskStatus) DeepCopy

func (in *ArangoTaskStatus) DeepCopy() *ArangoTaskStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArangoTaskStatus.

func (*ArangoTaskStatus) DeepCopyInto

func (in *ArangoTaskStatus) DeepCopyInto(out *ArangoTaskStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ArangoTaskType

type ArangoTaskType string

type AuthenticationSpec

type AuthenticationSpec struct {
	// JWTSecretName setting specifies the name of a kubernetes `Secret` that contains a secret key used for generating
	// JWT tokens to access all ArangoDB servers.
	// When no name is specified, it defaults to `<deployment-name>-jwt`.
	// To disable authentication, set this value to `None`.
	// If you specify a name of a `Secret`, that secret must have the key value in a data field named `token`.
	// If you specify a name of a `Secret` that does not exist, a random key is created and stored in a `Secret` with given name.
	// Changing secret key results in restarting of a whole cluster.
	JWTSecretName *string `json:"jwtSecretName,omitempty"`
}

AuthenticationSpec holds authentication specific configuration settings

func (*AuthenticationSpec) DeepCopy

func (in *AuthenticationSpec) DeepCopy() *AuthenticationSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthenticationSpec.

func (*AuthenticationSpec) DeepCopyInto

func (in *AuthenticationSpec) DeepCopyInto(out *AuthenticationSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (AuthenticationSpec) GetJWTSecretName

func (s AuthenticationSpec) GetJWTSecretName() string

GetJWTSecretName returns the value of jwtSecretName.

func (AuthenticationSpec) IsAuthenticated

func (s AuthenticationSpec) IsAuthenticated() bool

IsAuthenticated returns true if authentication is enabled. Returns false other (when JWTSecretName == "None").

func (AuthenticationSpec) ResetImmutableFields

func (s AuthenticationSpec) ResetImmutableFields(fieldPrefix string, target *AuthenticationSpec) []string

ResetImmutableFields replaces all immutable fields in the given target with values from the source spec. It returns a list of fields that have been reset. Field names are relative to given field prefix.

func (*AuthenticationSpec) SetDefaults

func (s *AuthenticationSpec) SetDefaults(defaultJWTSecretName string)

SetDefaults fills in missing defaults

func (*AuthenticationSpec) SetDefaultsFrom

func (s *AuthenticationSpec) SetDefaultsFrom(source AuthenticationSpec)

SetDefaultsFrom fills unspecified fields with a value from given source spec.

func (AuthenticationSpec) Validate

func (s AuthenticationSpec) Validate(required bool) error

Validate the given spec

type BackOff

type BackOff map[BackOffKey]meta.Time

func (BackOff) BackOff

func (b BackOff) BackOff(key BackOffKey, delay time.Duration) BackOff

func (BackOff) Combine

func (b BackOff) Combine(a BackOff) BackOff

func (BackOff) CombineLatest

func (b BackOff) CombineLatest(a BackOff) BackOff

func (BackOff) DeepCopy

func (in BackOff) DeepCopy() BackOff

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackOff.

func (BackOff) DeepCopyInto

func (in BackOff) DeepCopyInto(out *BackOff)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (BackOff) Equal

func (b BackOff) Equal(a BackOff) bool

func (BackOff) MarshalJSON

func (b BackOff) MarshalJSON() ([]byte, error)

func (BackOff) Process

func (b BackOff) Process(key BackOffKey) bool

type BackOffKey

type BackOffKey string

type BootstrapSpec

type BootstrapSpec struct {
	// PasswordSecretNames contains a map of username to password-secret-name
	// This setting specifies a secret name for the credentials per specific users.
	// When a deployment is created the operator will setup the user accounts
	// according to the credentials given by the secret. If the secret doesn't exist
	// the operator creates a secret with a random password.
	// There are two magic values for the secret name:
	// - `None` specifies no action. This disables root password randomization. This is the default value. (Thus the root password is empty - not recommended)
	// - `Auto` specifies automatic name generation, which is `<deploymentname>-root-password`.
	// +doc/type: map[string]string
	// +doc/link: How to set root user password|../how-to/set_root_user_password.md
	PasswordSecretNames PasswordSecretNameList `json:"passwordSecretNames,omitempty"`
}

BootstrapSpec contains information for cluster bootstrapping

func (*BootstrapSpec) DeepCopy

func (in *BootstrapSpec) DeepCopy() *BootstrapSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BootstrapSpec.

func (*BootstrapSpec) DeepCopyInto

func (in *BootstrapSpec) DeepCopyInto(out *BootstrapSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*BootstrapSpec) SetDefaults

func (b *BootstrapSpec) SetDefaults(deploymentname string)

SetDefaults fills in default values when a field is not specified.

func (*BootstrapSpec) SetDefaultsFrom

func (b *BootstrapSpec) SetDefaultsFrom(source BootstrapSpec)

SetDefaultsFrom fills unspecified fields with a value from given source spec.

func (*BootstrapSpec) Validate

func (b *BootstrapSpec) Validate() error

Validate the specification.

type ChaosSpec

type ChaosSpec struct {
	// Enabled switches the chaos monkey for a deployment on or off.
	Enabled *bool `json:"enabled,omitempty"`
	// Interval is the time between events
	Interval *time.Duration `json:"interval,omitempty"`
	// KillPodProbability is the chance of a pod being killed during an event
	KillPodProbability *Percent `json:"kill-pod-probability,omitempty"`
}

ChaosSpec holds configuration for the deployment chaos monkey.

func (*ChaosSpec) DeepCopy

func (in *ChaosSpec) DeepCopy() *ChaosSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChaosSpec.

func (*ChaosSpec) DeepCopyInto

func (in *ChaosSpec) DeepCopyInto(out *ChaosSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ChaosSpec) GetInterval

func (s ChaosSpec) GetInterval() time.Duration

GetInterval returns the value of interval.

func (ChaosSpec) GetKillPodProbability

func (s ChaosSpec) GetKillPodProbability() Percent

GetKillPodProbability returns the value of kill-pod-probability.

func (ChaosSpec) IsEnabled

func (s ChaosSpec) IsEnabled() bool

IsEnabled returns the value of enabled.

func (*ChaosSpec) SetDefaults

func (s *ChaosSpec) SetDefaults()

SetDefaults fills in missing defaults

func (*ChaosSpec) SetDefaultsFrom

func (s *ChaosSpec) SetDefaultsFrom(source ChaosSpec)

SetDefaultsFrom fills unspecified fields with a value from given source spec.

func (ChaosSpec) Validate

func (s ChaosSpec) Validate() error

Validate the given spec

type Condition

type Condition struct {
	// Type of  condition.
	Type ConditionType `json:"type"`
	// Status of the condition, one of True, False, Unknown.
	Status core.ConditionStatus `json:"status"`
	// The last time this condition was updated.
	LastUpdateTime meta.Time `json:"lastUpdateTime,omitempty"`
	// Last time the condition transitioned from one status to another.
	LastTransitionTime meta.Time `json:"lastTransitionTime,omitempty"`
	// The reason for the condition's last transition.
	Reason string `json:"reason,omitempty"`
	// A human readable message indicating details about the transition.
	Message string `json:"message,omitempty"`
	// Hash keep propagation hash id, for example checksum of secret
	Hash string `json:"hash,omitempty"`
	// Params keeps additional params for the condition
	Params ConditionParams `json:"params,omitempty"`
}

Condition represents one current condition of a deployment or deployment member. A condition might not show up if it is not happening. For example, if a cluster is not upgrading, the Upgrading condition would not show up.

func (*Condition) DeepCopy

func (in *Condition) DeepCopy() *Condition

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Condition.

func (*Condition) DeepCopyInto

func (in *Condition) DeepCopyInto(out *Condition)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Condition) Equal

func (c Condition) Equal(other Condition) bool

Equal checks for equality

func (Condition) IsTrue

func (c Condition) IsTrue() bool

type ConditionCheck

type ConditionCheck interface {
	Evaluate() bool

	Exists() ConditionCheck
	IsTrue() ConditionCheck
	IsFalse() ConditionCheck

	LastTransition(d time.Duration) ConditionCheck
}

type ConditionList

type ConditionList []Condition

ConditionList is a list of conditions. Each type is allowed only once.

func (ConditionList) Check

func (list ConditionList) Check(conditionType ConditionType) ConditionCheck

Check create a condition checker.

func (ConditionList) DeepCopy

func (in ConditionList) DeepCopy() ConditionList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConditionList.

func (ConditionList) DeepCopyInto

func (in ConditionList) DeepCopyInto(out *ConditionList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ConditionList) Equal

func (list ConditionList) Equal(other ConditionList) bool

Equal checks for equality

func (ConditionList) Get

func (list ConditionList) Get(conditionType ConditionType) (Condition, bool)

Get a condition by type. Returns true if found, false if not found.

func (ConditionList) Index

func (list ConditionList) Index(conditionType ConditionType) int

func (ConditionList) IsTrue

func (list ConditionList) IsTrue(conditionType ConditionType) bool

IsTrue return true when a condition with given type exists and its status is `True`.

func (*ConditionList) Remove

func (list *ConditionList) Remove(conditionType ConditionType) bool

Remove the condition with given type. Returns true if removed, or false if not found.

func (*ConditionList) Touch

func (list *ConditionList) Touch(conditionType ConditionType) bool

Touch update condition LastUpdateTime if condition exists

func (*ConditionList) Update

func (list *ConditionList) Update(conditionType ConditionType, status bool, reason, message string) bool

Update the condition, replacing an old condition with same type (if any) Returns true when changes were made, false otherwise.

func (*ConditionList) UpdateWithHash

func (list *ConditionList) UpdateWithHash(conditionType ConditionType, status bool, reason, message, hash string) bool

UpdateWithHash updates the condition, replacing an old condition with same type (if any) Returns true when changes were made, false otherwise.

type ConditionParam

type ConditionParam string

ConditionParam is a strongly typed condition parameter

const (
	// ConditionParamContainerUpdatingName define parameter used during Image Runtime update
	ConditionParamContainerUpdatingName ConditionParam = "updatingContainerName"
)

type ConditionParams

type ConditionParams map[ConditionParam]string

func (ConditionParams) DeepCopy

func (in ConditionParams) DeepCopy() ConditionParams

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConditionParams.

func (ConditionParams) DeepCopyInto

func (in ConditionParams) DeepCopyInto(out *ConditionParams)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ConditionParams) Equal

Equal compare two ConditionParams objects

type ConditionType

type ConditionType string

ConditionType is a strongly typed condition name

const (
	// ConditionTypeReady indicates that the member or entire deployment is ready and running normally.
	ConditionTypeReady ConditionType = "Ready"
	// ConditionTypeStarted indicates that the member was ready at least once.
	ConditionTypeStarted ConditionType = "Started"
	// ConditionTypeReachable indicates that the member is reachable.
	ConditionTypeReachable ConditionType = "Reachable"
	// ConditionTypeScheduled indicates that the member primary pod is scheduled.
	ConditionTypeScheduled ConditionType = "Scheduled"
	// ConditionTypeScheduleSpecChanged indicates that the member schedule spec was changed.
	ConditionTypeScheduleSpecChanged ConditionType = "ScheduleSpecChanged"
	// ConditionTypeServing indicates that the member core services are running.
	ConditionTypeServing ConditionType = "Serving"
	// ConditionTypeActive indicates that the member server container started.
	ConditionTypeActive ConditionType = "Active"
	// ConditionTypeTerminated indicates that the member has terminated and will not restart.
	ConditionTypeTerminated ConditionType = "Terminated"
	// ConditionTypeAutoUpgrade indicates that the member has to be started with `--database.auto-upgrade` once.
	ConditionTypeAutoUpgrade ConditionType = "AutoUpgrade"

	// ConditionTypeCleanedOut indicates that the member (dbserver) has been cleaned out.
	// Always check in combination with ConditionTypeTerminated.
	ConditionTypeCleanedOut ConditionType = "CleanedOut"
	// ConditionTypeAgentRecoveryNeeded indicates that the member (agent) will no
	// longer recover from its current volume and there has to be rebuild
	// using the recovery procedure.
	ConditionTypeAgentRecoveryNeeded ConditionType = "AgentRecoveryNeeded"
	// ConditionTypePodSchedulingFailure indicates that one or more pods belonging to the deployment cannot be schedule.
	ConditionTypePodSchedulingFailure ConditionType = "PodSchedulingFailure"
	// ConditionTypeMemberOfCluster indicates that the member is a known member of the ArangoDB cluster.
	ConditionTypeMemberOfCluster ConditionType = "MemberOfCluster"

	// ConditionTypeTerminating indicates that the member is terminating but not yet terminated.
	ConditionTypeTerminating ConditionType = "Terminating"
	// ConditionTypeUpToDate indicates that the deployment is up to date.
	ConditionTypeUpToDate ConditionType = "UpToDate"
	// ConditionTypeSpecAccepted indicates that the deployment spec has been accepted.
	ConditionTypeSpecAccepted ConditionType = "SpecAccepted"
	// ConditionTypeSpecPropagated indicates that the deployment has been at least once UpToDate after spec acceptance.
	ConditionTypeSpecPropagated ConditionType = "SpecPropagated"
	// ConditionTypeMemberVolumeUnschedulable indicates that the member cannot schedued due to volume issue.
	ConditionTypeMemberVolumeUnschedulable ConditionType = "MemberVolumeUnschedulable"
	// ConditionTypeMarkedToRemove indicates that the member is marked to be removed.
	ConditionTypeMarkedToRemove ConditionType = "MarkedToRemove"
	// ConditionTypeScaleDownCandidate indicates that the member will be picked in ScaleDown operation (Currently not used).
	// Deprecated: will be removed in 1.3.0
	ConditionTypeScaleDownCandidate ConditionType = "ScaleDownCandidate"
	// ConditionTypeUpgradeFailed indicates that upgrade failed
	ConditionTypeUpgradeFailed ConditionType = "UpgradeFailed"
	// ConditionTypeArchitectureMismatch indicates that the member has a different architecture than the deployment.
	ConditionTypeArchitectureMismatch ConditionType = "ArchitectureMismatch"
	// ConditionTypeArchitectureChangeCannotBeApplied indicates that the member has a different architecture than the requested one.
	ConditionTypeArchitectureChangeCannotBeApplied ConditionType = "ArchitectureChangeCannotBeApplied"

	// ConditionTypeMemberMaintenanceMode indicates that Maintenance is enabled on particular member
	ConditionTypeMemberMaintenanceMode ConditionType = "MemberMaintenanceMode"
	// ConditionTypeMaintenanceMode indicates that Maintenance is enabled
	ConditionTypeMaintenanceMode ConditionType = "MaintenanceMode"

	// ConditionTypePendingRestart indicates that restart is required
	ConditionTypePendingRestart ConditionType = "PendingRestart"
	// ConditionTypeRestart indicates that restart will be started
	ConditionTypeRestart ConditionType = "Restart"
	// MemberReplacementRequired indicates that the member requires a replacement to proceed with next actions.
	MemberReplacementRequired ConditionType = "MemberReplacementRequired"

	// ConditionTypePendingTLSRotation indicates that TLS rotation is pending
	ConditionTypePendingTLSRotation ConditionType = "PendingTLSRotation"

	// ConditionTypePendingUpdate indicates that runtime update is pending
	ConditionTypePendingUpdate ConditionType = "PendingUpdate"
	// ConditionTypeUpdating indicates that runtime update is in progress
	ConditionTypeUpdating ConditionType = "Updating"
	// ConditionTypeUpdateFailed indicates that runtime update failed
	ConditionTypeUpdateFailed ConditionType = "UpdateFailed"

	// ConditionTypeTopologyAware indicates that the member is deployed with TopologyAwareness.
	ConditionTypeTopologyAware ConditionType = "TopologyAware"

	// ConditionTypePVCResizePending indicates that the member has to be restarted due to PVC Resized pending action
	ConditionTypePVCResizePending ConditionType = "PVCResizePending"

	// ConditionTypeLicenseSet indicates that license V2 is set on cluster.
	ConditionTypeLicenseSet ConditionType = "LicenseSet"

	// ConditionTypeBackupInProgress indicates that there is Backup in progress on cluster
	ConditionTypeBackupInProgress ConditionType = "BackupInProgress"
	// ConditionTypeUpgradeInProgress indicates that there is upgrade in progress on cluster
	ConditionTypeUpgradeInProgress ConditionType = "UpgradeInProgress"
	// ConditionTypeUpdateInProgress indicates that there is update in progress on cluster
	ConditionTypeUpdateInProgress ConditionType = "UpdateInProgress"

	// ConditionTypeMaintenance indicates that maintenance is enabled on cluster
	ConditionTypeMaintenance ConditionType = "Maintenance"

	// ConditionTypeSyncEnabled Define if sync is enabled
	ConditionTypeSyncEnabled ConditionType = "SyncEnabled"
)
const (
	// ConditionTypeSecretsChanged indicates that the value of one of more secrets used by
	// the deployment have changed. Once that is the case, the operator will no longer
	// touch the deployment, until the original secrets have been restored.
	ConditionTypeSecretsChanged ConditionType = "SecretsChanged"

	// ConditionTypeBootstrapCompleted indicates that the initial cluster bootstrap has been completed.
	ConditionTypeBootstrapCompleted ConditionType = "BootstrapCompleted"
	// ConditionTypeBootstrapSucceded indicates that the initial cluster bootstrap completed successfully.
	ConditionTypeBootstrapSucceded ConditionType = "BootstrapSucceded"
)

func (ConditionType) String

func (c ConditionType) String() string

type DatabaseSpec

type DatabaseSpec struct {
	// Maintenance manage maintenance mode on Cluster side. Requires maintenance feature to be enabled
	Maintenance *bool `json:"maintenance,omitempty"`
}

func (*DatabaseSpec) DeepCopy

func (in *DatabaseSpec) DeepCopy() *DatabaseSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatabaseSpec.

func (*DatabaseSpec) DeepCopyInto

func (in *DatabaseSpec) DeepCopyInto(out *DatabaseSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DatabaseSpec) GetMaintenance

func (m *DatabaseSpec) GetMaintenance() bool

type DeploymentCommunicationMethod

type DeploymentCommunicationMethod string

DeploymentCommunicationMethod define communication method used for inter-cluster communication

const (
	// DefaultDeploymentCommunicationMethod define default communication method.
	DefaultDeploymentCommunicationMethod = DeploymentCommunicationMethodHeadlessService
	// DeploymentCommunicationMethodHeadlessService define old communication mechanism, based on headless service.
	DeploymentCommunicationMethodHeadlessService DeploymentCommunicationMethod = "headless"
	// DeploymentCommunicationMethodDNS define ClusterIP Service DNS based communication.
	DeploymentCommunicationMethodDNS DeploymentCommunicationMethod = "dns"
	// DeploymentCommunicationMethodShortDNS define ClusterIP Service DNS based communication. Use namespaced short DNS (used in migration)
	DeploymentCommunicationMethodShortDNS DeploymentCommunicationMethod = "short-dns"
	// DeploymentCommunicationMethodHeadlessDNS define Headless Service DNS based communication.
	DeploymentCommunicationMethodHeadlessDNS DeploymentCommunicationMethod = "headless-dns"
	// DeploymentCommunicationMethodIP define ClusterIP Service IP based communication.
	DeploymentCommunicationMethodIP DeploymentCommunicationMethod = "ip"
)

func (*DeploymentCommunicationMethod) Get

Get returns communication method from pointer. If pointer is nil default is returned.

func (DeploymentCommunicationMethod) New

New returns pointer.

func (*DeploymentCommunicationMethod) ServiceClusterIP

func (d *DeploymentCommunicationMethod) ServiceClusterIP() string

ServiceClusterIP returns Service ClusterIP for communication method

func (*DeploymentCommunicationMethod) ServiceType

ServiceType returns Service Type for communication method

func (DeploymentCommunicationMethod) String

String returns string representation of method.

type DeploymentFeatures

type DeploymentFeatures struct {
	FoxxQueues *bool `json:"foxx.queues,omitempty"`
}

func (*DeploymentFeatures) DeepCopy

func (in *DeploymentFeatures) DeepCopy() *DeploymentFeatures

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentFeatures.

func (*DeploymentFeatures) DeepCopyInto

func (in *DeploymentFeatures) DeepCopyInto(out *DeploymentFeatures)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DeploymentFeatures) GetFoxxQueues

func (d *DeploymentFeatures) GetFoxxQueues() bool

GetFoxxQueues return if foxx queues are enabled. Defaults to true.

type DeploymentImageDiscoveryModeSpec

type DeploymentImageDiscoveryModeSpec string

func (*DeploymentImageDiscoveryModeSpec) Get

func (DeploymentImageDiscoveryModeSpec) Validate

type DeploymentMemberPropagationMode

type DeploymentMemberPropagationMode string
const (
	// DeploymentMemberPropagationModeDefault Define default propagation mode
	DeploymentMemberPropagationModeDefault = DeploymentMemberPropagationModeAlways
	// DeploymentMemberPropagationModeAlways define mode which restart member whenever change in pod is discovered
	DeploymentMemberPropagationModeAlways DeploymentMemberPropagationMode = "always"
	// DeploymentMemberPropagationModeOnRestart propagate member spec whenever pod is restarted. Do not restart member by default
	DeploymentMemberPropagationModeOnRestart DeploymentMemberPropagationMode = "on-restart"
)

func (*DeploymentMemberPropagationMode) Equal

func (*DeploymentMemberPropagationMode) Get

func (DeploymentMemberPropagationMode) New

func (DeploymentMemberPropagationMode) String

type DeploymentMode

type DeploymentMode string

DeploymentMode specifies the type of ArangoDB deployment to create.

const (
	// DeploymentModeSingle yields a single server
	DeploymentModeSingle DeploymentMode = "Single"
	// DeploymentModeActiveFailover yields an agency and a active-failover server pair
	DeploymentModeActiveFailover DeploymentMode = "ActiveFailover"
	// DeploymentModeCluster yields an full cluster (agency, dbservers & coordinators)
	DeploymentModeCluster DeploymentMode = "Cluster"
)

func ModeOrDefault

func ModeOrDefault(input *DeploymentMode, defaultValue ...DeploymentMode) DeploymentMode

ModeOrDefault returns the default value (or empty string) if input is nil, otherwise returns the referenced value.

func NewMode

func NewMode(input DeploymentMode) *DeploymentMode

NewMode returns a reference to a string with given value.

func NewModeOrNil

func NewModeOrNil(input *DeploymentMode) *DeploymentMode

NewModeOrNil returns nil if input is nil, otherwise returns a clone of the given value.

func (*DeploymentMode) Get

func (m *DeploymentMode) Get() DeploymentMode

Get mode or default value

func (DeploymentMode) HasAgents

func (m DeploymentMode) HasAgents() bool

HasAgents returns true when the given mode is "ActiveFailover" or "Cluster".

func (DeploymentMode) HasCoordinators

func (m DeploymentMode) HasCoordinators() bool

HasCoordinators returns true when the given mode is "Cluster".

func (DeploymentMode) HasDBServers

func (m DeploymentMode) HasDBServers() bool

HasDBServers returns true when the given mode is "Cluster".

func (DeploymentMode) HasSingleServers

func (m DeploymentMode) HasSingleServers() bool

HasSingleServers returns true when the given mode is "Single" or "ActiveFailover".

func (DeploymentMode) IsCluster

func (m DeploymentMode) IsCluster() bool

IsCluster returns true if the deployment mode is cluster

func (DeploymentMode) New

func (m DeploymentMode) New() *DeploymentMode

Nww return pointer to mode

func (DeploymentMode) ServingGroup

func (m DeploymentMode) ServingGroup() ServerGroup

ServingGroup returns mode serving group

func (*DeploymentMode) String

func (m *DeploymentMode) String() string

String return string from mode

func (DeploymentMode) SupportsSync

func (m DeploymentMode) SupportsSync() bool

SupportsSync returns true when the given mode supports dc2dc replication.

func (DeploymentMode) Validate

func (m DeploymentMode) Validate() error

Validate the mode. Return errors when validation fails, nil on success.

type DeploymentPhase

type DeploymentPhase string

DeploymentPhase is a strongly typed lifetime phase of a deployment

const (
	// DeploymentPhaseNone indicates that the phase is not set yet
	DeploymentPhaseNone DeploymentPhase = ""
	// DeploymentPhaseRunning indicates that the deployment is under control of the
	// ArangoDeployment operator.
	DeploymentPhaseRunning DeploymentPhase = "Running"
	// DeploymentPhaseFailed indicates that a deployment is in a failed state
	// from which automatic recovery is impossible. Inspect `Reason` for more info.
	DeploymentPhaseFailed DeploymentPhase = "Failed"
)

func (DeploymentPhase) IsFailed

func (cs DeploymentPhase) IsFailed() bool

IsFailed returns true if given state is DeploymentStateFailed

type DeploymentRestoreResult

type DeploymentRestoreResult struct {
	RequestedFrom string                 `json:"requestedFrom"`
	State         DeploymentRestoreState `json:"state"`
	Message       string                 `json:"message,omitempty"`
}

func (*DeploymentRestoreResult) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentRestoreResult.

func (*DeploymentRestoreResult) DeepCopyInto

func (in *DeploymentRestoreResult) DeepCopyInto(out *DeploymentRestoreResult)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DeploymentRestoreResult) Equal

type DeploymentRestoreState

type DeploymentRestoreState string
const (
	DeploymentRestoreStateRestoring     DeploymentRestoreState = "Restoring"
	DeploymentRestoreStateRestored      DeploymentRestoreState = "Restored"
	DeploymentRestoreStateRestoreFailed DeploymentRestoreState = "RestoreFailed"
)

type DeploymentSpec

type DeploymentSpec struct {

	// Mode specifies the type of ArangoDB deployment to create.
	// +doc/enum: Cluster|Full cluster. Defaults to 3 Agents, 3 DB-Servers & 3 Coordinators.
	// +doc/enum: ActiveFailover|Active-failover single pair. Defaults to 3 Agents and 2 single servers.
	// +doc/enum: Single|Single server only (note this does not provide high availability or reliability).
	// +doc/immutable: Change of the ArangoDeployment Mode is not possible after creation.
	Mode *DeploymentMode `json:"mode,omitempty"`

	// Environment setting specifies the type of environment in which the deployment is created.
	// +doc/enum: Development|This value optimizes the deployment for development use. It is possible to run a deployment on a small number of nodes (e.g. minikube).
	// +doc/enum: Production|This value optimizes the deployment for production use. It puts required affinity constraints on all pods to avoid Agents & DB-Servers from running on the same machine.
	Environment *Environment `json:"environment,omitempty"`

	// StorageEngine specifies the type of storage engine used for all servers in the cluster.
	// +doc/enum: RocksDB|To use the RocksDB storage engine.
	// +doc/enum: MMFiles|To use the MMFiles storage engine. Deprecated.
	// +doc/immutable: This setting cannot be changed after the cluster has been created.
	// +doc/default: RocksDB
	StorageEngine *StorageEngine `json:"storageEngine,omitempty"`

	// Image specifies the docker image to use for all ArangoDB servers.
	// In a development environment this setting defaults to arangodb/arangodb:latest.
	// For production environments this is a required setting without a default value.
	// It is highly recommend to use explicit version (not latest) for production environments.
	Image *string `json:"image,omitempty"`

	// ImagePullPolicy specifies the pull policy for the docker image to use for all ArangoDB servers.
	// +doc/type: core.PullPolicy
	// +doc/enum: Always|Means that kubelet always attempts to pull the latest image. Container will fail If the pull fails.
	// +doc/enum: Never|Means that kubelet never pulls an image, but only uses a local image. Container will fail if the image isn't present
	// +doc/enum: IfNotPresent|Means that kubelet pulls if the image isn't present on disk. Container will fail if the image isn't present and the pull fails.
	// +doc/link: Documentation of core.PullPolicy|https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy
	ImagePullPolicy *core.PullPolicy `json:"imagePullPolicy,omitempty"`

	// ImagePullSecrets specifies the list of image pull secrets for the docker image to use for all ArangoDB servers.
	ImagePullSecrets []string `json:"imagePullSecrets,omitempty"`

	// ImageDiscoveryMode specifies the image discovery mode.
	// +doc/enum: kubelet|Use sha256 of the discovered image in the pods
	// +doc/enum: direct|Use image provided in the spec.image directly in the pods
	ImageDiscoveryMode *DeploymentImageDiscoveryModeSpec `json:"imageDiscoveryMode,omitempty"`

	// DowntimeAllowed setting is used to allow automatic reconciliation actions that yield some downtime of the ArangoDB deployment.
	// When this setting is set to false, no automatic action that may result in downtime is allowed.
	// If the need for such an action is detected, an event is added to the ArangoDeployment.
	// Once this setting is set to true, the automatic action is executed.
	// Operations that may result in downtime are:
	// - Rotating TLS CA certificate
	// Note: It is still possible that there is some downtime when the Kubernetes cluster is down, or in a bad state, irrespective of the value of this setting.
	// +doc/default: false
	DowntimeAllowed *bool `json:"downtimeAllowed,omitempty"`

	// DisableIPv6 setting prevents the use of IPv6 addresses by ArangoDB servers.
	// This setting cannot be changed after the deployment has been created.
	// +doc/default: false
	DisableIPv6 *bool `json:"disableIPv6,omitempty"`

	// Upgrade allows to configure upgrade-related options
	Upgrade *DeploymentUpgradeSpec `json:"upgrade,omitempty"`

	// Features allows to configure feature flags
	Features *DeploymentFeatures `json:"features,omitempty"`

	// NetworkAttachedVolumes
	// If set to `true`, a ResignLeadership operation will be triggered when a DB-Server pod is evicted (rather than a CleanOutServer operation).
	// Furthermore, the pod will simply be redeployed on a different node, rather than cleaned and retired and replaced by a new member.
	// You must only set this option to true if your persistent volumes are “movable” in the sense that they can be mounted from a different k8s node, like in the case of network attached volumes.
	// If your persistent volumes are tied to a specific pod, you must leave this option on false.
	// +doc/default: true
	NetworkAttachedVolumes *bool `json:"networkAttachedVolumes,omitempty"`

	// Annotations specifies the annotations added to all ArangoDeployment owned resources (pods, services, PVC’s, PDB’s).
	Annotations map[string]string `json:"annotations,omitempty"`

	// AnnotationsIgnoreList list regexp or plain definitions which annotations should be ignored
	AnnotationsIgnoreList []string `json:"annotationsIgnoreList,omitempty"`

	// AnnotationsMode defines annotations mode which should be use while overriding annotations.
	// +doc/enum: disabled|Disable annotations/labels override. Default if there is no annotations/labels set in ArangoDeployment
	// +doc/enum: append|Add new annotations/labels without affecting old ones
	// +doc/enum: replace|Replace existing annotations/labels
	AnnotationsMode *LabelsMode `json:"annotationsMode,omitempty"`

	// Labels specifies the labels added to Pods in this group.
	Labels map[string]string `json:"labels,omitempty"`

	// LabelsIgnoreList list regexp or plain definitions which labels should be ignored
	LabelsIgnoreList []string `json:"labelsIgnoreList,omitempty"`

	// LabelsMode Define labels mode which should be use while overriding labels
	// +doc/enum: disabled|Disable annotations/labels override. Default if there is no annotations/labels set in ArangoDeployment
	// +doc/enum: append|Add new annotations/labels without affecting old ones
	// +doc/enum: replace|Replace existing annotations/labels
	LabelsMode *LabelsMode `json:"labelsMode,omitempty"`

	// RestoreFrom setting specifies a `ArangoBackup` resource name the cluster should be restored from.
	// After a restore or failure to do so, the status of the deployment contains information about the restore operation in the restore key.
	// It will contain some of the following fields:
	// - `requestedFrom`: name of the ArangoBackup used to restore from.
	// - `message`: optional message explaining why the restore failed.
	// - `state`: state indicating if the restore was successful or not. Possible values: Restoring, Restored, RestoreFailed
	// If the restoreFrom key is removed from the spec, the restore key is deleted as well.
	// A new restore attempt is made if and only if either in the status restore is not set or if spec.restoreFrom and status.requestedFrom are different.
	RestoreFrom *string `json:"restoreFrom,omitempty"`

	// RestoreEncryptionSecret specifies optional name of secret which contains encryption key used for restore
	RestoreEncryptionSecret *string `json:"restoreEncryptionSecret,omitempty"`

	// AllowUnsafeUpgrade determines if upgrade on missing member or with not in sync shards is allowed
	AllowUnsafeUpgrade *bool `json:"allowUnsafeUpgrade,omitempty"`

	// ExternalAccess holds configuration for the external access provided for the deployment.
	ExternalAccess ExternalAccessSpec `json:"externalAccess"`

	// RocksDB holds rocksdb-specific configuration settings
	RocksDB RocksDBSpec `json:"rocksdb"`

	// Authentication holds authentication configuration settings
	Authentication AuthenticationSpec `json:"auth"`

	// TLS holds TLS configuration settings
	TLS TLSSpec `json:"tls"`

	// Sync holds Deployment-to-Deployment synchronization configuration settings
	Sync SyncSpec `json:"sync"`

	// License holds license settings
	License LicenseSpec `json:"license"`

	// Metrics holds metrics configuration settings
	Metrics MetricsSpec `json:"metrics"`

	// Lifecycle holds lifecycle configuration settings
	Lifecycle LifecycleSpec `json:"lifecycle,omitempty"`

	// ServerIDGroupSpec contains the specification for Image Discovery image.
	ID *ServerIDGroupSpec `json:"id,omitempty"`

	// Database holds information about database state, like maintenance mode
	Database *DatabaseSpec `json:"database,omitempty"`

	// Single contains specification for servers running in deployment mode `Single` or `ActiveFailover`.
	Single ServerGroupSpec `json:"single"`

	// Agents contains specification for Agency pods running in deployment mode `Cluster` or `ActiveFailover`.
	Agents ServerGroupSpec `json:"agents"`

	// DBServers contains specification for DBServer pods running in deployment mode `Cluster` or `ActiveFailover`.
	DBServers ServerGroupSpec `json:"dbservers"`

	// Coordinators contains specification for Coordinator pods running in deployment mode `Cluster` or `ActiveFailover`.
	Coordinators ServerGroupSpec `json:"coordinators"`

	// SyncMasters contains specification for Syncmaster pods running in deployment mode `Cluster`.
	SyncMasters ServerGroupSpec `json:"syncmasters"`

	// SyncWorkers contains specification for Syncworker pods running in deployment mode `Cluster`.
	SyncWorkers ServerGroupSpec `json:"syncworkers"`

	// Gateways contain specification for Gateway pods running in deployment mode `Single` or `Cluster`.
	Gateways *ServerGroupSpec `json:"gateways,omitempty"`

	// MemberPropagationMode defines how changes to pod spec should be propogated.
	// Changes to a pod’s configuration require a restart of that pod in almost all cases.
	// Pods are restarted eagerly by default, which can cause more restarts than desired, especially when updating arangod as well as the operator.
	// The propagation of the configuration changes can be deferred to the next restart, either triggered manually by the user or by another operation like an upgrade.
	// This reduces the number of restarts for upgrading both the server and the operator from two to one.
	// +doc/enum: always|Restart the member as soon as a configuration change is discovered
	// +doc/enum: on-restart|Wait until the next restart to change the member configuration
	MemberPropagationMode *DeploymentMemberPropagationMode `json:"memberPropagationMode,omitempty"`

	// ChaosSpec can be used for chaos-monkey testing of your ArangoDeployment
	Chaos ChaosSpec `json:"chaos"`

	// Recovery specifies configuration related to cluster recovery.
	Recovery *ArangoDeploymentRecoverySpec `json:"recovery,omitempty"`

	// Bootstrap contains information for cluster bootstrapping
	Bootstrap BootstrapSpec `json:"bootstrap,omitempty"`

	// Timeouts object allows to configure various time-outs
	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
	// +doc/enum: headless|Define old communication mechanism, based on headless service.
	// +doc/enum: dns|Define ClusterIP Service DNS based communication.
	// +doc/enum: short-dns|Define ClusterIP Service DNS based communication. Use namespaced short DNS (used in migration)
	// +doc/enum: headless-dns|Define Headless Service DNS based communication.
	// +doc/enum: ip|Define ClusterIP Service IP based communication.
	CommunicationMethod *DeploymentCommunicationMethod `json:"communicationMethod,omitempty"`

	// Topology define topology adjustment details, Enterprise only
	Topology *TopologySpec `json:"topology,omitempty"`

	// Rebalancer defines the rebalancer specification
	Rebalancer *ArangoDeploymentRebalancerSpec `json:"rebalancer,omitempty"`

	// Architecture defines the list of supported architectures.
	// First element on the list is marked as default architecture.
	// Possible values are:
	// - `amd64`: Use processors with the x86-64 architecture.
	// - `arm64`: Use processors with the 64-bit ARM architecture.
	// The setting expects a list of strings, but you should only specify a single
	// list item for the architecture, except when you want to migrate from one
	// architecture to the other. The first list item defines the new default
	// architecture for the deployment that you want to migrate to.
	// +doc/link: Architecture Change|../how-to/arch_change.md
	// +doc/type: []string
	// +doc/default: ['amd64']
	Architecture ArangoDeploymentArchitecture `json:"architecture,omitempty"`

	// Timezone if specified, will set a timezone for deployment.
	// Must be in format accepted by "tzdata", e.g. `America/New_York` or `Europe/London`
	Timezone *string `json:"timezone,omitempty"`

	// Gateway defined main Gateway configuration.
	Gateway *DeploymentSpecGateway `json:"gateway,omitempty"`

	// Integration defined main Integration configuration.
	Integration *DeploymentSpecIntegration `json:"integration,omitempty"`
}

DeploymentSpec contains the spec part of a ArangoDeployment resource.

func (DeploymentSpec) Checksum

func (s DeploymentSpec) Checksum() (string, error)

Checksum return checksum of current ArangoDeployment Spec section

func (*DeploymentSpec) DeepCopy

func (in *DeploymentSpec) DeepCopy() *DeploymentSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentSpec.

func (*DeploymentSpec) DeepCopyInto

func (in *DeploymentSpec) DeepCopyInto(out *DeploymentSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DeploymentSpec) Equal

func (s *DeploymentSpec) Equal(other *DeploymentSpec) bool

Equal compares two DeploymentSpec

func (*DeploymentSpec) GetAllowMemberRecreation

func (s *DeploymentSpec) GetAllowMemberRecreation(group ServerGroup) bool

GetAllowMemberRecreation returns member recreation policy based on group and settings

func (DeploymentSpec) GetAnnotations

func (s DeploymentSpec) GetAnnotations() map[string]string

GetAnnotations returns the annotations of this group

func (DeploymentSpec) GetCoreContainers

func (s DeploymentSpec) GetCoreContainers(group ServerGroup) utils.StringList

GetCoreContainers returns all containers' names which must running in the pod for the given group of servers.

func (DeploymentSpec) GetEnvironment

func (s DeploymentSpec) GetEnvironment() Environment

GetEnvironment returns the value of environment.

func (DeploymentSpec) GetGroupPort

func (s DeploymentSpec) GetGroupPort(group ServerGroup) uint16

func (DeploymentSpec) GetImage

func (s DeploymentSpec) GetImage() string

GetImage returns the value of image.

func (DeploymentSpec) GetImagePullPolicy

func (s DeploymentSpec) GetImagePullPolicy() core.PullPolicy

GetImagePullPolicy returns the value of imagePullPolicy.

func (DeploymentSpec) GetListenAddr

func (s DeploymentSpec) GetListenAddr() string

GetListenAddr returns "[::]" or "0.0.0.0" depending on IsDisableIPv6

func (DeploymentSpec) GetMode

func (s DeploymentSpec) GetMode() DeploymentMode

GetMode returns the value of mode.

func (*DeploymentSpec) GetRestoreFrom

func (s *DeploymentSpec) GetRestoreFrom() string

GetRestoreFrom returns the restore from string or empty string if not set

func (DeploymentSpec) GetServerGroupSpec

func (s DeploymentSpec) GetServerGroupSpec(group ServerGroup) ServerGroupSpec

GetServerGroupSpec returns the server group spec (from this deployment spec) for the given group.

func (DeploymentSpec) GetStorageEngine

func (s DeploymentSpec) GetStorageEngine() StorageEngine

GetStorageEngine returns the value of storageEngine.

func (DeploymentSpec) GetSyncImage

func (s DeploymentSpec) GetSyncImage() string

GetSyncImage returns, if set, Sync.Image or the default image.

func (*DeploymentSpec) HasRestoreFrom

func (s *DeploymentSpec) HasRestoreFrom() bool

HasRestoreFrom returns true if RestoreFrom is set

func (DeploymentSpec) IsAuthenticated

func (s DeploymentSpec) IsAuthenticated() bool

IsAuthenticated returns true when authentication is enabled

func (DeploymentSpec) IsDevelopment

func (s DeploymentSpec) IsDevelopment() bool

IsDevelopment returns true when the spec contains a Development environment.

func (DeploymentSpec) IsDisableIPv6

func (s DeploymentSpec) IsDisableIPv6() bool

IsDisableIPv6 returns the value of disableIPv6.

func (DeploymentSpec) IsDowntimeAllowed

func (s DeploymentSpec) IsDowntimeAllowed() bool

IsDowntimeAllowed returns the value of downtimeAllowed.

func (DeploymentSpec) IsGatewayEnabled

func (s DeploymentSpec) IsGatewayEnabled() bool

IsGatewayEnabled returns true when the deployment has gateways enabled.

func (DeploymentSpec) IsNetworkAttachedVolumes

func (s DeploymentSpec) IsNetworkAttachedVolumes() bool

IsNetworkAttachedVolumes returns the value of networkAttachedVolumes, default false

func (DeploymentSpec) IsProduction

func (s DeploymentSpec) IsProduction() bool

IsProduction returns true when the spec contains a Production environment.

func (DeploymentSpec) IsSecure

func (s DeploymentSpec) IsSecure() bool

IsSecure returns true when SSL is enabled

func (DeploymentSpec) ResetImmutableFields

func (s DeploymentSpec) ResetImmutableFields(target *DeploymentSpec) []string

ResetImmutableFields replaces all immutable fields in the given target with values from the source spec. It returns a list of fields that have been reset. Field names are relative to `spec.`.

func (*DeploymentSpec) SetDefaults

func (s *DeploymentSpec) SetDefaults(deploymentName string)

SetDefaults fills in default values when a field is not specified.

func (*DeploymentSpec) SetDefaultsFrom

func (s *DeploymentSpec) SetDefaultsFrom(source DeploymentSpec)

SetDefaultsFrom fills unspecified fields with a value from given source spec.

func (*DeploymentSpec) UpdateServerGroupSpec

func (s *DeploymentSpec) UpdateServerGroupSpec(group ServerGroup, gspec ServerGroupSpec)

UpdateServerGroupSpec returns the server group spec (from this deployment spec) for the given group.

func (*DeploymentSpec) Validate

func (s *DeploymentSpec) Validate() error

Validate the specification. Return errors when validation fails, nil on success.

type DeploymentSpecGateway

type DeploymentSpecGateway struct {
	// Enabled setting enables/disables support for gateway in the cluster.
	// When enabled, the cluster will contain a number of `gateway` servers.
	// +doc/default: false
	Enabled *bool `json:"enabled,omitempty"`

	// Dynamic setting enables/disables support dynamic configuration of the gateway in the cluster.
	// When enabled, gateway config will be reloaded by ConfigMap live updates.
	// +doc/default: false
	Dynamic *bool `json:"dynamic,omitempty"`

	// Image is the image to use for the gateway.
	// By default, the image is determined by the operator.
	Image *string `json:"image"`
}

func (*DeploymentSpecGateway) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentSpecGateway.

func (*DeploymentSpecGateway) DeepCopyInto

func (in *DeploymentSpecGateway) DeepCopyInto(out *DeploymentSpecGateway)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DeploymentSpecGateway) GetImage

func (d *DeploymentSpecGateway) GetImage() string

GetImage returns the image to use for the gateway.

func (*DeploymentSpecGateway) IsDynamic

func (d *DeploymentSpecGateway) IsDynamic() bool

IsDynamic returns whether the gateway dynamic config is enabled.

func (*DeploymentSpecGateway) IsEnabled

func (d *DeploymentSpecGateway) IsEnabled() bool

IsEnabled returns whether the gateway is enabled.

func (*DeploymentSpecGateway) Validate

func (d *DeploymentSpecGateway) Validate() error

Validate the given spec

type DeploymentSpecIntegration

type DeploymentSpecIntegration struct {
	// Sidecar define the integration sidecar spec
	Sidecar *schedulerIntegrationApi.Sidecar `json:"sidecar,omitempty"`
}

func (*DeploymentSpecIntegration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentSpecIntegration.

func (*DeploymentSpecIntegration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DeploymentSpecIntegration) GetSidecar

func (*DeploymentSpecIntegration) Validate

func (d *DeploymentSpecIntegration) Validate() error

Validate the given spec

type DeploymentStatus

type DeploymentStatus struct {
	// Phase holds the current lifetime phase of the deployment
	Phase DeploymentPhase `json:"phase,omitempty"`
	// Reason contains a human readable reason for reaching the current state (can be empty)
	Reason string `json:"reason,omitempty"` // Reason for current state

	// AppliedVersion defines checksum of applied spec
	AppliedVersion string `json:"appliedVersion"`

	// AcceptedSpecVersion defines checksum of accepted spec
	AcceptedSpecVersion *string `json:"acceptedSpecVersion,omitempty"`

	// ServiceName holds the name of the Service a client can use (inside the k8s cluster)
	// to access ArangoDB.
	ServiceName string `json:"serviceName,omitempty"`
	// SyncServiceName holds the name of the Service a client can use (inside the k8s cluster)
	// to access syncmasters (only set when dc2dc synchronization is enabled).
	SyncServiceName string `json:"syncServiceName,omitempty"`

	ExporterServiceName string `json:"exporterServiceName,omitempty"`

	ExporterServiceMonitorName string `json:"exporterServiceMonitorName,omitempty"`

	Restore *DeploymentRestoreResult `json:"restore,omitempty"`

	// Images holds a list of ArangoDB images with their ID and ArangoDB version.
	Images ImageInfoList `json:"arangodb-images,omitempty"`
	// Image that is currently being used when new pods are created
	CurrentImage *ImageInfo `json:"current-image,omitempty"`

	// Members holds the status for all members in all server groups
	Members DeploymentStatusMembers `json:"members"`

	// Conditions specific to the entire deployment
	Conditions ConditionList `json:"conditions,omitempty"`

	// Plan to update this deployment
	Plan Plan `json:"plan,omitempty"`

	// HighPriorityPlan to update this deployment. Executed before plan
	HighPriorityPlan Plan `json:"highPriorityPlan,omitempty"`

	// ResourcesPlan to update this deployment. Executed before plan, after highPlan
	ResourcesPlan Plan `json:"resourcesPlan,omitempty"`

	// AcceptedSpec contains the last specification that was accepted by the operator.
	AcceptedSpec *DeploymentSpec `json:"accepted-spec,omitempty"`

	// SecretHashes keeps a sha256 hash of secret values, so we can
	// detect changes in secret values.
	SecretHashes *SecretHashes `json:"secret-hashes,omitempty"`

	// Hashes keep status of hashes in deployment
	Hashes DeploymentStatusHashes `json:"hashes,omitempty"`

	// ForceStatusReload if set to true forces a reload of the status from the custom resource.
	ForceStatusReload *bool `json:"force-status-reload,omitempty"`

	// Agency keeps information about agency
	Agency *DeploymentStatusAgencyInfo `json:"agency,omitempty"`

	Topology *TopologyStatus `json:"topology,omitempty"`

	Rebalancer *ArangoDeploymentRebalancerStatus `json:"rebalancer,omitempty"`

	BackOff BackOff `json:"backoff,omitempty"`

	Version *Version `json:"version,omitempty"`

	Timezone *string `json:"timezone,omitempty"`

	Single       *ServerGroupStatus `json:"single,omitempty"`
	Agents       *ServerGroupStatus `json:"agents,omitempty"`
	DBServers    *ServerGroupStatus `json:"dbservers,omitempty"`
	Coordinators *ServerGroupStatus `json:"coordinators,omitempty"`
	SyncMasters  *ServerGroupStatus `json:"syncmasters,omitempty"`
	SyncWorkers  *ServerGroupStatus `json:"syncworkers,omitempty"`
	Gateways     *ServerGroupStatus `json:"gateways,omitempty"`
}

DeploymentStatus contains the status part of a Cluster resource.

func (*DeploymentStatus) DeepCopy

func (in *DeploymentStatus) DeepCopy() *DeploymentStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStatus.

func (*DeploymentStatus) DeepCopyInto

func (in *DeploymentStatus) DeepCopyInto(out *DeploymentStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DeploymentStatus) Equal

func (ds *DeploymentStatus) Equal(other DeploymentStatus) bool

Equal checks for equality

func (DeploymentStatus) GetServerGroupStatus

func (ds DeploymentStatus) GetServerGroupStatus(group ServerGroup) ServerGroupStatus

GetServerGroupStatus returns the server group status (from this deployment status) for the given group.

func (*DeploymentStatus) IsForceReload

func (ds *DeploymentStatus) IsForceReload() bool

IsForceReload returns true if ForceStatusReload is set to true

func (*DeploymentStatus) IsPlanEmpty

func (ds *DeploymentStatus) IsPlanEmpty() bool

func (*DeploymentStatus) NonInternalActions

func (ds *DeploymentStatus) NonInternalActions() int

func (*DeploymentStatus) UpdateServerGroupStatus

func (ds *DeploymentStatus) UpdateServerGroupStatus(group ServerGroup, gspec ServerGroupStatus)

UpdateServerGroupStatus returns the server group status (from this deployment status) for the given group.

type DeploymentStatusAgencyIDs

type DeploymentStatusAgencyIDs []string

func (DeploymentStatusAgencyIDs) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStatusAgencyIDs.

func (DeploymentStatusAgencyIDs) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (DeploymentStatusAgencyIDs) Equal

func (DeploymentStatusAgencyIDs) Sort

func (d DeploymentStatusAgencyIDs) Sort()

type DeploymentStatusAgencyInfo

type DeploymentStatusAgencyInfo struct {
	Size *DeploymentStatusAgencySize `json:"size,omitempty"`
	IDs  DeploymentStatusAgencyIDs   `json:"ids,omitempty"`
}

func (*DeploymentStatusAgencyInfo) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStatusAgencyInfo.

func (*DeploymentStatusAgencyInfo) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DeploymentStatusAgencyInfo) Equal

type DeploymentStatusAgencySize

type DeploymentStatusAgencySize int

func (*DeploymentStatusAgencySize) Equal

type DeploymentStatusHashes

type DeploymentStatusHashes struct {
	Encryption DeploymentStatusHashesEncryption `json:"rocksDBEncryption,omitempty"`
	TLS        DeploymentStatusHashesTLS        `json:"tls,omitempty"`
	JWT        DeploymentStatusHashesJWT        `json:"jwt,omitempty"`
}

func (*DeploymentStatusHashes) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStatusHashes.

func (*DeploymentStatusHashes) DeepCopyInto

func (in *DeploymentStatusHashes) DeepCopyInto(out *DeploymentStatusHashes)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeploymentStatusHashesEncryption

type DeploymentStatusHashesEncryption struct {
	Keys sharedApi.HashList `json:"keys,omitempty"`

	Propagated bool `json:"propagated,omitempty"`
}

func (*DeploymentStatusHashesEncryption) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStatusHashesEncryption.

func (*DeploymentStatusHashesEncryption) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeploymentStatusHashesJWT

type DeploymentStatusHashesJWT struct {
	Active  string             `json:"active,omitempty"`
	Passive sharedApi.HashList `json:"passive,omitempty"`

	Propagated bool `json:"propagated,omitempty"`
}

func (*DeploymentStatusHashesJWT) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStatusHashesJWT.

func (*DeploymentStatusHashesJWT) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeploymentStatusHashesTLS

type DeploymentStatusHashesTLS struct {
	CA         *string            `json:"ca,omitempty"`
	Truststore sharedApi.HashList `json:"truststore,omitempty"`

	Propagated bool `json:"propagated,omitempty"`
}

func (*DeploymentStatusHashesTLS) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStatusHashesTLS.

func (*DeploymentStatusHashesTLS) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeploymentStatusMemberElement

type DeploymentStatusMemberElement struct {
	Group  ServerGroup  `json:"group,omitempty"`
	Member MemberStatus `json:"member,omitempty"`
}

DeploymentStatusMemberElement holds one specific element with group and member status

func (*DeploymentStatusMemberElement) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStatusMemberElement.

func (*DeploymentStatusMemberElement) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DeploymentStatusMemberElements

type DeploymentStatusMemberElements []DeploymentStatusMemberElement

func (DeploymentStatusMemberElements) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStatusMemberElements.

func (DeploymentStatusMemberElements) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (DeploymentStatusMemberElements) ForEach

func (d DeploymentStatusMemberElements) ForEach(f func(id int))

type DeploymentStatusMemberElementsCondFunc

type DeploymentStatusMemberElementsCondFunc func(a DeploymentStatusMemberElement) bool

type DeploymentStatusMemberElementsSortFunc

type DeploymentStatusMemberElementsSortFunc func(a, b DeploymentStatusMemberElement) bool

type DeploymentStatusMembers

type DeploymentStatusMembers struct {
	Single       MemberStatusList `json:"single,omitempty"`
	Agents       MemberStatusList `json:"agents,omitempty"`
	DBServers    MemberStatusList `json:"dbservers,omitempty"`
	Coordinators MemberStatusList `json:"coordinators,omitempty"`
	SyncMasters  MemberStatusList `json:"syncmasters,omitempty"`
	SyncWorkers  MemberStatusList `json:"syncworkers,omitempty"`
	Gateways     MemberStatusList `json:"gateways,omitempty"`
}

DeploymentStatusMembers holds the member status of all server groups

func (*DeploymentStatusMembers) Add

func (ds *DeploymentStatusMembers) Add(status MemberStatus, group ServerGroup) error

Add adds the given status in the given group.

func (DeploymentStatusMembers) AllMembersReady

func (ds DeploymentStatusMembers) AllMembersReady(mode DeploymentMode, syncEnabled, gatewayEnabled bool) bool

AllMembersReady returns true when all members, that must be ready for the given mode are in the Ready state.

func (DeploymentStatusMembers) AsList

func (DeploymentStatusMembers) AsListInGroup

func (DeploymentStatusMembers) AsListInGroups

func (DeploymentStatusMembers) ContainsID

func (ds DeploymentStatusMembers) ContainsID(id string) bool

ContainsID returns true if the given set of members contains a member with given ID.

func (*DeploymentStatusMembers) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentStatusMembers.

func (*DeploymentStatusMembers) DeepCopyInto

func (in *DeploymentStatusMembers) DeepCopyInto(out *DeploymentStatusMembers)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (DeploymentStatusMembers) ElementByID

ElementByID returns the element in the given list that has the given ID and true. If no such element exists, false is returned.

func (DeploymentStatusMembers) Equal

Equal checks for equality

func (DeploymentStatusMembers) ForServerGroup

func (ds DeploymentStatusMembers) ForServerGroup(cb MemberStatusFunc, group ServerGroup) error

ForServerGroup calls the given callback for specified server group. Deprecated. Use AsListInGroup or MembersOfGroup

func (DeploymentStatusMembers) ForeachServerGroup

func (ds DeploymentStatusMembers) ForeachServerGroup(cb MemberStatusFunc) error

ForeachServerGroup calls the given callback for all server groups. If the callback returns an error, this error is returned and the callback is not called for the remaining groups. Deprecated. Use AsList instead

func (DeploymentStatusMembers) ForeachServerInGroups

func (ds DeploymentStatusMembers) ForeachServerInGroups(cb MemberStatusFunc, groups ...ServerGroup) error

ForeachServerInGroups calls the given callback for specified server groups. Deprecated. Use AsListInGroups instead

func (DeploymentStatusMembers) MemberStatusByPVCName

func (ds DeploymentStatusMembers) MemberStatusByPVCName(pvcName string) (MemberStatus, ServerGroup, bool)

MemberStatusByPVCName returns a reference to the element in the given set of lists that has the given PVC name. If no such element exists, nil is returned.

func (DeploymentStatusMembers) MemberStatusByPodName

func (ds DeploymentStatusMembers) MemberStatusByPodName(podName string) (MemberStatus, ServerGroup, bool)

MemberStatusByPodName returns a reference to the element in the given set of lists that has the given pod name. Returns member status and group which the pod belong to. If no such element exists, false is returned.

func (DeploymentStatusMembers) MembersOfGroup

func (ds DeploymentStatusMembers) MembersOfGroup(group ServerGroup) MemberStatusList

MembersOfGroup returns the member list of the given group

func (DeploymentStatusMembers) PodNames

func (ds DeploymentStatusMembers) PodNames() []string

PodNames returns all members pod names

func (*DeploymentStatusMembers) RemoveByID

func (ds *DeploymentStatusMembers) RemoveByID(id string, group ServerGroup) error

RemoveByID a member with given ID from the given group. Returns a NotFoundError if the ID of the given member or group cannot be found.

func (*DeploymentStatusMembers) Update

func (ds *DeploymentStatusMembers) Update(status MemberStatus, group ServerGroup) error

Update updates the given status in the given group.

type DeploymentUpgradeSpec

type DeploymentUpgradeSpec struct {
	// AutoUpgrade flag specifies if upgrade should be auto-injected, even if is not required (in case of stuck)
	// +doc/default: false
	AutoUpgrade bool `json:"autoUpgrade"`
	// DebugLog flag specifies if containers running upgrade process should print more debugging information.
	// This applies only to init containers.
	// +doc/default: false
	DebugLog bool `json:"debugLog"`
}

func (*DeploymentUpgradeSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentUpgradeSpec.

func (*DeploymentUpgradeSpec) DeepCopyInto

func (in *DeploymentUpgradeSpec) DeepCopyInto(out *DeploymentUpgradeSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*DeploymentUpgradeSpec) Get

type Duration

type Duration string

Duration is a period of time, specified in go time.Duration format. This is intended to allow human friendly TTL's to be specified.

func DurationOrDefault

func DurationOrDefault(input *Duration, defaultValue ...Duration) Duration

DurationOrDefault returns the default value (or empty string) if input is nil, otherwise returns the referenced value.

func NewDuration

func NewDuration(input Duration) *Duration

NewDuration returns a reference to a Duration with given value.

func NewDurationOrNil

func NewDurationOrNil(input *Duration) *Duration

NewDurationOrNil returns nil if input is nil, otherwise returns a clone of the given value.

func (Duration) AsDuration

func (d Duration) AsDuration() time.Duration

AsDuration parses the duration to a time.Duration value. In case of a parse error, 0 is returned.

func (Duration) Validate

func (d Duration) Validate() error

Validate the duration. Return errors when validation fails, nil on success.

type Environment

type Environment string

Environment in which to run the cluster

const (
	// EnvironmentDevelopment yields a cluster optimized for development
	EnvironmentDevelopment Environment = "Development"
	// EnvironmentProduction yields a cluster optimized for production
	EnvironmentProduction Environment = "Production"
)

func EnvironmentOrDefault

func EnvironmentOrDefault(input *Environment, defaultValue ...Environment) Environment

EnvironmentOrDefault returns the default value (or empty string) if input is nil, otherwise returns the referenced value.

func NewEnvironment

func NewEnvironment(input Environment) *Environment

NewEnvironment returns a reference to a string with given value.

func NewEnvironmentOrNil

func NewEnvironmentOrNil(input *Environment) *Environment

NewEnvironmentOrNil returns nil if input is nil, otherwise returns a clone of the given value.

func (Environment) IsProduction

func (e Environment) IsProduction() bool

IsProduction returns true when the given environment is a production environment.

func (Environment) Validate

func (e Environment) Validate() error

Validate the environment. Return errors when validation fails, nil on success.

type EphemeralVolume

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.29/#quantity-resource-core
	Size *resource.Quantity `json:"size"`
}

EphemeralVolume keeps information about ephemeral volumes.

func (*EphemeralVolume) DeepCopy

func (in *EphemeralVolume) DeepCopy() *EphemeralVolume

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EphemeralVolume.

func (*EphemeralVolume) DeepCopyInto

func (in *EphemeralVolume) DeepCopyInto(out *EphemeralVolume)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EphemeralVolume) GetSize

GetSize returns size. If not defined, default is returned.

type EphemeralVolumes

type EphemeralVolumes struct {
	// Apps define apps ephemeral volume in case if `ephemeral-volumes` feature is enabled.
	Apps *EphemeralVolume `json:"apps,omitempty"`
	// Temp define temp ephemeral volume in case if `ephemeral-volumes` feature is enabled.
	Temp *EphemeralVolume `json:"temp,omitempty"`
}

EphemeralVolumes keeps info about ephemeral volumes. Used only with `ephemeral-volumes` feature.

func (*EphemeralVolumes) DeepCopy

func (in *EphemeralVolumes) DeepCopy() *EphemeralVolumes

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EphemeralVolumes.

func (*EphemeralVolumes) DeepCopyInto

func (in *EphemeralVolumes) DeepCopyInto(out *EphemeralVolumes)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*EphemeralVolumes) GetAppsSize

func (e *EphemeralVolumes) GetAppsSize() *resource.Quantity

GetAppsSize returns apps volume size with default value of nil.

func (*EphemeralVolumes) GetTempSize

func (e *EphemeralVolumes) GetTempSize() *resource.Quantity

GetTempSize returns temp volume size with default value of nil.

type ExternalAccessSpec

type ExternalAccessSpec struct {

	// Type specifies the type of Service that will be created to provide access to the ArangoDB deployment from outside the Kubernetes cluster.
	// +doc/enum: Auto|Create a Service of type LoadBalancer and fallback to a Service or type NodePort when the LoadBalancer is not assigned an IP address.
	// +doc/enum: None|limit access to application running inside the Kubernetes cluster.
	// +doc/enum: LoadBalancer|Create a Service of type LoadBalancer for the ArangoDB deployment.
	// +doc/enum: NodePort|Create a Service of type NodePort for the ArangoDB deployment.
	Type *ExternalAccessType `json:"type,omitempty"`

	// NodePort define optional port used in case of Auto or NodePort type.
	// This setting is used when `spec.externalAccess.type` is set to `NodePort` or `Auto`.
	// If you do not specify this setting, a random port will be chosen automatically.
	NodePort *int `json:"nodePort,omitempty"`

	// LoadBalancerIP define optional IP used to configure a load-balancer on, in case of Auto or LoadBalancer type.
	// If you do not specify this setting, an IP will be chosen automatically by the load-balancer provisioner.
	LoadBalancerIP *string `json:"loadBalancerIP,omitempty"`

	// LoadBalancerSourceRanges define LoadBalancerSourceRanges used for LoadBalancer Service type
	// If specified and supported by the platform, this will restrict traffic through the cloud-provider
	// load-balancer will be restricted to the specified client IPs. This field will be ignored if the
	// cloud-provider does not support the feature.
	// +doc/link: Cloud Provider Firewall|https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/
	LoadBalancerSourceRanges []string `json:"loadBalancerSourceRanges,omitempty"`

	// AdvertisedEndpoint is passed to the coordinators/single servers for advertising a specific endpoint
	AdvertisedEndpoint *string `json:"advertisedEndpoint,omitempty"`

	// ManagedServiceNames keeps names of services which are not managed by KubeArangoDB.
	// It is only relevant when type of service is `managed`.
	ManagedServiceNames []string `json:"managedServiceNames,omitempty"`
}

ExternalAccessSpec holds configuration for the external access provided for the deployment.

func (*ExternalAccessSpec) DeepCopy

func (in *ExternalAccessSpec) DeepCopy() *ExternalAccessSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalAccessSpec.

func (*ExternalAccessSpec) DeepCopyInto

func (in *ExternalAccessSpec) DeepCopyInto(out *ExternalAccessSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ExternalAccessSpec) GetAdvertisedEndpoint

func (s ExternalAccessSpec) GetAdvertisedEndpoint() string

GetAdvertisedEndpoint returns the advertised endpoint or empty string if none was specified

func (ExternalAccessSpec) GetLoadBalancerIP

func (s ExternalAccessSpec) GetLoadBalancerIP() string

GetLoadBalancerIP returns the value of loadBalancerIP.

func (ExternalAccessSpec) GetManagedServiceNames

func (s ExternalAccessSpec) GetManagedServiceNames() []string

GetManagedServiceNames returns a list of managed service names.

func (ExternalAccessSpec) GetNodePort

func (s ExternalAccessSpec) GetNodePort() int

GetNodePort returns the value of nodePort.

func (ExternalAccessSpec) GetType

GetType returns the value of type.

func (ExternalAccessSpec) HasAdvertisedEndpoint

func (s ExternalAccessSpec) HasAdvertisedEndpoint() bool

HasAdvertisedEndpoint return whether an advertised endpoint was specified or not

func (ExternalAccessSpec) ResetImmutableFields

func (s ExternalAccessSpec) ResetImmutableFields(fieldPrefix string, target *ExternalAccessSpec) []string

ResetImmutableFields replaces all immutable fields in the given target with values from the source spec. It returns a list of fields that have been reset. Field names are relative to given field prefix.

func (*ExternalAccessSpec) SetDefaults

func (s *ExternalAccessSpec) SetDefaults()

SetDefaults fills in missing defaults

func (*ExternalAccessSpec) SetDefaultsFrom

func (s *ExternalAccessSpec) SetDefaultsFrom(source ExternalAccessSpec)

SetDefaultsFrom fills unspecified fields with a value from given source spec.

func (ExternalAccessSpec) Validate

func (s ExternalAccessSpec) Validate() error

Validate the given spec

type ExternalAccessType

type ExternalAccessType string

ExternalAccessType specifies the type of external access provides for the deployment

const (
	// ExternalAccessTypeNone yields a cluster with no external access
	ExternalAccessTypeNone ExternalAccessType = "None"
	// ExternalAccessTypeAuto yields a cluster with an automatic selection for external access
	ExternalAccessTypeAuto ExternalAccessType = "Auto"
	// ExternalAccessTypeLoadBalancer yields a cluster with a service of type `LoadBalancer` to provide external access
	ExternalAccessTypeLoadBalancer ExternalAccessType = "LoadBalancer"
	// ExternalAccessTypeNodePort yields a cluster with a service of type `NodePort` to provide external access
	ExternalAccessTypeNodePort ExternalAccessType = "NodePort"
	// ExternalAccessTypeManaged yields a cluster with a service which controls only selector.
	ExternalAccessTypeManaged ExternalAccessType = "Managed"
)

func ExternalAccessTypeOrDefault

func ExternalAccessTypeOrDefault(input *ExternalAccessType, defaultValue ...ExternalAccessType) ExternalAccessType

ExternalAccessTypeOrDefault returns the default value (or empty string) if input is nil, otherwise returns the referenced value.

func NewExternalAccessType

func NewExternalAccessType(input ExternalAccessType) *ExternalAccessType

NewExternalAccessType returns a reference to a string with given value.

func NewExternalAccessTypeOrNil

func NewExternalAccessTypeOrNil(input *ExternalAccessType) *ExternalAccessType

NewExternalAccessTypeOrNil returns nil if input is nil, otherwise returns a clone of the given value.

func (ExternalAccessType) AsServiceType

func (t ExternalAccessType) AsServiceType() core.ServiceType

AsServiceType returns the k8s ServiceType for this ExternalAccessType. If type is "Auto", ServiceTypeLoadBalancer is returned.

func (ExternalAccessType) IsAuto

func (t ExternalAccessType) IsAuto() bool

func (ExternalAccessType) IsLoadBalancer

func (t ExternalAccessType) IsLoadBalancer() bool

func (ExternalAccessType) IsManaged

func (t ExternalAccessType) IsManaged() bool

func (ExternalAccessType) IsNodePort

func (t ExternalAccessType) IsNodePort() bool

func (ExternalAccessType) IsNone

func (t ExternalAccessType) IsNone() bool

func (ExternalAccessType) Validate

func (t ExternalAccessType) Validate() error

Validate the type. Return errors when validation fails, nil on success.

type ImageInfo

type ImageInfo struct {
	Image           string         `json:"image"`                      // Human provided name of the image
	ImageID         string         `json:"image-id,omitempty"`         // Unique ID (with SHA256) of the image
	ArangoDBVersion driver.Version `json:"arangodb-version,omitempty"` // ArangoDB version within the image
	Enterprise      bool           `json:"enterprise,omitempty"`       // If set, this is an enterprise image
}

ImageInfo contains an ID of an image and the ArangoDB version inside the image.

func (*ImageInfo) DeepCopy

func (in *ImageInfo) DeepCopy() *ImageInfo

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageInfo.

func (*ImageInfo) DeepCopyInto

func (in *ImageInfo) DeepCopyInto(out *ImageInfo)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ImageInfo) Equal

func (i *ImageInfo) Equal(other *ImageInfo) bool

Equal compares to ImageInfo

func (*ImageInfo) String

func (i *ImageInfo) String() string

type ImageInfoList

type ImageInfoList []ImageInfo

ImageInfoList is a list of image infos

func (ImageInfoList) Add

func (*ImageInfoList) AddOrUpdate

func (l *ImageInfoList) AddOrUpdate(info ImageInfo)

AddOrUpdate adds the given info to the given list, if its image does not exist in the list. If the image does exist in the list, its entry is replaced by the given info. If not found, false is returned.

func (ImageInfoList) DeepCopy

func (in ImageInfoList) DeepCopy() ImageInfoList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageInfoList.

func (ImageInfoList) DeepCopyInto

func (in ImageInfoList) DeepCopyInto(out *ImageInfoList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ImageInfoList) Equal

func (l ImageInfoList) Equal(other ImageInfoList) bool

Equal compares to ImageInfoList

func (ImageInfoList) GetByImage

func (l ImageInfoList) GetByImage(image string) (ImageInfo, bool)

GetByImage returns the info in the given list for the image with given name. If not found, false is returned.

func (ImageInfoList) GetByImageID

func (l ImageInfoList) GetByImageID(imageID string) (ImageInfo, bool)

GetByImageID returns the info in the given list for the image with given id. If not found, false is returned.

type LabelsMode

type LabelsMode string
const (
	// LabelsDisabledMode disable annotations/labels override. Default if there is no annotations/labels set in ArangoDeployment
	LabelsDisabledMode LabelsMode = "disabled"
	// LabelsAppendMode add new annotations/labels without affecting old ones
	LabelsAppendMode LabelsMode = "append"
	// LabelsReplaceMode replace existing annotations/labels
	LabelsReplaceMode LabelsMode = "replace"
)

func (*LabelsMode) Get

func (a *LabelsMode) Get(def LabelsMode) LabelsMode

func (LabelsMode) New

func (a LabelsMode) New() *LabelsMode

type LicenseSpec

type LicenseSpec struct {
	// SecretName setting specifies the name of a kubernetes `Secret` that contains
	// the license key token used for enterprise images. This value is not used for
	// the Community Edition.
	SecretName *string `json:"secretName,omitempty"`
}

LicenseSpec holds the license related information

func (*LicenseSpec) DeepCopy

func (in *LicenseSpec) DeepCopy() *LicenseSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LicenseSpec.

func (*LicenseSpec) DeepCopyInto

func (in *LicenseSpec) DeepCopyInto(out *LicenseSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (LicenseSpec) GetSecretName

func (s LicenseSpec) GetSecretName() string

GetSecretName returns the license key if set. Empty string otherwise.

func (LicenseSpec) HasSecretName

func (s LicenseSpec) HasSecretName() bool

HasSecretName returns true if a license key secret name was set

func (*LicenseSpec) SetDefaultsFrom

func (s *LicenseSpec) SetDefaultsFrom(other LicenseSpec)

SetDefaultsFrom fills all values not set in s with values from other

func (LicenseSpec) Validate

func (s LicenseSpec) Validate() error

Validate validates the LicenseSpec

type LifecycleSpec

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.29/#resourcerequirements-v1-core
	Resources core.ResourceRequirements `json:"resources,omitempty"`
}

func (*LifecycleSpec) DeepCopy

func (in *LifecycleSpec) DeepCopy() *LifecycleSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LifecycleSpec.

func (*LifecycleSpec) DeepCopyInto

func (in *LifecycleSpec) DeepCopyInto(out *LifecycleSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*LifecycleSpec) SetDefaultsFrom

func (s *LifecycleSpec) SetDefaultsFrom(source LifecycleSpec)

SetDefaultsFrom fills unspecified fields with a value from given source spec.

type List

type List []string

func (List) Add

func (l List) Add(values ...string) List

func (List) Contains

func (l List) Contains(v string) bool

func (List) DeepCopy

func (in List) DeepCopy() List

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new List.

func (List) DeepCopyInto

func (in List) DeepCopyInto(out *List)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (List) Equal

func (l List) Equal(b List) bool

func (List) Remove

func (l List) Remove(values ...string) List

func (List) Sort

func (l List) Sort() List

func (List) Unique

func (l List) Unique() List

type MemberPersistentVolumeClaimStatus

type MemberPersistentVolumeClaimStatus struct {
	Name string `json:"name"`
}

func (*MemberPersistentVolumeClaimStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberPersistentVolumeClaimStatus.

func (*MemberPersistentVolumeClaimStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MemberPersistentVolumeClaimStatus) Equal

func (*MemberPersistentVolumeClaimStatus) GetName

func (*MemberPersistentVolumeClaimStatus) Propagate

type MemberPhase

type MemberPhase string

MemberPhase is a strongly typed lifetime phase of a deployment member

const (
	// MemberPhaseNone indicates that the state is not set yet
	MemberPhaseNone MemberPhase = ""
	// MemberPhasePending indicates that member propagation has been started
	MemberPhasePending MemberPhase = "Pending"
	// MemberPhaseCreated indicates that all resources needed for the member have been created
	MemberPhaseCreated MemberPhase = "Created"
	// MemberPhaseCreationFailed indicates that creation of member resources was not possible, fallback to MemberPhaseCreated state
	MemberPhaseCreationFailed MemberPhase = "CreationFailed"
	// MemberPhaseFailed indicates that the member is gone beyond hope of recovery. It must be replaced with a new member.
	MemberPhaseFailed MemberPhase = "Failed"
	// MemberPhaseCleanOut indicates that a dbserver is in the process of being cleaned out
	MemberPhaseCleanOut MemberPhase = "CleanOut"
	// MemberPhaseDrain indicates that a dbserver is in the process of being cleaned out as result of draining a node
	MemberPhaseDrain MemberPhase = "Drain"
	// MemberPhaseResign indicates that a dbserver is in the process of resigning for a shutdown
	MemberPhaseResign MemberPhase = "Resign"
	// MemberPhaseShuttingDown indicates that a member is shutting down
	MemberPhaseShuttingDown MemberPhase = "ShuttingDown"
	// MemberPhaseRotating indicates that a member is being rotated
	MemberPhaseRotating MemberPhase = "Rotating"
	// MemberPhaseRotateStart indicates that a member is being rotated but wont get up outside of plan
	MemberPhaseRotateStart MemberPhase = "RotateStart"
	// MemberPhaseUpgrading indicates that a member is in the process of upgrading its database data format
	MemberPhaseUpgrading MemberPhase = "Upgrading"
)

func GetPhase

func GetPhase(phase string) (MemberPhase, bool)

GetPhase parses string into phase

func (MemberPhase) IsCreatedOrDrain

func (p MemberPhase) IsCreatedOrDrain() bool

IsCreatedOrDrain returns true when given phase is MemberPhaseCreated or MemberPhaseDrain

func (MemberPhase) IsFailed

func (p MemberPhase) IsFailed() bool

IsFailed returns true when given phase == "Failed"

func (MemberPhase) IsPending

func (p MemberPhase) IsPending() bool

IsPending returns true when given phase == "" OR "Pending"

func (MemberPhase) IsReady

func (p MemberPhase) IsReady() bool

IsReady returns true when given phase == "Created"

func (MemberPhase) String

func (p MemberPhase) String() string

String returns string from MemberPhase

type MemberPodStatus

type MemberPodStatus struct {
	Name        string    `json:"name"`
	UID         types.UID `json:"uid"`
	SpecVersion string    `json:"specVersion,omitempty"`
}

func (*MemberPodStatus) DeepCopy

func (in *MemberPodStatus) DeepCopy() *MemberPodStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberPodStatus.

func (*MemberPodStatus) DeepCopyInto

func (in *MemberPodStatus) DeepCopyInto(out *MemberPodStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MemberPodStatus) Equal

func (m *MemberPodStatus) Equal(other *MemberPodStatus) bool

func (*MemberPodStatus) GetName

func (m *MemberPodStatus) GetName() string

func (*MemberPodStatus) GetUID

func (m *MemberPodStatus) GetUID() types.UID

func (*MemberPodStatus) Propagate

func (m *MemberPodStatus) Propagate(s *MemberStatus)

type MemberStatus

type MemberStatus struct {
	// ID holds the unique ID of the member.
	// This id is also used within the ArangoDB cluster to identify this server.
	ID string `json:"id"`
	// UID holds the unique UID of the member.
	// UID is created once member run in AddMember action.
	UID types.UID `json:"uid,omitempty"`
	// RID holds the ID of the member run.
	// Value is updated in Pending Phase.
	RID types.UID `json:"rid,omitempty"`
	// ClusterID holds the ID of the Arango deployment.
	ClusterID types.UID `json:"cid,omitempty"`
	// Phase holds the current lifetime phase of this member
	Phase MemberPhase `json:"phase"`
	// CreatedAt holds the creation timestamp of this member.
	CreatedAt meta.Time `json:"created-at"`
	// Conditions specific to this member
	Conditions ConditionList `json:"conditions,omitempty"`
	// RecentTerminations holds the times when this member was recently terminated.
	// First entry is the oldest. (do not add omitempty, since we want to be able to switch from a list to an empty list)
	RecentTerminations []meta.Time `json:"recent-terminations"`
	// IsInitialized is set after the very first time a pod was created for this member.
	// After that, DBServers must have a UUID field or fail.
	IsInitialized bool `json:"initialized"`
	// CleanoutJobID holds the ID of the agency job for cleaning out this server
	CleanoutJobID string `json:"cleanout-job-id,omitempty"`
	// ArangoVersion holds the ArangoDB version in member
	ArangoVersion driver.Version `json:"arango-version,omitempty"`
	// ImageId holds the members ArangoDB image ID
	ImageID string `json:"image-id,omitempty"`
	// Image holds image details
	Image *ImageInfo `json:"image,omitempty"`
	// OldImage holds old image defails
	OldImage *ImageInfo `json:"old-image,omitempty"`
	// Architecture defines Image architecture type
	Architecture *ArangoDeploymentArchitectureType `json:"architecture,omitempty"`
	// Upgrade define if upgrade should be enforced during next execution
	Upgrade bool `json:"upgrade,omitempty"`

	// Topology define topology member status assignment
	Topology     *TopologyMemberStatus `json:"topology,omitempty"`
	Pod          *MemberPodStatus      `json:"pod,omitempty"`
	SecondaryPod *MemberPodStatus      `json:"secondaryPod,omitempty"`

	// PersistentVolumeClaim keeps information about PVC for Primary Pod
	PersistentVolumeClaim *MemberPersistentVolumeClaimStatus `json:"persistentVolumeClaim,omitempty"`

	// SecondaryPersistentVolumeClaim keeps information about PVC for SecondaryPod
	SecondaryPersistentVolumeClaim *MemberPersistentVolumeClaimStatus `json:"secondaryPersistentVolumeClaim,omitempty"`

	// Deprecated
	// 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.29/#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
	PodName string `json:"podName,omitempty"`
	// Deprecated
	// PodUID holds the UID of the Pod that currently runs this member
	PodUID types.UID `json:"podUID,omitempty"`
	// Deprecated
	// PodSpecVersion holds the checksum of Pod spec that currently runs this member. Used to rotate pods
	PodSpecVersion string `json:"podSpecVersion,omitempty"`
	// Deprecated
	// PersistentVolumeClaimName holds the name of the persistent volume claim used for this member (if any).
	PersistentVolumeClaimName string `json:"persistentVolumeClaimName,omitempty"`
	// Deprecated
	// Endpoint definition how member should be reachable
	Endpoint *string `json:"-"`
}

MemberStatus holds the current status of a single member (server)

func (MemberStatus) Age

func (s MemberStatus) Age() time.Duration

Age returns the duration since the creation timestamp of this member.

func (MemberStatus) ArangoMemberName

func (s MemberStatus) ArangoMemberName(deploymentName string, group ServerGroup) string

ArangoMemberName create member name from given member

func (*MemberStatus) DeepCopy

func (in *MemberStatus) DeepCopy() *MemberStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberStatus.

func (*MemberStatus) DeepCopyInto

func (in *MemberStatus) DeepCopyInto(out *MemberStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (MemberStatus) Equal

func (s MemberStatus) Equal(other MemberStatus) bool

Equal checks for equality

func (*MemberStatus) GetEndpoint

func (s *MemberStatus) GetEndpoint(defaultEndpoint string) string

Deprecated

func (MemberStatus) IsNotReadySince

func (s MemberStatus) IsNotReadySince(timestamp time.Time) bool

IsNotReadySince returns true when the given member has not been ready since the given timestamp. That means it: - A) Was created before timestamp and never reached a ready state or - B) The Ready condition is set to false, and last transision is before timestamp

func (MemberStatus) RecentTerminationsSince

func (s MemberStatus) RecentTerminationsSince(timestamp time.Time) int

RecentTerminationsSince returns the number of terminations since the given timestamp.

func (*MemberStatus) RemoveTerminationsBefore

func (s *MemberStatus) RemoveTerminationsBefore(timestamp time.Time) int

RemoveTerminationsBefore removes all recent terminations before the given timestamp. It returns the number of terminations that have been removed.

type MemberStatusFunc

type MemberStatusFunc func(group ServerGroup, list MemberStatusList) error

MemberStatusFunc is a callback which is used to traverse a specific group of servers and check their status.

type MemberStatusList

type MemberStatusList []MemberStatus

MemberStatusList is a list of MemberStatus entries

func (MemberStatusList) AllConditionTrueSince

func (l MemberStatusList) AllConditionTrueSince(cond ConditionType, status core.ConditionStatus, period time.Duration) bool

AllConditionTrueSince returns true if all members satisfy the condition since the given period

func (MemberStatusList) AllFailed

func (l MemberStatusList) AllFailed() bool

AllFailed returns true if all members are failed

func (MemberStatusList) AllMembersReady

func (l MemberStatusList) AllMembersReady() bool

AllMembersReady returns the true if all members are in the Ready state.

func (MemberStatusList) AllMembersServing

func (l MemberStatusList) AllMembersServing() bool

AllMembersServing returns the true if all members are in the Serving state.

func (MemberStatusList) ContainsID

func (l MemberStatusList) ContainsID(id string) bool

ContainsID returns true if the given list contains a member with given ID.

func (MemberStatusList) DeepCopy

func (in MemberStatusList) DeepCopy() MemberStatusList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MemberStatusList.

func (MemberStatusList) DeepCopyInto

func (in MemberStatusList) DeepCopyInto(out *MemberStatusList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (MemberStatusList) ElementByID

func (l MemberStatusList) ElementByID(id string) (MemberStatus, bool)

ElementByID returns the element in the given list that has the given ID and true. If no such element exists, false is returned.

func (MemberStatusList) ElementByPVCName

func (l MemberStatusList) ElementByPVCName(pvcName string) (MemberStatus, bool)

ElementByPVCName returns the element in the given list that has the given PVC name and true. If no such element exists, an empty element and false is returned.

func (MemberStatusList) ElementByPodName

func (l MemberStatusList) ElementByPodName(podName string) (MemberStatus, bool)

ElementByPodName returns the element in the given list that has the given pod name and true. If no such element exists, an empty element and false is returned.

func (MemberStatusList) Equal

func (l MemberStatusList) Equal(other MemberStatusList) bool

Equal checks for equality

func (MemberStatusList) MembersReady

func (l MemberStatusList) MembersReady() int

MembersReady returns the number of members that are in the Ready state.

func (MemberStatusList) MembersServing

func (l MemberStatusList) MembersServing() int

MembersServing returns the number of members that are in the Serving state.

func (MemberStatusList) SelectMemberToRemove

func (l MemberStatusList) SelectMemberToRemove(selectors ...MemberToRemoveSelector) (MemberStatus, error)

SelectMemberToRemove selects a member from the given list that should be removed in a ScaleDown action. Returns an error if the list is empty. Deprecated: will be removed in 1.3.0 since ScaleDown annotation is already removed

type MemberToRemoveSelector

type MemberToRemoveSelector func(m MemberStatusList) (string, error)

type MetricsAuthenticationSpec

type MetricsAuthenticationSpec struct {
	// JWTTokenSecretName contains the name of the JWT kubernetes secret used for authentication
	JWTTokenSecretName *string `json:"jwtTokenSecretName,omitempty"`
}

MetricsAuthenticationSpec contains spec for authentication with arangodb

func (*MetricsAuthenticationSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsAuthenticationSpec.

func (*MetricsAuthenticationSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type MetricsMode

type MetricsMode string

MetricsMode defines mode for metrics exporter

const (
	// MetricsModeExporter starts sidecar container with
	// Deprecated
	MetricsModeExporter MetricsMode = "exporter"
	// MetricsModeSidecar behaves exactly the same as MetricsModeExporter
	// Deprecated
	MetricsModeSidecar MetricsMode = "sidecar"
	// MetricsModeInternal exposes metrics using ArangoD endpoint
	// Deprecated
	MetricsModeInternal MetricsMode = "internal"
)

func (*MetricsMode) Get

func (m *MetricsMode) Get() MetricsMode

func (MetricsMode) GetMetricsEndpoint

func (m MetricsMode) GetMetricsEndpoint() string

GetMetricsEndpoint Deprecated

func (MetricsMode) New

func (m MetricsMode) New() *MetricsMode

type MetricsServiceMonitorSpec

type MetricsServiceMonitorSpec struct {
	Enabled *bool             `json:"enabled,omitempty"`
	Labels  map[string]string `json:"labels,omitempty"`
}

func (*MetricsServiceMonitorSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsServiceMonitorSpec.

func (*MetricsServiceMonitorSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MetricsServiceMonitorSpec) GetLabels

func (m *MetricsServiceMonitorSpec) GetLabels(def map[string]string) map[string]string

func (*MetricsServiceMonitorSpec) IsEnabled

func (m *MetricsServiceMonitorSpec) IsEnabled() bool

type MetricsSpec

type MetricsSpec struct {
	// Enabled if this is set to `true`, the operator runs a sidecar container for
	// every Agent, DB-Server, Coordinator and Single server.
	// +doc/default: false
	// +doc/link: Metrics collection|../metrics.md
	Enabled *bool `json:"enabled,omitempty"`

	// Image used for the Metrics Sidecar
	//
	// Deprecated: Image is now extracted from Operator Pod
	Image *string `json:"image,omitempty"`

	Authentication MetricsAuthenticationSpec `json:"authentication,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.29/#resourcerequirements-v1-core
	Resources core.ResourceRequirements `json:"resources,omitempty"`

	// Mode define metrics exported mode
	//
	// Deprecated: Not used anymore
	Mode *MetricsMode `json:"mode,omitempty"`

	// TLS defines if TLS should be enabled on Metrics exporter endpoint.
	// This option will enable TLS only if TLS is enabled on ArangoDeployment,
	// otherwise `true` value will not take any effect.
	// +doc/default: true
	TLS *bool `json:"tls,omitempty"`

	ServiceMonitor *MetricsServiceMonitorSpec `json:"serviceMonitor,omitempty"`

	Port *uint16 `json:"port,omitempty"`

	// Extensions keeps the information about Metrics Extensions
	Extensions *MetricsSpecExtensions `json:"extensions,omitempty"`
}

MetricsSpec contains spec for arangodb exporter

func (*MetricsSpec) DeepCopy

func (in *MetricsSpec) DeepCopy() *MetricsSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsSpec.

func (*MetricsSpec) DeepCopyInto

func (in *MetricsSpec) DeepCopyInto(out *MetricsSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MetricsSpec) GetExtensions

func (s *MetricsSpec) GetExtensions() *MetricsSpecExtensions

func (*MetricsSpec) GetImage

func (s *MetricsSpec) GetImage() string

GetImage returns the Image or empty string Deprecated

func (*MetricsSpec) GetJWTTokenSecretName

func (s *MetricsSpec) GetJWTTokenSecretName() string

GetJWTTokenSecretName returns the token secret name or empty string

func (*MetricsSpec) GetPort

func (s *MetricsSpec) GetPort() uint16

func (*MetricsSpec) HasImage

func (s *MetricsSpec) HasImage() bool

HasImage returns whether a image was specified or not Deprecated

func (*MetricsSpec) HasJWTTokenSecretName

func (s *MetricsSpec) HasJWTTokenSecretName() bool

HasJWTTokenSecretName returns true if a secret name was specified

func (*MetricsSpec) IsEnabled

func (s *MetricsSpec) IsEnabled() bool

IsEnabled returns whether metrics are enabled or not

func (*MetricsSpec) IsTLS

func (s *MetricsSpec) IsTLS() bool

func (MetricsSpec) ResetImmutableFields

func (s MetricsSpec) ResetImmutableFields(fieldPrefix string, target *MetricsSpec) []string

ResetImmutableFields replaces all immutable fields in the given target with values from the source spec.

func (*MetricsSpec) SetDefaults

func (s *MetricsSpec) SetDefaults(defaultTokenName string, isAuthenticated bool)

SetDefaults sets default values

func (*MetricsSpec) SetDefaultsFrom

func (s *MetricsSpec) SetDefaultsFrom(source MetricsSpec)

SetDefaultsFrom fills unspecified fields with a value from given source spec.

func (*MetricsSpec) Validate

func (s *MetricsSpec) Validate() error

Validate the given spec

type MetricsSpecExtensions

type MetricsSpecExtensions struct {
	// UsageMetrics enables ArangoDB Usage metrics scrape. Affects only DBServers in the Cluster mode.
	// +doc/default: false
	// +doc/link: Documentation|https://docs.arangodb.com/devel/develop/http-api/monitoring/metrics/#get-usage-metrics
	// +doc/important: UsageMetrics needs to be also enabled via DBServer Arguments
	UsageMetrics *bool `json:"usageMetrics,omitempty"`
}

MetricsSpecExtensions defines enabled extensions for MetricsExporter

func (*MetricsSpecExtensions) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricsSpecExtensions.

func (*MetricsSpecExtensions) DeepCopyInto

func (in *MetricsSpecExtensions) DeepCopyInto(out *MetricsSpecExtensions)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*MetricsSpecExtensions) GetUsageMetrics

func (m *MetricsSpecExtensions) GetUsageMetrics() bool

type MonitoringSpec

type MonitoringSpec struct {
	// TokenSecretName setting specifies the name of a kubernetes `Secret` that contains
	// the bearer token used for accessing all monitoring endpoints of all arangod/arangosync servers.
	// When not specified, no monitoring token is used.
	TokenSecretName *string `json:"tokenSecretName,omitempty"`
}

MonitoringSpec holds monitoring specific configuration settings

func (*MonitoringSpec) DeepCopy

func (in *MonitoringSpec) DeepCopy() *MonitoringSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonitoringSpec.

func (*MonitoringSpec) DeepCopyInto

func (in *MonitoringSpec) DeepCopyInto(out *MonitoringSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (MonitoringSpec) GetTokenSecretName

func (s MonitoringSpec) GetTokenSecretName() string

GetTokenSecretName returns the value of tokenSecretName.

func (*MonitoringSpec) SetDefaults

func (s *MonitoringSpec) SetDefaults(defaultTokenSecretName string)

SetDefaults fills in missing defaults

func (*MonitoringSpec) SetDefaultsFrom

func (s *MonitoringSpec) SetDefaultsFrom(source MonitoringSpec)

SetDefaultsFrom fills unspecified fields with a value from given source spec.

func (MonitoringSpec) Validate

func (s MonitoringSpec) Validate() error

Validate the given spec

type PVCResizeMode

type PVCResizeMode string
const (
	PVCResizeModeRuntime PVCResizeMode = "runtime"
	PVCResizeModeRotate  PVCResizeMode = "rotate"
)

func (*PVCResizeMode) Get

func (p *PVCResizeMode) Get() PVCResizeMode

func (PVCResizeMode) String

func (p PVCResizeMode) String() string

type PasswordSecretName

type PasswordSecretName string

PasswordSecretName contains user password secret name

const (
	// PasswordSecretNameNone is magic value for no action
	PasswordSecretNameNone PasswordSecretName = "None"
	// PasswordSecretNameAuto is magic value for autogenerate name
	PasswordSecretNameAuto PasswordSecretName = "Auto"
)

func (PasswordSecretName) Get

func (p PasswordSecretName) Get() string

func (PasswordSecretName) IsAuto

func (p PasswordSecretName) IsAuto() bool

IsAuto returns true if p is Auto

func (PasswordSecretName) IsNone

func (p PasswordSecretName) IsNone() bool

IsNone returns true if p is None or p is empty

type PasswordSecretNameList

type PasswordSecretNameList map[string]PasswordSecretName

PasswordSecretNameList is a map from username to secretnames

func NewPasswordSecretNameListOrNil

func NewPasswordSecretNameListOrNil(list PasswordSecretNameList) PasswordSecretNameList

NewPasswordSecretNameListOrNil returns nil if input is nil, otherwise returns a clone of the given value.

func (PasswordSecretNameList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PasswordSecretNameList.

func (PasswordSecretNameList) DeepCopyInto

func (in PasswordSecretNameList) DeepCopyInto(out *PasswordSecretNameList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (PasswordSecretNameList) GetSecretName

func (s PasswordSecretNameList) GetSecretName(user string) PasswordSecretName

GetSecretName returns the secret name given by the specs. Or None if not set.

type Percent

type Percent int

Percent is a percentage between 0 and 100.

func NewPercent

func NewPercent(input Percent) *Percent

NewPercent returns a reference to a percent with given value.

func NewPercentOrNil

func NewPercentOrNil(input *Percent) *Percent

NewPercentOrNil returns nil if input is nil, otherwise returns a clone of the given value.

func PercentOrDefault

func PercentOrDefault(input *Percent, defaultValue ...Percent) Percent

PercentOrDefault returns the default value or 0 if input is nil, otherwise returns the referenced value.

func (Percent) Validate

func (p Percent) Validate() error

Validate the given percentage.

type Plan

type Plan []Action

Plan is a list of actions that will be taken to update a deployment. Only 1 action is in progress at a time. The operator will wait for that action to be completely and then remove the action.

func AsPlan

func AsPlan(a []Action) Plan

AsPlan parse action list into plan

func (Plan) After

func (p Plan) After(action ...Action) Plan

After add action at the end of plan

func (Plan) AfterFirst

func (p Plan) AfterFirst(condition func(a Action) bool, actions ...Action) Plan

AfterFirst adds actions when condition will return false

func (Plan) Before

func (p Plan) Before(action ...Action) Plan

Before add action at the beginning of plan

func (Plan) DeepCopy

func (in Plan) DeepCopy() Plan

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Plan.

func (Plan) DeepCopyInto

func (in Plan) DeepCopyInto(out *Plan)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (Plan) Equal

func (p Plan) Equal(other Plan) bool

Equal compares two Plan

func (Plan) Filter

func (p Plan) Filter(condition func(a Action) bool) Plan

Filter filter list of the actions

func (Plan) IsEmpty

func (p Plan) IsEmpty() bool

IsEmpty checks if plan is empty

func (Plan) NonInternalActions

func (p Plan) NonInternalActions() int

func (Plan) Wrap

func (p Plan) Wrap(before, after Action) Plan

Wrap wraps plan with actions

func (Plan) WrapWithPlan

func (p Plan) WrapWithPlan(before, after Plan) Plan

WrapWithPlan wraps plan with plan

type PlanLocalKey

type PlanLocalKey string

func (PlanLocalKey) Register

func (p PlanLocalKey) Register(action Action, format string, args ...interface{}) Action

func (PlanLocalKey) String

func (p PlanLocalKey) String() string

type PlanLocals

type PlanLocals map[PlanLocalKey]string

func (*PlanLocals) Add

func (p *PlanLocals) Add(key PlanLocalKey, value string, override bool) bool

func (PlanLocals) DeepCopy

func (in PlanLocals) DeepCopy() PlanLocals

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PlanLocals.

func (PlanLocals) DeepCopyInto

func (in PlanLocals) DeepCopyInto(out *PlanLocals)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (PlanLocals) Equal

func (p PlanLocals) Equal(other PlanLocals) bool

func (PlanLocals) Get

func (p PlanLocals) Get(key PlanLocalKey) (string, bool)

func (PlanLocals) GetWithParent

func (p PlanLocals) GetWithParent(parent PlanLocals, key PlanLocalKey) (string, bool)

func (*PlanLocals) Merge

func (p *PlanLocals) Merge(merger PlanLocals) (changed bool)

func (*PlanLocals) Remove

func (p *PlanLocals) Remove(key PlanLocalKey) bool

type ProbeType

type ProbeType string

type RocksDBEncryptionSpec

type RocksDBEncryptionSpec struct {
	// KeySecretName setting specifies the name of a Kubernetes `Secret` that contains an encryption key used for encrypting all data stored by ArangoDB servers.
	// When an encryption key is used, encryption of the data in the cluster is enabled, without it encryption is disabled.
	// The default value is empty.
	// This requires the Enterprise Edition.
	// The encryption key cannot be changed after the cluster has been created.
	// The secret specified by this setting, must have a data field named 'key' containing an encryption key that is exactly 32 bytes long.
	KeySecretName *string `json:"keySecretName,omitempty"`
}

RocksDBEncryptionSpec holds rocksdb encryption at rest specific configuration settings

func (*RocksDBEncryptionSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RocksDBEncryptionSpec.

func (*RocksDBEncryptionSpec) DeepCopyInto

func (in *RocksDBEncryptionSpec) DeepCopyInto(out *RocksDBEncryptionSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (RocksDBEncryptionSpec) GetKeySecretName

func (s RocksDBEncryptionSpec) GetKeySecretName() string

GetKeySecretName returns the value of keySecretName.

func (RocksDBEncryptionSpec) IsEncrypted

func (s RocksDBEncryptionSpec) IsEncrypted() bool

IsEncrypted returns true when an encryption key secret name is provided, false otherwise.

type RocksDBSpec

type RocksDBSpec struct {
	Encryption RocksDBEncryptionSpec `json:"encryption"`
}

RocksDBSpec holds rocksdb specific configuration settings

func (*RocksDBSpec) DeepCopy

func (in *RocksDBSpec) DeepCopy() *RocksDBSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RocksDBSpec.

func (*RocksDBSpec) DeepCopyInto

func (in *RocksDBSpec) DeepCopyInto(out *RocksDBSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (RocksDBSpec) IsEncrypted

func (s RocksDBSpec) IsEncrypted() bool

IsEncrypted returns true when an encryption key secret name is provided, false otherwise.

func (RocksDBSpec) ResetImmutableFields

func (s RocksDBSpec) ResetImmutableFields(fieldPrefix string, target *RocksDBSpec) []string

ResetImmutableFields replaces all immutable fields in the given target with values from the source spec. It returns a list of fields that have been reset. Field names are relative to given field prefix.

func (*RocksDBSpec) SetDefaults

func (s *RocksDBSpec) SetDefaults()

SetDefaults fills in missing defaults

func (*RocksDBSpec) SetDefaultsFrom

func (s *RocksDBSpec) SetDefaultsFrom(source RocksDBSpec)

SetDefaultsFrom fills unspecified fields with a value from given source spec.

func (RocksDBSpec) Validate

func (s RocksDBSpec) Validate() error

Validate the given spec

type SecretHashes

type SecretHashes struct {
	// AuthJWT contains the hash of the auth.jwtSecretName secret
	AuthJWT string `json:"auth-jwt,omitempty"`
	// RocksDBEncryptionKey contains the hash of the rocksdb.encryption.keySecretName secret
	RocksDBEncryptionKey string `json:"rocksdb-encryption-key,omitempty"`
	// TLSCA contains the hash of the tls.caSecretName secret
	TLSCA string `json:"tls-ca,omitempty"`
	// SyncTLSCA contains the hash of the sync.tls.caSecretName secret
	SyncTLSCA string `json:"sync-tls-ca,omitempty"`
	// User's map contains hashes for each user
	Users map[string]string `json:"users,omitempty"`
}

SecretHashes keeps track of the value of secrets so we can detect changes. For each used secret, a sha256 hash is stored.

func NewEmptySecretHashes

func NewEmptySecretHashes() *SecretHashes

NewEmptySecretHashes creates new empty structure

func (*SecretHashes) DeepCopy

func (in *SecretHashes) DeepCopy() *SecretHashes

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecretHashes.

func (*SecretHashes) DeepCopyInto

func (in *SecretHashes) DeepCopyInto(out *SecretHashes)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SecretHashes) Equal

func (sh *SecretHashes) Equal(other *SecretHashes) bool

Equal compares two SecretHashes

type ServerGroup

type ServerGroup int

func ServerGroupFromAbbreviatedRole

func ServerGroupFromAbbreviatedRole(label string) ServerGroup

ServerGroupFromAbbreviatedRole returns ServerGroup from abbreviated role

func ServerGroupFromRole

func ServerGroupFromRole(label string) ServerGroup

ServerGroupFromRole returns ServerGroup from role

func (ServerGroup) AsRole

func (g ServerGroup) AsRole() string

AsRole returns the "role" value for the given group.

func (ServerGroup) AsRoleAbbreviated

func (g ServerGroup) AsRoleAbbreviated() string

AsRoleAbbreviated returns the abbreviation of the "role" value for the given group.

func (ServerGroup) DefaultTerminationGracePeriod

func (g ServerGroup) DefaultTerminationGracePeriod() time.Duration

DefaultTerminationGracePeriod returns the default period between SIGTERM & SIGKILL for a server in the given group.

func (ServerGroup) Enabled

func (g ServerGroup) Enabled(mode DeploymentMode) bool

Enabled checks if group is enabled for a mode

func (ServerGroup) IsArangod

func (g ServerGroup) IsArangod() bool

IsArangod returns true when the groups runs servers of type `arangod`.

func (ServerGroup) IsArangosync

func (g ServerGroup) IsArangosync() bool

IsArangosync returns true when the groups runs servers of type `arangosync`.

func (ServerGroup) IsExportMetrics

func (g ServerGroup) IsExportMetrics() bool

IsExportMetrics return true when the group can be used with the arangodbexporter

func (ServerGroup) IsGateway

func (g ServerGroup) IsGateway() bool

IsGateway returns true when the group is a gateway group

func (ServerGroup) IsStateless

func (g ServerGroup) IsStateless() bool

IsStateless returns true when the groups runs servers without a persistent volume.

func (ServerGroup) MarshalJSON

func (g ServerGroup) MarshalJSON() ([]byte, error)

func (*ServerGroup) OpenAPISchemaType

func (g *ServerGroup) OpenAPISchemaType() []string

func (ServerGroup) Type

func (g ServerGroup) Type() ServerGroupType

Type returns the Group Type

func (*ServerGroup) UnmarshalJSON

func (g *ServerGroup) UnmarshalJSON(bytes []byte) error

type ServerGroupEnvVar

type ServerGroupEnvVar struct {
	Name  string `json:"name" protobuf:"bytes,1,opt,name=name"`
	Value string `json:"value,omitempty"`
}

func (*ServerGroupEnvVar) DeepCopy

func (in *ServerGroupEnvVar) DeepCopy() *ServerGroupEnvVar

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupEnvVar.

func (*ServerGroupEnvVar) DeepCopyInto

func (in *ServerGroupEnvVar) DeepCopyInto(out *ServerGroupEnvVar)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServerGroupEnvVars

type ServerGroupEnvVars []ServerGroupEnvVar

func (ServerGroupEnvVars) DeepCopy

func (in ServerGroupEnvVars) DeepCopy() ServerGroupEnvVars

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupEnvVars.

func (ServerGroupEnvVars) DeepCopyInto

func (in ServerGroupEnvVars) DeepCopyInto(out *ServerGroupEnvVars)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServerGroupIndexMethod

type ServerGroupIndexMethod string
const (
	DefaultServerGroupIndexMethod                        = ServerGroupIndexMethodRandom
	ServerGroupIndexMethodRandom  ServerGroupIndexMethod = "random"
	ServerGroupIndexMethodOrdered ServerGroupIndexMethod = "ordered"
)

func (*ServerGroupIndexMethod) Equal

func (*ServerGroupIndexMethod) Get

func (ServerGroupIndexMethod) New

func (*ServerGroupIndexMethod) Validate

func (s *ServerGroupIndexMethod) Validate() error

type ServerGroupInitContainerMode

type ServerGroupInitContainerMode string
const (
	// ServerGroupInitContainerIgnoreMode ignores init container changes in pod recreation flow
	ServerGroupInitContainerIgnoreMode ServerGroupInitContainerMode = "ignore"
	// ServerGroupInitContainerUpdateMode enforce update of pod if init container has been changed
	ServerGroupInitContainerUpdateMode ServerGroupInitContainerMode = "update"
)

func (*ServerGroupInitContainerMode) Get

func (ServerGroupInitContainerMode) New

func (*ServerGroupInitContainerMode) Validate

func (s *ServerGroupInitContainerMode) Validate() error

type ServerGroupInitContainers

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.29/#container-v1-core
	Containers []core.Container `json:"containers,omitempty"`

	// Mode keep container replace mode
	Mode *ServerGroupInitContainerMode `json:"mode,omitempty"`
}

func (*ServerGroupInitContainers) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupInitContainers.

func (*ServerGroupInitContainers) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServerGroupInitContainers) GetContainers

func (s *ServerGroupInitContainers) GetContainers() []core.Container

func (*ServerGroupInitContainers) GetMode

func (*ServerGroupInitContainers) Validate

func (s *ServerGroupInitContainers) Validate() error

type ServerGroupNetworkMode

type ServerGroupNetworkMode string

ServerGroupNetworkMode is used to define Network mode of the Pod

const (
	// ServerGroupNetworkModePod enable Pod level isolation of the network, default
	ServerGroupNetworkModePod ServerGroupNetworkMode = "pod"

	// ServerGroupNetworkModeHost enable Host level network access to the Pod
	ServerGroupNetworkModeHost ServerGroupNetworkMode = "host"

	DefaultServerGroupNetworkMode = ServerGroupNetworkModePod
)

func (*ServerGroupNetworkMode) Get

func (*ServerGroupNetworkMode) New

func (*ServerGroupNetworkMode) String

func (n *ServerGroupNetworkMode) String() string

func (*ServerGroupNetworkMode) Validate

func (n *ServerGroupNetworkMode) Validate() error

type ServerGroupPIDMode

type ServerGroupPIDMode string

ServerGroupPIDMode define Pod PID share strategy

const (
	// ServerGroupPIDModeIsolated enable isolation of the Processes within Pod Container, default
	ServerGroupPIDModeIsolated ServerGroupPIDMode = "isolated"
	// ServerGroupPIDModePod enable isolation of the Processes on the Pod level. Processes started in this mode will have PID different from 1
	ServerGroupPIDModePod ServerGroupPIDMode = "pod"
	// ServerGroupPIDModeHost disable isolation of the Processes. Processes started in this mode are shared with the entire host
	ServerGroupPIDModeHost ServerGroupPIDMode = "host"

	DefaultServerGroupPIDMode = ServerGroupPIDModeIsolated
)

func (*ServerGroupPIDMode) Get

func (*ServerGroupPIDMode) New

func (*ServerGroupPIDMode) String

func (n *ServerGroupPIDMode) String() string

func (*ServerGroupPIDMode) Validate

func (n *ServerGroupPIDMode) Validate() error

type ServerGroupPortProtocol

type ServerGroupPortProtocol string

ServerGroupPortProtocol define supported protocols of listeners

const (
	// ServerGroupPortProtocolHTTP defines HTTP protocol
	ServerGroupPortProtocolHTTP ServerGroupPortProtocol = "http"
	// ServerGroupPortProtocolHTTPS defines HTTPS protocol
	ServerGroupPortProtocolHTTPS ServerGroupPortProtocol = "https"
	// ServerGroupPortProtocolDefault defines default (HTTP) protocol
	ServerGroupPortProtocolDefault = ServerGroupPortProtocolHTTP
)

func (*ServerGroupPortProtocol) Get

Get returns current protocol. If is nil then default is returned

func (ServerGroupPortProtocol) New

New returns pointer to copy of protocol value

func (*ServerGroupPortProtocol) Validate

func (s *ServerGroupPortProtocol) Validate() error

Validate validates if protocol is known and have valid value

type ServerGroupProbeSpec

type ServerGroupProbeSpec struct {
	// InitialDelaySeconds specifies number of seconds after the container has started before liveness or readiness probes are initiated.
	// Minimum value is 0.
	// +doc/default: 2
	InitialDelaySeconds *int32 `json:"initialDelaySeconds,omitempty"`
	// PeriodSeconds How often (in seconds) to perform the probe.
	// Minimum value is 1.
	// +doc/default: 10
	PeriodSeconds *int32 `json:"periodSeconds,omitempty"`
	// TimeoutSeconds specifies number of seconds after which the probe times out
	// Minimum value is 1.
	// +doc/default: 2
	TimeoutSeconds *int32 `json:"timeoutSeconds,omitempty"`
	// SuccessThreshold Minimum consecutive successes for the probe to be considered successful after having failed.
	// Minimum value is 1.
	// +doc/default: 1
	SuccessThreshold *int32 `json:"successThreshold,omitempty"`
	// FailureThreshold when a Pod starts and the probe fails, Kubernetes will try failureThreshold times before giving up.
	// Giving up means restarting the container.
	// Minimum value is 1.
	// +doc/default: 3
	FailureThreshold *int32 `json:"failureThreshold,omitempty"`
}

ServerGroupProbeSpec

func (*ServerGroupProbeSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupProbeSpec.

func (*ServerGroupProbeSpec) DeepCopyInto

func (in *ServerGroupProbeSpec) DeepCopyInto(out *ServerGroupProbeSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServerGroupProbeSpec) GetFailureThreshold

func (s *ServerGroupProbeSpec) GetFailureThreshold(d int32) int32

GetFailureThreshold return FailureThreshold valid value. In case if FailureThreshold is nil default is returned.

func (*ServerGroupProbeSpec) GetInitialDelaySeconds

func (s *ServerGroupProbeSpec) GetInitialDelaySeconds(d int32) int32

GetInitialDelaySeconds return InitialDelaySeconds valid value. In case if InitialDelaySeconds is nil default is returned.

func (*ServerGroupProbeSpec) GetPeriodSeconds

func (s *ServerGroupProbeSpec) GetPeriodSeconds(d int32) int32

GetPeriodSeconds return PeriodSeconds valid value. In case if PeriodSeconds is nil default is returned.

func (*ServerGroupProbeSpec) GetSuccessThreshold

func (s *ServerGroupProbeSpec) GetSuccessThreshold(d int32) int32

GetSuccessThreshold return SuccessThreshold valid value. In case if SuccessThreshold is nil default is returned.

func (*ServerGroupProbeSpec) GetTimeoutSeconds

func (s *ServerGroupProbeSpec) GetTimeoutSeconds(d int32) int32

GetTimeoutSeconds return TimeoutSeconds valid value. In case if TimeoutSeconds is nil default is returned.

type ServerGroupProbesSpec

type ServerGroupProbesSpec struct {
	// LivenessProbeDisabled if set to true, the operator does not generate a liveness probe for new pods belonging to this group
	// +doc/default: false
	LivenessProbeDisabled *bool `json:"livenessProbeDisabled,omitempty"`
	// LivenessProbeSpec override liveness probe configuration
	LivenessProbeSpec *ServerGroupProbeSpec `json:"livenessProbeSpec,omitempty"`

	// OldReadinessProbeDisabled if true readinessProbes are disabled
	//
	// Deprecated: This field is deprecated, kept only for backward compatibility.
	OldReadinessProbeDisabled *bool `json:"ReadinessProbeDisabled,omitempty"`
	// ReadinessProbeDisabled override flag for probe disabled in good manner (lowercase) with backward compatibility
	ReadinessProbeDisabled *bool `json:"readinessProbeDisabled,omitempty"`
	// ReadinessProbeSpec override readiness probe configuration
	ReadinessProbeSpec *ServerGroupProbeSpec `json:"readinessProbeSpec,omitempty"`

	// StartupProbeDisabled if true startupProbes are disabled
	StartupProbeDisabled *bool `json:"startupProbeDisabled,omitempty"`
	// StartupProbeSpec override startup probe configuration
	StartupProbeSpec *ServerGroupProbeSpec `json:"startupProbeSpec,omitempty"`
}

ServerGroupProbesSpec contains specification for probes for pods of the server group

func (*ServerGroupProbesSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupProbesSpec.

func (*ServerGroupProbesSpec) DeepCopyInto

func (in *ServerGroupProbesSpec) DeepCopyInto(out *ServerGroupProbesSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ServerGroupProbesSpec) GetReadinessProbeDisabled

func (s ServerGroupProbesSpec) GetReadinessProbeDisabled() *bool

GetReadinessProbeDisabled returns in proper manner readiness probe flag with backward compatibility.

type ServerGroupShutdownMethod

type ServerGroupShutdownMethod string

ServerGroupShutdownMethod enum of possible shutdown methods

const (
	// ServerGroupShutdownMethodAPI API Shutdown method
	ServerGroupShutdownMethodAPI ServerGroupShutdownMethod = "api"
	// ServerGroupShutdownMethodDelete Pod Delete shutdown method
	ServerGroupShutdownMethodDelete ServerGroupShutdownMethod = "delete"
)

func (*ServerGroupShutdownMethod) Default

Default return default value for ServerGroupShutdownMethod

func (*ServerGroupShutdownMethod) Get

Get return current or default value of ServerGroupShutdownMethod

type ServerGroupSpec

type ServerGroupSpec struct {

	// Count setting specifies the number of servers to start for the given group.
	// For the Agent group, this value must be a positive, odd number.
	// The default value is `3` for all groups except `single` (there the default is `1`
	// for `spec.mode: Single` and `2` for `spec.mode: ActiveFailover`).
	// For the `syncworkers` group, it is highly recommended to use the same number
	// as for the `dbservers` group.
	Count *int `json:"count,omitempty"`
	// MinCount specifies a minimum for the count of servers. If set, a specification is invalid if `count < minCount`.
	MinCount *int `json:"minCount,omitempty"`
	// MaxCount specifies a maximum for the count of servers. If set, a specification is invalid if `count > maxCount`.
	MaxCount *int `json:"maxCount,omitempty"`
	// Args setting specifies additional command-line arguments passed to all servers of this group.
	// +doc/type: []string
	// +doc/default: []
	Args []string `json:"args,omitempty"`
	// Entrypoint overrides container executable
	Entrypoint *string `json:"entrypoint,omitempty"`
	// SchedulerName define scheduler name used for group
	SchedulerName *string `json:"schedulerName,omitempty"`
	// StorageClassName specifies the classname for storage of the servers.
	//
	// Deprecated: Use VolumeClaimTemplate instead.
	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.29/#resourcerequirements-v1-core
	Resources core.ResourceRequirements `json:"resources,omitempty"`
	// OverrideDetectedTotalMemory determines if memory should be overridden based on values in resources.
	// If is set to true and Container Memory Limits are set, it sets Container Environment Variable `ARANGODB_OVERRIDE_DETECTED_TOTAL_MEMORY` to the value from the Container Memory Limits.
	// +doc/important: Values set by this feature override user-provided `ARANGODB_OVERRIDE_DETECTED_TOTAL_MEMORY` Container Environment Variable
	// +doc/default: true
	// +doc/link: Documentation of the ArangoDB Envs|https://docs.arangodb.com/devel/components/arangodb-server/environment-variables/
	OverrideDetectedTotalMemory *bool `json:"overrideDetectedTotalMemory,omitempty"`
	// MemoryReservation determines the system reservation of memory while calculating `ARANGODB_OVERRIDE_DETECTED_TOTAL_MEMORY` value.
	// If this field is set, `ARANGODB_OVERRIDE_DETECTED_TOTAL_MEMORY` is reduced by a specified value in percent.
	// Accepted Range <0, 50>. If the value is outside the accepted range, it is adjusted to the closest value.
	// +doc/default: 0
	// +doc/link: Documentation of the ArangoDB Envs|https://docs.arangodb.com/devel/components/arangodb-server/environment-variables/
	MemoryReservation *int64 `json:"memoryReservation,omitempty"`
	// OverrideDetectedNumberOfCores determines if number of cores should be overridden based on values in resources.
	// If is set to true and Container CPU Limits are set, it sets Container Environment Variable `ARANGODB_OVERRIDE_DETECTED_NUMBER_OF_CORES` to the value from the Container CPU Limits.
	// +doc/important: Values set by this feature override user-provided `ARANGODB_OVERRIDE_DETECTED_NUMBER_OF_CORES` Container Environment Variable
	// +doc/default: true
	// +doc/link: Documentation of the ArangoDB Envs|https://docs.arangodb.com/devel/components/arangodb-server/environment-variables/
	OverrideDetectedNumberOfCores *bool `json:"overrideDetectedNumberOfCores,omitempty"`
	// Tolerations specifies the tolerations added to Pods in this group.
	// By default, suitable tolerations are set for the following keys with the `NoExecute` effect:
	// - `node.kubernetes.io/not-ready`
	// - `node.kubernetes.io/unreachable`
	// - `node.alpha.kubernetes.io/unreachable` (will be removed in future version)
	// For more information on tolerations, consult the https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
	// +doc/type: []core.Toleration
	// +doc/link: Documentation of core.Toleration|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#toleration-v1-core
	Tolerations []core.Toleration `json:"tolerations,omitempty"`
	// Annotations specified the annotations added to Pods in this group.
	// Annotations are merged with `spec.annotations`.
	Annotations map[string]string `json:"annotations,omitempty"`
	// AnnotationsIgnoreList list regexp or plain definitions which annotations should be ignored
	AnnotationsIgnoreList []string `json:"annotationsIgnoreList,omitempty"`
	// AnnotationsMode Define annotations mode which should be use while overriding annotations
	AnnotationsMode *LabelsMode `json:"annotationsMode,omitempty"`
	// Labels specified the labels added to Pods in this group.
	Labels map[string]string `json:"labels,omitempty"`
	// LabelsIgnoreList list regexp or plain definitions which labels should be ignored
	LabelsIgnoreList []string `json:"labelsIgnoreList,omitempty"`
	// LabelsMode Define labels mode which should be use while overriding labels
	LabelsMode *LabelsMode `json:"labelsMode,omitempty"`
	// Envs allow to specify additional envs in this group.
	Envs ServerGroupEnvVars `json:"envs,omitempty"`
	// ServiceAccountName setting specifies the `serviceAccountName` for the `Pods` created
	// for each server of this group. If empty, it defaults to using the
	// `default` service account.
	// Using an alternative `ServiceAccount` is typically used to separate access rights.
	// The ArangoDB deployments need some very minimal access rights. With the
	// deployment of the operator, we grant the rights to 'get' all 'pod' resources.
	// If you are using a different service account, please grant these rights
	// to that service account.
	ServiceAccountName *string `json:"serviceAccountName,omitempty"`
	// NodeSelector setting specifies a set of labels to be used as `nodeSelector` for Pods of this node.
	// +doc/type: map[string]string
	// +doc/link: Kubernetes documentation|https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`
	// Probes specifies additional behaviour for probes
	Probes *ServerGroupProbesSpec `json:"probes,omitempty"`
	// PriorityClassName specifies a priority class name
	// Will be forwarded to the pod spec.
	// +doc/link: Kubernetes documentation|https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/
	PriorityClassName string `json:"priorityClassName,omitempty"`
	// VolumeClaimTemplate specifies a volumeClaimTemplate used by operator to create to volume claims for pods of this group.
	// This setting is not available for group `coordinators`, `syncmasters` & `syncworkers`.
	// The default value describes a volume with `8Gi` storage, `ReadWriteOnce` access mode and volume mode set to `PersistentVolumeFilesystem`.
	// If this field is not set and `spec.<group>.resources.requests.storage` is set, then a default volume claim
	// with size as specified by `spec.<group>.resources.requests.storage` will be created. In that case `storage`
	// and `iops` is not forwarded to the pods resource requirements.
	// +doc/type: core.PersistentVolumeClaim
	// +doc/link: Documentation of core.PersistentVolumeClaim|https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.29/#persistentvolumeclaim-v1-core
	VolumeClaimTemplate *core.PersistentVolumeClaim `json:"volumeClaimTemplate,omitempty"`
	// VolumeResizeMode specified resize mode for PVCs and PVs
	// +doc/enum: runtime|PVC will be resized in Pod runtime (EKS, GKE)
	// +doc/enum: rotate|Pod will be shutdown and PVC will be resized (AKS)
	// +doc/default: runtime
	VolumeResizeMode *PVCResizeMode `json:"pvcResizeMode,omitempty"`
	// VolumeAllowShrink allows shrinking of the volume
	//
	// Deprecated: Not used anymore
	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.29/#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.29/#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.29/#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.29/#container-v1-core
	Sidecars []core.Container `json:"sidecars,omitempty"`
	// SecurityContext specifies additional `securityContext` settings in ArangoDB Pod definitions.
	// This is similar (but not fully compatible) to k8s SecurityContext definition.
	// +doc/link: Kubernetes documentation|https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
	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.29/#volumemount-v1-core
	VolumeMounts ServerGroupSpecVolumeMounts `json:"volumeMounts,omitempty"`
	// EphemeralVolumes keeps information about ephemeral volumes.
	EphemeralVolumes *EphemeralVolumes `json:"ephemeralVolumes,omitempty"`
	// ExtendedRotationCheck extend checks for rotation
	ExtendedRotationCheck *bool `json:"extendedRotationCheck,omitempty"`
	// InitContainers Init containers specification
	InitContainers *ServerGroupInitContainers `json:"initContainers,omitempty"`
	// ShutdownMethod describe procedure of member shutdown taken by Operator
	ShutdownMethod *ServerGroupShutdownMethod `json:"shutdownMethod,omitempty"`
	// ShutdownDelay define how long operator should delay finalizer removal after shutdown
	ShutdownDelay *int `json:"shutdownDelay,omitempty"`
	// InternalPort define port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members
	InternalPort *int `json:"internalPort,omitempty"`
	// InternalPortProtocol define protocol of port used in internal communication, can be accessed over localhost via sidecar. Only for ArangoD members
	InternalPortProtocol *ServerGroupPortProtocol `json:"internalPortProtocol,omitempty"`
	// ExternalPortEnabled if external port should be enabled. If is set to false, ports needs to be exposed via sidecar. Only for ArangoD members
	ExternalPortEnabled *bool `json:"externalPortEnabled,omitempty"`
	// AllowMemberRecreation allows to recreate member.
	// This setting changes the member recreation logic based on group:
	// - For Sync Masters, Sync Workers, Coordinator and DB-Servers it determines if a member can be recreated in case of failure (default `true`)
	// - For Agents and Single this value is hardcoded to `false` and the value provided in spec is ignored.
	AllowMemberRecreation *bool `json:"allowMemberRecreation,omitempty"`
	// TerminationGracePeriodSeconds override default TerminationGracePeriodSeconds for pods - via silent rotation
	TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"`
	// IndexMethod define group Indexing method
	// +doc/enum: random|Pick random ID for member. Enforced on the Community Operator.
	// +doc/enum: ordered|Use sequential number as Member ID, starting from 0. Enterprise Operator required.
	IndexMethod *ServerGroupIndexMethod `json:"indexMethod,omitempty"`

	// PodModes define additional modes enabled on the Pod level
	PodModes *ServerGroupSpecPodMode `json:"podModes,omitempty"`
	// Port define Port used by member
	Port *uint16 `json:"port,omitempty"`
	// ExporterPort define Port used by exporter
	ExporterPort *uint16 `json:"exporterPort,omitempty"`

	// Numactl define Numactl options passed to the process
	Numactl *ServerGroupSpecNumactl `json:"numactl,omitempty"`
	// contains filtered or unexported fields
}

ServerGroupSpec contains the specification for all servers in a specific group (e.g. all agents)

func (*ServerGroupSpec) CalculateMemoryReservation

func (s *ServerGroupSpec) CalculateMemoryReservation(memory int64) int64

func (*ServerGroupSpec) DeepCopy

func (in *ServerGroupSpec) DeepCopy() *ServerGroupSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupSpec.

func (*ServerGroupSpec) DeepCopyInto

func (in *ServerGroupSpec) DeepCopyInto(out *ServerGroupSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServerGroupSpec) Get

func (*ServerGroupSpec) GetAnnotations

func (s *ServerGroupSpec) GetAnnotations() map[string]string

GetAnnotations returns the annotations of this group

func (*ServerGroupSpec) GetArgs

func (s *ServerGroupSpec) GetArgs() []string

GetArgs returns the value of args.

func (*ServerGroupSpec) GetCount

func (s *ServerGroupSpec) GetCount() int

GetCount returns the value of count.

func (*ServerGroupSpec) GetEntrypoint

func (s *ServerGroupSpec) GetEntrypoint(defaultEntrypoint string) string

func (*ServerGroupSpec) GetExporterPort

func (s *ServerGroupSpec) GetExporterPort() uint16

func (*ServerGroupSpec) GetExternalPortEnabled

func (s *ServerGroupSpec) GetExternalPortEnabled() bool

GetExternalPortEnabled returns value of ExternalPortEnabled. If ExternalPortEnabled is nil true is returned

func (*ServerGroupSpec) GetMaxCount

func (s *ServerGroupSpec) GetMaxCount() int

GetMaxCount returns MaxCount or

func (*ServerGroupSpec) GetMemoryReservation

func (s *ServerGroupSpec) GetMemoryReservation() int64

func (*ServerGroupSpec) GetMinCount

func (s *ServerGroupSpec) GetMinCount() int

GetMinCount returns MinCount or 1 if not set

func (*ServerGroupSpec) GetNodeSelector

func (s *ServerGroupSpec) GetNodeSelector() map[string]string

GetNodeSelector returns the selectors for nodes of this group

func (*ServerGroupSpec) GetNumactl

func (s *ServerGroupSpec) GetNumactl() *ServerGroupSpecNumactl

GetNumactl returns ServerGroupSpecNumactl

func (*ServerGroupSpec) GetOverrideDetectedNumberOfCores

func (s *ServerGroupSpec) GetOverrideDetectedNumberOfCores() bool

GetOverrideDetectedNumberOfCores returns OverrideDetectedNumberOfCores with default value (false)

func (*ServerGroupSpec) GetOverrideDetectedTotalMemory

func (s *ServerGroupSpec) GetOverrideDetectedTotalMemory() bool

GetOverrideDetectedTotalMemory returns OverrideDetectedTotalMemory with default value (false)

func (*ServerGroupSpec) GetPort

func (s *ServerGroupSpec) GetPort() uint16

func (*ServerGroupSpec) GetProbesSpec

func (s *ServerGroupSpec) GetProbesSpec() ServerGroupProbesSpec

GetProbesSpec returns the Probes spec or the nil value if not set

func (*ServerGroupSpec) GetServiceAccountName

func (s *ServerGroupSpec) GetServiceAccountName() string

GetServiceAccountName returns the value of serviceAccountName.

func (*ServerGroupSpec) GetShutdownDelay

func (s *ServerGroupSpec) GetShutdownDelay(group ServerGroup) int

GetShutdownDelay returns defined or default Group ShutdownDelay in seconds

func (*ServerGroupSpec) GetSidecars

func (s *ServerGroupSpec) GetSidecars() []core.Container

GetSidecars returns a list of sidecars the use wish to add

func (*ServerGroupSpec) GetStorageClassName

func (s *ServerGroupSpec) GetStorageClassName() string

GetStorageClassName returns the value of storageClassName.

func (*ServerGroupSpec) GetTerminationGracePeriod

func (s *ServerGroupSpec) GetTerminationGracePeriod(group ServerGroup) time.Duration

GetTerminationGracePeriod returns termination grace period as Duration

func (*ServerGroupSpec) GetTolerations

func (s *ServerGroupSpec) GetTolerations() []core.Toleration

GetTolerations returns the value of tolerations.

func (*ServerGroupSpec) GetVolumeAllowShrink deprecated

func (s *ServerGroupSpec) GetVolumeAllowShrink() bool

Deprecated: GetVolumeAllowShrink returns true when it is possible to shrink the volume.

func (*ServerGroupSpec) GetVolumeClaimTemplate

func (s *ServerGroupSpec) GetVolumeClaimTemplate() *core.PersistentVolumeClaim

GetVolumeClaimTemplate returns a pointer to a volume claim template or nil if none is specified

func (*ServerGroupSpec) Group

func (s *ServerGroupSpec) Group() ServerGroup

func (*ServerGroupSpec) HasProbesSpec

func (s *ServerGroupSpec) HasProbesSpec() bool

HasProbesSpec returns true if Probes is non nil

func (*ServerGroupSpec) HasVolumeClaimTemplate

func (s *ServerGroupSpec) HasVolumeClaimTemplate() bool

HasVolumeClaimTemplate returns whether there is a volumeClaimTemplate or not

func (ServerGroupSpec) New

func (*ServerGroupSpec) ResetImmutableFields

func (s *ServerGroupSpec) ResetImmutableFields(group ServerGroup, fieldPrefix string, target *ServerGroupSpec) []string

ResetImmutableFields replaces all immutable fields in the given target with values from the source spec. It returns a list of fields that have been reset.

func (*ServerGroupSpec) SetDefaults

func (s *ServerGroupSpec) SetDefaults(group ServerGroup, used bool, mode DeploymentMode)

SetDefaults fills in missing defaults

func (*ServerGroupSpec) SetDefaultsFrom

func (s *ServerGroupSpec) SetDefaultsFrom(source ServerGroupSpec)

SetDefaultsFrom fills unspecified fields with a value from given source spec.

func (*ServerGroupSpec) Validate

func (s *ServerGroupSpec) Validate(group ServerGroup, used bool, mode DeploymentMode, env Environment) error

Validate the given group spec

func (*ServerGroupSpec) WithDefaults

func (s *ServerGroupSpec) WithDefaults(group ServerGroup, used bool, mode DeploymentMode) *ServerGroupSpec

WithDefaults copy deployment with missing defaults

func (*ServerGroupSpec) WithGroup

func (s *ServerGroupSpec) WithGroup(group ServerGroup) ServerGroupSpec

WithGroup copy deployment with missing group

type ServerGroupSpecNumactl

type ServerGroupSpecNumactl struct {
	// Enabled define if numactl should be enabled
	// +doc/default: false
	Enabled *bool `json:"enabled,omitempty"`

	// Path define numactl path within the container
	// +doc/default: /usr/bin/numactl
	Path *string `json:"path,omitempty"`

	// Args define list of the numactl process
	// +doc/default: []
	Args []string `json:"args,omitempty"`
}

func (*ServerGroupSpecNumactl) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupSpecNumactl.

func (*ServerGroupSpecNumactl) DeepCopyInto

func (in *ServerGroupSpecNumactl) DeepCopyInto(out *ServerGroupSpecNumactl)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServerGroupSpecNumactl) GetArgs

func (s *ServerGroupSpecNumactl) GetArgs() []string

GetArgs returns args of the numactl command

func (*ServerGroupSpecNumactl) GetPath

func (s *ServerGroupSpecNumactl) GetPath() string

GetPath returns path of the numactl binary

func (*ServerGroupSpecNumactl) IsEnabled

func (s *ServerGroupSpecNumactl) IsEnabled() bool

IsEnabled returns flag if Numactl should be enabled

type ServerGroupSpecPodMode

type ServerGroupSpecPodMode struct {
	Network *ServerGroupNetworkMode `json:"network,omitempty"`
	PID     *ServerGroupPIDMode     `json:"pid,omitempty"`
}

func (*ServerGroupSpecPodMode) Apply

func (s *ServerGroupSpecPodMode) Apply(p *core.PodSpec)

func (*ServerGroupSpecPodMode) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupSpecPodMode.

func (*ServerGroupSpecPodMode) DeepCopyInto

func (in *ServerGroupSpecPodMode) DeepCopyInto(out *ServerGroupSpecPodMode)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServerGroupSpecPodMode) GetNetwork

func (*ServerGroupSpecPodMode) GetPID

func (*ServerGroupSpecPodMode) Validate

func (s *ServerGroupSpecPodMode) Validate() error

type ServerGroupSpecSecurityContext

type ServerGroupSpecSecurityContext struct {
	// 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.
	DropAllCapabilities *bool `json:"dropAllCapabilities,omitempty"`
	// AddCapabilities add new capabilities to containers
	// +doc/type: []core.Capability
	AddCapabilities []core.Capability `json:"addCapabilities,omitempty"`

	// AllowPrivilegeEscalation Controls whether a process can gain more privileges than its parent process.
	AllowPrivilegeEscalation *bool `json:"allowPrivilegeEscalation,omitempty"`
	// Privileged If true, runs container in privileged mode. Processes in privileged containers are
	// essentially equivalent to root on the host.
	Privileged *bool `json:"privileged,omitempty"`
	// ReadOnlyRootFilesystem if true, mounts the container's root filesystem as read-only.
	ReadOnlyRootFilesystem *bool `json:"readOnlyRootFilesystem,omitempty"`
	// RunAsNonRoot if true, indicates that the container must run as a non-root user.
	RunAsNonRoot *bool `json:"runAsNonRoot,omitempty"`
	// RunAsUser is the UID to run the entrypoint of the container process.
	RunAsUser *int64 `json:"runAsUser,omitempty"`
	// RunAsGroup is the GID to run the entrypoint of the container process.
	RunAsGroup *int64 `json:"runAsGroup,omitempty"`

	// SupplementalGroups is a list of groups applied to the first process run in each container, in addition to the container's primary GID,
	// the fsGroup (if specified), and group memberships defined in the container image for the uid of the container process.
	SupplementalGroups []int64 `json:"supplementalGroups,omitempty"`
	// FSGroup is a special supplemental group that applies to all containers in a pod.
	FSGroup *int64 `json:"fsGroup,omitempty"`

	// Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported
	// sysctls (by the container runtime) might fail to launch.
	// Map Value can be String or Int
	// +doc/example: sysctls:
	// +doc/example:   "kernel.shm_rmid_forced": "0"
	// +doc/example:   "net.core.somaxconn": 1024
	// +doc/example:   "kernel.msgmax": "65536"
	// +doc/type: map[string]intstr.IntOrString
	// +doc/link: Documentation|https://kubernetes.io/docs/tasks/administer-cluster/sysctl-cluster/
	Sysctls map[string]intstr.IntOrString `json:"sysctls,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.29/#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.29/#selinuxoptions-v1-core
	SELinuxOptions *core.SELinuxOptions `json:"seLinuxOptions,omitempty" protobuf:"bytes,3,opt,name=seLinuxOptions"`
}

ServerGroupSpecSecurityContext contains specification for pod security context

func (*ServerGroupSpecSecurityContext) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupSpecSecurityContext.

func (*ServerGroupSpecSecurityContext) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServerGroupSpecSecurityContext) GetAddCapabilities

func (s *ServerGroupSpecSecurityContext) GetAddCapabilities() []core.Capability

GetAddCapabilities add capabilities to pod context

func (*ServerGroupSpecSecurityContext) GetDropAllCapabilities deprecated

func (s *ServerGroupSpecSecurityContext) GetDropAllCapabilities() bool

GetDropAllCapabilities returns flag if capabilities should be dropped

Deprecated: This function is added for backward compatibility. Will be removed in 1.1.0.

func (*ServerGroupSpecSecurityContext) NewPodSecurityContext

func (s *ServerGroupSpecSecurityContext) NewPodSecurityContext(secured bool) *core.PodSecurityContext

NewPodSecurityContext creates new pod security context

func (*ServerGroupSpecSecurityContext) NewSecurityContext

func (s *ServerGroupSpecSecurityContext) NewSecurityContext(secured ...bool) *core.SecurityContext

NewSecurityContext creates new security context

type ServerGroupSpecVolume

type ServerGroupSpecVolume struct {
	// Name of volume
	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.29/#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.29/#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.29/#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.29/#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.29/#persistentvolumeclaimvolumesource-v1-core
	PersistentVolumeClaim *ServerGroupSpecVolumePersistentVolumeClaim `json:"persistentVolumeClaim,omitempty"`
}

ServerGroupSpecVolume definition of volume which need to be mounted to Pod

func (*ServerGroupSpecVolume) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupSpecVolume.

func (*ServerGroupSpecVolume) DeepCopyInto

func (in *ServerGroupSpecVolume) DeepCopyInto(out *ServerGroupSpecVolume)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ServerGroupSpecVolume) RenderVolume

func (s ServerGroupSpecVolume) RenderVolume(depl meta.Object, group ServerGroup, member MemberStatus) core.Volume

RenderVolume create Pod Volume object with dynamic names

func (*ServerGroupSpecVolume) Validate

func (s *ServerGroupSpecVolume) Validate() error

Validate if ServerGroupSpec volume is valid

func (ServerGroupSpecVolume) Volume

func (s ServerGroupSpecVolume) Volume() core.Volume

Volume create Pod Volume object

type ServerGroupSpecVolumeConfigMap

type ServerGroupSpecVolumeConfigMap core.ConfigMapVolumeSource

func (*ServerGroupSpecVolumeConfigMap) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupSpecVolumeConfigMap.

func (*ServerGroupSpecVolumeConfigMap) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServerGroupSpecVolumeConfigMap) Validate

func (s *ServerGroupSpecVolumeConfigMap) Validate() error

type ServerGroupSpecVolumeEmptyDir

type ServerGroupSpecVolumeEmptyDir core.EmptyDirVolumeSource

func (*ServerGroupSpecVolumeEmptyDir) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupSpecVolumeEmptyDir.

func (*ServerGroupSpecVolumeEmptyDir) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServerGroupSpecVolumeEmptyDir) Validate

func (s *ServerGroupSpecVolumeEmptyDir) Validate() error

type ServerGroupSpecVolumeHostPath

type ServerGroupSpecVolumeHostPath core.HostPathVolumeSource

func (*ServerGroupSpecVolumeHostPath) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupSpecVolumeHostPath.

func (*ServerGroupSpecVolumeHostPath) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServerGroupSpecVolumeHostPath) Validate

func (s *ServerGroupSpecVolumeHostPath) Validate() error

type ServerGroupSpecVolumeMount

type ServerGroupSpecVolumeMount struct {
	// This must match the Name of a Volume.
	Name string `json:"name" protobuf:"bytes,1,opt,name=name"`

	// Mounted read-only if true, read-write otherwise (false or unspecified).
	// Defaults to false.
	ReadOnly bool `json:"readOnly,omitempty" protobuf:"varint,2,opt,name=readOnly"`

	// Path within the container at which the volume should be mounted.  Must
	// not contain ':'.
	MountPath string `json:"mountPath" protobuf:"bytes,3,opt,name=mountPath"`

	// Path within the volume from which the container's volume should be mounted.
	// Defaults to "" (volume's root).
	SubPath string `json:"subPath,omitempty" protobuf:"bytes,4,opt,name=subPath"`

	// mountPropagation determines how mounts are propagated from the host
	// to container and the other way around.
	// When not set, MountPropagationNone is used.
	// This field is beta in 1.10.
	// When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified
	// (which defaults to None).
	MountPropagation *core.MountPropagationMode `json:"mountPropagation,omitempty" protobuf:"bytes,5,opt,name=mountPropagation,casttype=MountPropagationMode"`

	// Expanded path within the volume from which the container's volume should be mounted.
	// Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.
	// Defaults to "" (volume's root).
	// SubPathExpr and SubPath are mutually exclusive.
	SubPathExpr string `json:"subPathExpr,omitempty" protobuf:"bytes,6,opt,name=subPathExpr"`
}

func (*ServerGroupSpecVolumeMount) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupSpecVolumeMount.

func (*ServerGroupSpecVolumeMount) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServerGroupSpecVolumeMount) Validate

func (s *ServerGroupSpecVolumeMount) Validate() error

func (ServerGroupSpecVolumeMount) VolumeMount

type ServerGroupSpecVolumeMounts

type ServerGroupSpecVolumeMounts []ServerGroupSpecVolumeMount

func (ServerGroupSpecVolumeMounts) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupSpecVolumeMounts.

func (ServerGroupSpecVolumeMounts) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ServerGroupSpecVolumeMounts) Validate

func (s ServerGroupSpecVolumeMounts) Validate() error

func (ServerGroupSpecVolumeMounts) VolumeMounts

func (s ServerGroupSpecVolumeMounts) VolumeMounts() []core.VolumeMount

type ServerGroupSpecVolumePersistentVolumeClaim

type ServerGroupSpecVolumePersistentVolumeClaim core.PersistentVolumeClaimVolumeSource

func (*ServerGroupSpecVolumePersistentVolumeClaim) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupSpecVolumePersistentVolumeClaim.

func (*ServerGroupSpecVolumePersistentVolumeClaim) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServerGroupSpecVolumePersistentVolumeClaim) Validate

type ServerGroupSpecVolumeSecret

type ServerGroupSpecVolumeSecret core.SecretVolumeSource

func (*ServerGroupSpecVolumeSecret) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupSpecVolumeSecret.

func (*ServerGroupSpecVolumeSecret) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServerGroupSpecVolumeSecret) Validate

func (s *ServerGroupSpecVolumeSecret) Validate() error

type ServerGroupSpecVolumes

type ServerGroupSpecVolumes []ServerGroupSpecVolume

ServerGroupSpecVolumes definition of volume list which need to be mounted to Pod

func (ServerGroupSpecVolumes) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupSpecVolumes.

func (ServerGroupSpecVolumes) DeepCopyInto

func (in ServerGroupSpecVolumes) DeepCopyInto(out *ServerGroupSpecVolumes)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (ServerGroupSpecVolumes) RenderVolumes

func (s ServerGroupSpecVolumes) RenderVolumes(depl meta.Object, group ServerGroup, member MemberStatus) []core.Volume

RenderVolumes render volumes

func (ServerGroupSpecVolumes) Validate

func (s ServerGroupSpecVolumes) Validate() error

Validate if ServerGroupSpec volumes are valid and does not collide

func (ServerGroupSpecVolumes) Volumes

func (s ServerGroupSpecVolumes) Volumes() []core.Volume

Volumes create volumes

type ServerGroupStatus

type ServerGroupStatus struct {
	Index *int `json:"index,omitempty"`
}

func (*ServerGroupStatus) DeepCopy

func (in *ServerGroupStatus) DeepCopy() *ServerGroupStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroupStatus.

func (*ServerGroupStatus) DeepCopyInto

func (in *ServerGroupStatus) DeepCopyInto(out *ServerGroupStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServerGroupStatus) Equal

type ServerGroupType

type ServerGroupType int
const (
	ServerGroupTypeUnknown ServerGroupType = iota
	ServerGroupTypeArangoD
	ServerGroupTypeArangoSync
	ServerGroupTypeID
	ServerGroupTypeGateway
)

type ServerGroups

type ServerGroups []ServerGroup

func (ServerGroups) Contains

func (s ServerGroups) Contains(group ServerGroup) bool

func (ServerGroups) DeepCopy

func (in ServerGroups) DeepCopy() ServerGroups

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerGroups.

func (ServerGroups) DeepCopyInto

func (in ServerGroups) DeepCopyInto(out *ServerGroups)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ServerIDGroupSpec

type ServerIDGroupSpec struct {
	// Entrypoint overrides container executable
	Entrypoint *string `json:"entrypoint,omitempty"`
	// Args setting specifies additional command-line arguments passed to all servers of this group.
	// +doc/type: []string
	// +doc/default: []
	Args []string `json:"args,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.29/#toleration-v1-core
	Tolerations []core.Toleration `json:"tolerations,omitempty"`
	// NodeSelector specifies 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.29/#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.29/#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.29/#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.29/#resourcerequirements-v1-core
	Resources *core.ResourceRequirements `json:"resources,omitempty"`
}

ServerIDGroupSpec contains the specification for Image Discovery image.

func (*ServerIDGroupSpec) DeepCopy

func (in *ServerIDGroupSpec) DeepCopy() *ServerIDGroupSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerIDGroupSpec.

func (*ServerIDGroupSpec) DeepCopyInto

func (in *ServerIDGroupSpec) DeepCopyInto(out *ServerIDGroupSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ServerIDGroupSpec) Get

func (*ServerIDGroupSpec) GetEntrypoint

func (s *ServerIDGroupSpec) GetEntrypoint(defaultEntrypoint string) string

func (*ServerIDGroupSpec) GetResources

func (s *ServerIDGroupSpec) GetResources() core.ResourceRequirements

func (*ServerIDGroupSpec) GetServiceAccountName

func (s *ServerIDGroupSpec) GetServiceAccountName() string

type StorageEngine

type StorageEngine string

StorageEngine specifies the type of storage engine used by the cluster

const (
	// StorageEngineMMFiles yields a cluster using the mmfiles storage engine
	// Deprecated
	StorageEngineMMFiles StorageEngine = "MMFiles"
	// StorageEngineRocksDB yields a cluster using the rocksdb storage engine
	StorageEngineRocksDB StorageEngine = "RocksDB"
)

func NewStorageEngine

func NewStorageEngine(input StorageEngine) *StorageEngine

NewStorageEngine returns a reference to a string with given value.

func NewStorageEngineOrNil

func NewStorageEngineOrNil(input *StorageEngine) *StorageEngine

NewStorageEngineOrNil returns nil if input is nil, otherwise returns a clone of the given value.

func StorageEngineOrDefault

func StorageEngineOrDefault(input *StorageEngine, defaultValue ...StorageEngine) StorageEngine

StorageEngineOrDefault returns the default value (or empty string) if input is nil, otherwise returns the referenced value.

func (StorageEngine) AsArangoArgument

func (se StorageEngine) AsArangoArgument() string

AsArangoArgument returns the value for the given storage engine as it is to be used for arangod's --server.storage-engine option.

func (StorageEngine) Validate

func (se StorageEngine) Validate() error

Validate the storage engine. Return errors when validation fails, nil on success.

type SyncAuthenticationSpec

type SyncAuthenticationSpec struct {
	// JWTSecretName setting specifies the name of a kubernetes `Secret` that contains
	// the JWT token used for accessing all ArangoSync master servers.
	// When not specified, the `spec.auth.jwtSecretName` value is used.
	// If you specify a name of a `Secret` that does not exist, a random token is created
	// and stored in a `Secret` with given name.
	JWTSecretName *string `json:"jwtSecretName,omitempty"`
	// ClientCASecretName setting specifies the name of a kubernetes `Secret` that contains
	// a PEM encoded CA certificate used for client certificate verification
	// in all ArangoSync master servers.
	// This is a required setting when `spec.sync.enabled` is `true`.
	ClientCASecretName *string `json:"clientCASecretName,omitempty"`
}

SyncAuthenticationSpec holds dc2dc sync authentication specific configuration settings

func (*SyncAuthenticationSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncAuthenticationSpec.

func (*SyncAuthenticationSpec) DeepCopyInto

func (in *SyncAuthenticationSpec) DeepCopyInto(out *SyncAuthenticationSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (SyncAuthenticationSpec) GetClientCASecretName

func (s SyncAuthenticationSpec) GetClientCASecretName() string

GetClientCASecretName returns the value of clientCASecretName.

func (SyncAuthenticationSpec) GetJWTSecretName

func (s SyncAuthenticationSpec) GetJWTSecretName() string

GetJWTSecretName returns the value of jwtSecretName.

func (SyncAuthenticationSpec) ResetImmutableFields

func (s SyncAuthenticationSpec) ResetImmutableFields(fieldPrefix string, target *SyncAuthenticationSpec) []string

ResetImmutableFields replaces all immutable fields in the given target with values from the source spec. It returns a list of fields that have been reset. Field names are relative to given field prefix.

func (*SyncAuthenticationSpec) SetDefaults

func (s *SyncAuthenticationSpec) SetDefaults(defaultJWTSecretName, defaultClientCASecretName string)

SetDefaults fills in missing defaults

func (*SyncAuthenticationSpec) SetDefaultsFrom

func (s *SyncAuthenticationSpec) SetDefaultsFrom(source SyncAuthenticationSpec)

SetDefaultsFrom fills unspecified fields with a value from given source spec.

func (SyncAuthenticationSpec) Validate

func (s SyncAuthenticationSpec) Validate() error

Validate the given spec

type SyncExternalAccessSpec

type SyncExternalAccessSpec struct {
	ExternalAccessSpec
	// MasterEndpoint setting specifies the master endpoint(s) advertised by the ArangoSync SyncMasters.
	// If not set, this setting defaults to:
	// - If `spec.sync.externalAccess.loadBalancerIP` is set, it defaults to `https://<load-balancer-ip>:<8629>`.
	// - Otherwise it defaults to `https://<sync-service-dns-name>:<8629>`.
	// +doc/type: []string
	MasterEndpoint []string `json:"masterEndpoint,omitempty"`
	// AccessPackageSecretNames setting specifies the names of zero of more `Secrets` that will be created by the deployment
	// operator containing "access packages". An access package contains those `Secrets` that are needed
	// to access the SyncMasters of this `ArangoDeployment`.
	// By removing a name from this setting, the corresponding `Secret` is also deleted.
	// Note that to remove all access packages, leave an empty array in place (`[]`).
	// Completely removing the setting results in not modifying the list.
	// +doc/type: []string
	// +doc/link: See the ArangoDeploymentReplication specification|deployment-replication-resource-reference.md
	AccessPackageSecretNames []string `json:"accessPackageSecretNames,omitempty"`
}

SyncExternalAccessSpec holds configuration for the external access provided for the sync deployment.

func (*SyncExternalAccessSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncExternalAccessSpec.

func (*SyncExternalAccessSpec) DeepCopyInto

func (in *SyncExternalAccessSpec) DeepCopyInto(out *SyncExternalAccessSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (SyncExternalAccessSpec) GetAccessPackageSecretNames

func (s SyncExternalAccessSpec) GetAccessPackageSecretNames() []string

GetAccessPackageSecretNames returns the value of accessPackageSecretNames.

func (SyncExternalAccessSpec) GetMasterEndpoint

func (s SyncExternalAccessSpec) GetMasterEndpoint() []string

GetMasterEndpoint returns the value of masterEndpoint.

func (SyncExternalAccessSpec) ResetImmutableFields

func (s SyncExternalAccessSpec) ResetImmutableFields(fieldPrefix string, target *SyncExternalAccessSpec) []string

ResetImmutableFields replaces all immutable fields in the given target with values from the source spec. It returns a list of fields that have been reset. Field names are relative to given field prefix.

func (SyncExternalAccessSpec) ResolveMasterEndpoint

func (s SyncExternalAccessSpec) ResolveMasterEndpoint(syncServiceHostName string, syncServicePort int) []string

ResolveMasterEndpoint returns the value of `--master.endpoint` option passed to arangosync.

func (*SyncExternalAccessSpec) SetDefaults

func (s *SyncExternalAccessSpec) SetDefaults()

SetDefaults fills in missing defaults

func (*SyncExternalAccessSpec) SetDefaultsFrom

func (s *SyncExternalAccessSpec) SetDefaultsFrom(source SyncExternalAccessSpec)

SetDefaultsFrom fills unspecified fields with a value from given source spec.

func (SyncExternalAccessSpec) Validate

func (s SyncExternalAccessSpec) Validate() error

Validate the given spec

type SyncSpec

type SyncSpec struct {
	// Enabled setting enables/disables support for data center 2 data center
	// replication in the cluster. When enabled, the cluster will contain
	// a number of `syncmaster` & `syncworker` servers.
	// +doc/default: false
	Enabled *bool `json:"enabled,omitempty"`

	ExternalAccess SyncExternalAccessSpec `json:"externalAccess"`
	Authentication SyncAuthenticationSpec `json:"auth"`
	TLS            TLSSpec                `json:"tls"`
	Monitoring     MonitoringSpec         `json:"monitoring"`
	Image          *string                `json:"image"`
}

SyncSpec holds dc2dc replication specific configuration settings

func (*SyncSpec) DeepCopy

func (in *SyncSpec) DeepCopy() *SyncSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SyncSpec.

func (*SyncSpec) DeepCopyInto

func (in *SyncSpec) DeepCopyInto(out *SyncSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (SyncSpec) GetSyncImage

func (s SyncSpec) GetSyncImage() string

GetSyncImage returns the syncer image or empty string

func (SyncSpec) HasSyncImage

func (s SyncSpec) HasSyncImage() bool

HasSyncImage returns whether a special sync image is set

func (SyncSpec) IsEnabled

func (s SyncSpec) IsEnabled() bool

IsEnabled returns the value of enabled.

func (SyncSpec) ResetImmutableFields

func (s SyncSpec) ResetImmutableFields(fieldPrefix string, target *SyncSpec) []string

ResetImmutableFields replaces all immutable fields in the given target with values from the source spec. It returns a list of fields that have been reset. Field names are relative to given field prefix.

func (*SyncSpec) SetDefaults

func (s *SyncSpec) SetDefaults(defaultJWTSecretName, defaultClientAuthCASecretName, defaultTLSCASecretName, defaultMonitoringSecretName string)

SetDefaults fills in missing defaults

func (*SyncSpec) SetDefaultsFrom

func (s *SyncSpec) SetDefaultsFrom(source SyncSpec)

SetDefaultsFrom fills unspecified fields with a value from given source spec.

func (SyncSpec) Validate

func (s SyncSpec) Validate(mode DeploymentMode) error

Validate the given spec

type TLSRotateMode

type TLSRotateMode string
const (
	TLSRotateModeInPlace  TLSRotateMode = "inplace"
	TLSRotateModeRecreate TLSRotateMode = "recreate"
)

func (*TLSRotateMode) Get

func (t *TLSRotateMode) Get() TLSRotateMode

func (TLSRotateMode) New

func (t TLSRotateMode) New() *TLSRotateMode

type TLSSNISpec

type TLSSNISpec struct {
	Mapping map[string][]string `json:"mapping,omitempty"`
}

TLSSNISpec holds TLS SNI additional certificates

func (*TLSSNISpec) DeepCopy

func (in *TLSSNISpec) DeepCopy() *TLSSNISpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSSNISpec.

func (*TLSSNISpec) DeepCopyInto

func (in *TLSSNISpec) DeepCopyInto(out *TLSSNISpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TLSSNISpec) SetDefaultsFrom

func (s *TLSSNISpec) SetDefaultsFrom(source *TLSSNISpec)

SetDefaultsFrom fills unspecified fields with a value from given source spec.

func (TLSSNISpec) Validate

func (s TLSSNISpec) Validate() error

type TLSSpec

type TLSSpec struct {
	// CASecretName  setting specifies the name of a kubernetes `Secret` that contains
	// a standard CA certificate + private key used to sign certificates for individual
	// ArangoDB servers.
	// When no name is specified, it defaults to `<deployment-name>-ca`.
	// To disable authentication, set this value to `None`.
	// If you specify a name of a `Secret` that does not exist, a self-signed CA certificate + key is created
	// and stored in a `Secret` with given name.
	// The specified `Secret`, must contain the following data fields:
	// - `ca.crt` PEM encoded public key of the CA certificate
	// - `ca.key` PEM encoded private key of the CA certificate
	CASecretName *string `json:"caSecretName,omitempty"`
	// AltNames setting specifies a list of alternate names that will be added to all generated
	// certificates. These names can be DNS names or email addresses.
	// The default value is empty.
	// +doc/type: []string
	AltNames []string `json:"altNames,omitempty"`
	// TTL setting specifies the time to live of all generated server certificates.
	// When the server certificate is about to expire, it will be automatically replaced
	// by a new one and the affected server will be restarted.
	// Note: The time to live of the CA certificate (when created automatically)
	// will be set to 10 years.
	// +doc/default: "2160h" (about 3 months)
	TTL  *Duration      `json:"ttl,omitempty"`
	SNI  *TLSSNISpec    `json:"sni,omitempty"`
	Mode *TLSRotateMode `json:"mode,omitempty"`
}

TLSSpec holds TLS specific configuration settings

func (*TLSSpec) DeepCopy

func (in *TLSSpec) DeepCopy() *TLSSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TLSSpec.

func (*TLSSpec) DeepCopyInto

func (in *TLSSpec) DeepCopyInto(out *TLSSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (TLSSpec) GetAltNames

func (s TLSSpec) GetAltNames() []string

GetAltNames returns the value of altNames.

func (TLSSpec) GetCASecretName

func (s TLSSpec) GetCASecretName() string

GetCASecretName returns the value of caSecretName.

func (TLSSpec) GetParsedAltNames

func (s TLSSpec) GetParsedAltNames() (dnsNames, ipAddresses, emailAddresses []string, err error)

GetParsedAltNames splits the list of AltNames into DNS names, IP addresses & email addresses. When an entry is not valid for any of those categories, an error is returned.

func (TLSSpec) GetSNI

func (a TLSSpec) GetSNI() TLSSNISpec

func (TLSSpec) GetTTL

func (s TLSSpec) GetTTL() Duration

GetTTL returns the value of ttl.

func (TLSSpec) IsSecure

func (s TLSSpec) IsSecure() bool

IsSecure returns true when a CA secret has been set, false otherwise.

func (*TLSSpec) SetDefaults

func (s *TLSSpec) SetDefaults(defaultCASecretName string)

SetDefaults fills in missing defaults

func (*TLSSpec) SetDefaultsFrom

func (s *TLSSpec) SetDefaultsFrom(source TLSSpec)

SetDefaultsFrom fills unspecified fields with a value from given source spec.

func (TLSSpec) Validate

func (s TLSSpec) Validate() error

Validate the given spec

type Timeout

type Timeout meta.Duration

func NewInfiniteTimeout

func NewInfiniteTimeout() Timeout

func NewTimeout

func NewTimeout(timeout time.Duration) Timeout

func (*Timeout) DeepCopy

func (in *Timeout) DeepCopy() *Timeout

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Timeout.

func (*Timeout) DeepCopyInto

func (in *Timeout) DeepCopyInto(out *Timeout)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Timeout) Get

func (t *Timeout) Get(d time.Duration) time.Duration

func (*Timeout) Infinite

func (t *Timeout) Infinite() bool

func (Timeout) MarshalJSON

func (t Timeout) MarshalJSON() ([]byte, error)

func (*Timeout) UnmarshalJSON

func (t *Timeout) UnmarshalJSON(b []byte) error

type Timeouts

type Timeouts struct {

	// MaintenanceGracePeriod action timeout
	MaintenanceGracePeriod *Timeout `json:"maintenanceGracePeriod,omitempty"`

	// Actions keep map of the actions timeouts.
	// +doc/type: map[string]meta.Duration
	// +doc/link: List of supported action names|../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
	AddMember *Timeout `json:"-"`

	// Deprecated
	RuntimeContainerImageUpdate *Timeout `json:"-"`
}

func (*Timeouts) DeepCopy

func (in *Timeouts) DeepCopy() *Timeouts

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Timeouts.

func (*Timeouts) DeepCopyInto

func (in *Timeouts) DeepCopyInto(out *Timeouts)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Timeouts) Get

func (t *Timeouts) Get() Timeouts

func (*Timeouts) GetMaintenanceGracePeriod

func (t *Timeouts) GetMaintenanceGracePeriod() time.Duration

type TopologyMemberStatus

type TopologyMemberStatus struct {
	ID    types.UID `json:"id"`
	Zone  int       `json:"rack"`
	Label string    `json:"label,omitempty"`
}

func (*TopologyMemberStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopologyMemberStatus.

func (*TopologyMemberStatus) DeepCopyInto

func (in *TopologyMemberStatus) DeepCopyInto(out *TopologyMemberStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type TopologySpec

type TopologySpec struct {
	Enabled bool    `json:"enabled,omitempty"`
	Zones   int     `json:"zones,omitempty"`
	Label   *string `json:"label,omitempty"`
}

func (*TopologySpec) DeepCopy

func (in *TopologySpec) DeepCopy() *TopologySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopologySpec.

func (*TopologySpec) DeepCopyInto

func (in *TopologySpec) DeepCopyInto(out *TopologySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TopologySpec) GetLabel

func (t *TopologySpec) GetLabel() string

func (*TopologySpec) GetZones

func (t *TopologySpec) GetZones() int

func (*TopologySpec) IsEnabled

func (t *TopologySpec) IsEnabled() bool

type TopologyStatus

type TopologyStatus struct {
	ID types.UID `json:"id"`

	Size int `json:"size,omitempty"`

	Zones TopologyStatusZones `json:"zones,omitempty"`

	Label string `json:"label,omitempty"`
}

func NewTopologyStatus

func NewTopologyStatus(spec *TopologySpec) *TopologyStatus

func (*TopologyStatus) DeepCopy

func (in *TopologyStatus) DeepCopy() *TopologyStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopologyStatus.

func (*TopologyStatus) DeepCopyInto

func (in *TopologyStatus) DeepCopyInto(out *TopologyStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TopologyStatus) Enabled

func (t *TopologyStatus) Enabled() bool

func (*TopologyStatus) Equal

func (t *TopologyStatus) Equal(b *TopologyStatus) bool

func (*TopologyStatus) GetID

func (t *TopologyStatus) GetID() types.UID

func (*TopologyStatus) GetLeastUsedZone

func (t *TopologyStatus) GetLeastUsedZone(group ServerGroup) int

func (*TopologyStatus) GetLeastUsedZoneWithFilter

func (t *TopologyStatus) GetLeastUsedZoneWithFilter(group ServerGroup, filters ...TopologyZoneFilter) int

func (*TopologyStatus) IsTopologyEvenlyDistributed

func (t *TopologyStatus) IsTopologyEvenlyDistributed(group ServerGroup) bool

func (*TopologyStatus) IsTopologyOwned

func (t *TopologyStatus) IsTopologyOwned(m *TopologyMemberStatus) bool

func (*TopologyStatus) RegisterTopologyLabel

func (t *TopologyStatus) RegisterTopologyLabel(zone int, label string) bool

func (*TopologyStatus) RemoveMember

func (t *TopologyStatus) RemoveMember(group ServerGroup, id string) bool

type TopologyStatusZone

type TopologyStatusZone struct {
	ID int `json:"id"`

	Labels List `json:"labels,omitempty"`

	Members TopologyStatusZoneMembers `json:"members,omitempty"`
}

func (*TopologyStatusZone) AddMember

func (t *TopologyStatusZone) AddMember(group ServerGroup, id string)

func (*TopologyStatusZone) DeepCopy

func (in *TopologyStatusZone) DeepCopy() *TopologyStatusZone

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopologyStatusZone.

func (*TopologyStatusZone) DeepCopyInto

func (in *TopologyStatusZone) DeepCopyInto(out *TopologyStatusZone)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*TopologyStatusZone) Equal

func (*TopologyStatusZone) Get

func (t *TopologyStatusZone) Get(group ServerGroup) List

func (*TopologyStatusZone) RemoveMember

func (t *TopologyStatusZone) RemoveMember(group ServerGroup, id string) bool

type TopologyStatusZoneMembers

type TopologyStatusZoneMembers map[string]List

func (TopologyStatusZoneMembers) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopologyStatusZoneMembers.

func (TopologyStatusZoneMembers) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (TopologyStatusZoneMembers) Equal

type TopologyStatusZones

type TopologyStatusZones []TopologyStatusZone

func (TopologyStatusZones) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopologyStatusZones.

func (TopologyStatusZones) DeepCopyInto

func (in TopologyStatusZones) DeepCopyInto(out *TopologyStatusZones)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (TopologyStatusZones) Equal

type TopologyZoneFilter

type TopologyZoneFilter func(g ServerGroup, id string) bool

func TopologyZoneFilterMerge

func TopologyZoneFilterMerge(functions ...TopologyZoneFilter) TopologyZoneFilter

type Version

type Version struct {
	Major int `json:"major"`
	Minor int `json:"minor"`
	Patch int `json:"patch"`
	ID    int `json:"ID,omitempty"`
}

func (Version) Compare

func (v Version) Compare(b Version) int

func (*Version) DeepCopy

func (in *Version) DeepCopy() *Version

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Version.

func (*Version) DeepCopyInto

func (in *Version) DeepCopyInto(out *Version)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Version) Equal

func (v *Version) Equal(b *Version) bool

func (Version) MarshalJSON

func (v Version) MarshalJSON() ([]byte, error)

func (*Version) UnmarshalJSON

func (v *Version) UnmarshalJSON(bytes []byte) error

Source Files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL