1
0
Fork 0
mirror of https://github.com/arangodb/kube-arangodb.git synced 2024-12-14 11:57:37 +00:00

[Feature] Deprecate Actions (#1383)

This commit is contained in:
Adam Janikowski 2023-08-18 10:51:51 +03:00 committed by GitHub
parent 90aca02ce1
commit 282a50e255
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
20 changed files with 600 additions and 473 deletions

View file

@ -4,6 +4,7 @@
- (Maintenance) Bump golang.org/x/net to v0.13.0 - (Maintenance) Bump golang.org/x/net to v0.13.0
- (Feature) PVCResize action concurrency limit - (Feature) PVCResize action concurrency limit
- (Feature) Optional Assertions - (Feature) Optional Assertions
- (Feature) Deprecate Actions
## [1.2.32](https://github.com/arangodb/kube-arangodb/tree/1.2.32) (2023-08-07) ## [1.2.32](https://github.com/arangodb/kube-arangodb/tree/1.2.32) (2023-08-07)
- (Feature) Backup lifetime - remove Backup once its lifetime has been reached - (Feature) Backup lifetime - remove Backup once its lifetime has been reached

View file

@ -18,10 +18,10 @@
| CleanTLSCACertificate | no | 30m0s | no | Enterprise Only | Remove Certificate from CA TrustStore | | CleanTLSCACertificate | no | 30m0s | no | Enterprise Only | Remove Certificate from CA TrustStore |
| CleanTLSKeyfileCertificate | no | 30m0s | no | Enterprise Only | Remove old TLS certificate from server | | CleanTLSKeyfileCertificate | no | 30m0s | no | Enterprise Only | Remove old TLS certificate from server |
| ClusterMemberCleanup | no | 10m0s | no | Community & Enterprise | Remove member from Cluster if it is gone already (Coordinators) | | ClusterMemberCleanup | no | 10m0s | no | Community & Enterprise | Remove member from Cluster if it is gone already (Coordinators) |
| DisableClusterScaling | no | 10m0s | no | Community & Enterprise | (Deprecated) Disable Cluster Scaling integration | | ~~DisableClusterScaling~~ | no | 10m0s | no | Community & Enterprise | Disable Cluster Scaling integration |
| DisableMaintenance | no | 10m0s | no | Community & Enterprise | Disable ArangoDB maintenance mode | | DisableMaintenance | no | 10m0s | no | Community & Enterprise | Disable ArangoDB maintenance mode |
| DisableMemberMaintenance | no | 10m0s | no | Enterprise Only | Disable ArangoDB DBServer maintenance mode | | DisableMemberMaintenance | no | 10m0s | no | Enterprise Only | Disable ArangoDB DBServer maintenance mode |
| EnableClusterScaling | no | 10m0s | no | Community & Enterprise | (Deprecated) Enable Cluster Scaling integration | | ~~EnableClusterScaling~~ | no | 10m0s | no | Community & Enterprise | Enable Cluster Scaling integration |
| EnableMaintenance | no | 10m0s | no | Community & Enterprise | Enable ArangoDB maintenance mode | | EnableMaintenance | no | 10m0s | no | Community & Enterprise | Enable ArangoDB maintenance mode |
| EnableMemberMaintenance | no | 10m0s | no | Enterprise Only | Enable ArangoDB DBServer maintenance mode | | EnableMemberMaintenance | no | 10m0s | no | Enterprise Only | Enable ArangoDB DBServer maintenance mode |
| EncryptionKeyAdd | no | 10m0s | no | Enterprise Only | Add the encryption key to the pool | | EncryptionKeyAdd | no | 10m0s | no | Enterprise Only | Add the encryption key to the pool |
@ -40,7 +40,7 @@
| LicenseSet | no | 10m0s | no | Community & Enterprise | Update Cluster license (3.9+) | | LicenseSet | no | 10m0s | no | Community & Enterprise | Update Cluster license (3.9+) |
| MarkToRemoveMember | no | 10m0s | no | Community & Enterprise | Marks member to be removed. Used when member Pod is annotated with replace annotation | | MarkToRemoveMember | no | 10m0s | no | Community & Enterprise | Marks member to be removed. Used when member Pod is annotated with replace annotation |
| MemberPhaseUpdate | no | 10m0s | no | Community & Enterprise | Change member phase | | MemberPhaseUpdate | no | 10m0s | no | Community & Enterprise | Change member phase |
| MemberRIDUpdate | no | 10m0s | no | Community & Enterprise | Update Run ID of member | | ~~MemberRIDUpdate~~ | no | 10m0s | no | Community & Enterprise | Update Run ID of member |
| PVCResize | no | 30m0s | no | Community & Enterprise | Start the resize procedure. Updates PVC Requests field | | PVCResize | no | 30m0s | no | Community & Enterprise | Start the resize procedure. Updates PVC Requests field |
| PVCResized | no | 15m0s | no | Community & Enterprise | Waits for PVC resize to be completed | | PVCResized | no | 15m0s | no | Community & Enterprise | Waits for PVC resize to be completed |
| PlaceHolder | no | 10m0s | no | Community & Enterprise | Empty placeholder action | | PlaceHolder | no | 10m0s | no | Community & Enterprise | Empty placeholder action |
@ -65,12 +65,12 @@
| RuntimeContainerArgsLogLevelUpdate | no | 10m0s | no | Community & Enterprise | Change ArangoDB Member log levels in runtime | | RuntimeContainerArgsLogLevelUpdate | no | 10m0s | no | Community & Enterprise | Change ArangoDB Member log levels in runtime |
| RuntimeContainerImageUpdate | no | 10m0s | no | Community & Enterprise | Update Container Image in runtime | | RuntimeContainerImageUpdate | no | 10m0s | no | Community & Enterprise | Update Container Image in runtime |
| RuntimeContainerSyncTolerations | no | 10m0s | no | Community & Enterprise | Update Pod Tolerations in runtime | | RuntimeContainerSyncTolerations | no | 10m0s | no | Community & Enterprise | Update Pod Tolerations in runtime |
| SetCondition | no | 10m0s | no | Community & Enterprise | (Deprecated) Set deployment condition | | ~~SetCondition~~ | no | 10m0s | no | Community & Enterprise | Set deployment condition |
| SetConditionV2 | no | 10m0s | no | Community & Enterprise | Set deployment condition | | SetConditionV2 | no | 10m0s | no | Community & Enterprise | Set deployment condition |
| SetCurrentImage | no | 6h0m0s | no | Community & Enterprise | Update deployment current image after image discovery | | SetCurrentImage | no | 6h0m0s | no | Community & Enterprise | Update deployment current image after image discovery |
| SetCurrentMemberArch | no | 10m0s | no | Community & Enterprise | Set current member architecture | | SetCurrentMemberArch | no | 10m0s | no | Community & Enterprise | Set current member architecture |
| SetMaintenanceCondition | no | 10m0s | no | Community & Enterprise | Update ArangoDB maintenance condition | | SetMaintenanceCondition | no | 10m0s | no | Community & Enterprise | Update ArangoDB maintenance condition |
| SetMemberCondition | no | 10m0s | no | Community & Enterprise | (Deprecated) Set member condition | | ~~SetMemberCondition~~ | no | 10m0s | no | Community & Enterprise | Set member condition |
| SetMemberConditionV2 | no | 10m0s | no | Community & Enterprise | Set member condition | | SetMemberConditionV2 | no | 10m0s | no | Community & Enterprise | Set member condition |
| SetMemberCurrentImage | no | 10m0s | no | Community & Enterprise | Update Member current image | | SetMemberCurrentImage | no | 10m0s | no | Community & Enterprise | Update Member current image |
| ShutdownMember | no | 30m0s | no | Community & Enterprise | Sends Shutdown requests and waits for container to be stopped | | ShutdownMember | no | 30m0s | no | Community & Enterprise | Sends Shutdown requests and waits for container to be stopped |

View file

@ -34,6 +34,7 @@ import (
"github.com/arangodb/kube-arangodb/internal/md" "github.com/arangodb/kube-arangodb/internal/md"
api "github.com/arangodb/kube-arangodb/pkg/apis/deployment/v1" api "github.com/arangodb/kube-arangodb/pkg/apis/deployment/v1"
"github.com/arangodb/kube-arangodb/pkg/util"
"github.com/arangodb/kube-arangodb/pkg/util/strings" "github.com/arangodb/kube-arangodb/pkg/util/strings"
) )
@ -188,6 +189,14 @@ func (i ActionsInput) Configurable() []string {
return r return r
} }
func (i ActionsInput) Deprecated() map[string]string {
r := map[string]string{}
for k, a := range i.Actions {
r[k] = util.TypeOrDefault(a.Deprecated, "")
}
return r
}
type Action struct { type Action struct {
Timeout *meta.Duration `json:"timeout,omitempty"` Timeout *meta.Duration `json:"timeout,omitempty"`
StartupFailureGracePeriod *meta.Duration `json:"startupFailureGracePeriod,omitempty"` StartupFailureGracePeriod *meta.Duration `json:"startupFailureGracePeriod,omitempty"`
@ -203,6 +212,8 @@ type Action struct {
Optional bool `json:"optional"` Optional bool `json:"optional"`
Configurable bool `json:"configurable"` Configurable bool `json:"configurable"`
Deprecated *string `json:"deprecated"`
} }
func (a Action) InScope(scope string) bool { func (a Action) InScope(scope string) bool {
@ -247,6 +258,7 @@ func RenderActions(root string) error {
"timeouts": in.Timeouts(), "timeouts": in.Timeouts(),
"descriptions": in.Descriptions(), "descriptions": in.Descriptions(),
"optionals": in.Optionals(), "optionals": in.Optionals(),
"deprecated": in.Deprecated(),
"defaultTimeout": fmt.Sprintf("%d * time.Second // %s", in.DefaultTimeout.Duration/time.Second, in.DefaultTimeout.Duration.String()), "defaultTimeout": fmt.Sprintf("%d * time.Second // %s", in.DefaultTimeout.Duration/time.Second, in.DefaultTimeout.Duration.String()),
}); err != nil { }); err != nil {
return err return err
@ -273,6 +285,7 @@ func RenderActions(root string) error {
if err := i.Execute(out, map[string]interface{}{ if err := i.Execute(out, map[string]interface{}{
"actions": in.Keys(), "actions": in.Keys(),
"startupFailureGracePeriods": in.StartFailureGracePeriods(), "startupFailureGracePeriods": in.StartFailureGracePeriods(),
"deprecated": in.Deprecated(),
}); err != nil { }); err != nil {
return err return err
} }
@ -324,6 +337,7 @@ func RenderActions(root string) error {
"startupFailureGracePeriods": in.StartFailureGracePeriods(), "startupFailureGracePeriods": in.StartFailureGracePeriods(),
"internal": in.Internal(), "internal": in.Internal(),
"optional": in.Optionals(), "optional": in.Optionals(),
"deprecated": in.Deprecated(),
}); err != nil { }); err != nil {
return err return err
} }
@ -352,6 +366,11 @@ func RenderActions(root string) error {
) )
for _, k := range in.Keys() { for _, k := range in.Keys() {
name := k
if in.Actions[k].Deprecated != nil {
name = fmt.Sprintf("~~%s~~", name)
}
a := in.Actions[k] a := in.Actions[k]
v := in.DefaultTimeout.Duration.String() v := in.DefaultTimeout.Duration.String()
if t := a.Timeout; t != nil { if t := a.Timeout; t != nil {
@ -372,7 +391,7 @@ func RenderActions(root string) error {
} }
if err := t.AddRow(map[md.Column]string{ if err := t.AddRow(map[md.Column]string{
action: k, action: name,
timeout: v, timeout: v,
description: a.Description, description: a.Description,
edition: vr, edition: vr,

View file

@ -26,16 +26,23 @@ const (
// ActionsDefaultTimeout define default timeout // ActionsDefaultTimeout define default timeout
ActionsDefaultTimeout time.Duration = {{ $root.defaultTimeout }} ActionsDefaultTimeout time.Duration = {{ $root.defaultTimeout }}
{{- range .actions }}
{{ range .actions -}}
// Action{{ . }}DefaultTimeout define default timeout for action Action{{ . }} // Action{{ . }}DefaultTimeout define default timeout for action Action{{ . }}
Action{{ . }}DefaultTimeout time.Duration = {{ index $root.timeouts . }} Action{{ . }}DefaultTimeout time.Duration = {{ index $root.timeouts . }}
{{- end }}
{{ end }}
// Actions // Actions
{{ range .actions }}
{{ range .actions -}}
// ActionType{{ . }} in scopes {{ index $root.scopes . }}. {{ index $root.descriptions . }} // ActionType{{ . }} in scopes {{ index $root.scopes . }}. {{ index $root.descriptions . }}
{{ if (index $root.deprecated .) -}}
//
// Deprecated: {{ index $root.deprecated . }}
{{ end -}}
ActionType{{ . }} ActionType = "{{ . }}" ActionType{{ . }} ActionType = "{{ . }}"
{{- end }}
{{ end -}}
) )
func (a ActionType) DefaultTimeout() time.Duration { func (a ActionType) DefaultTimeout() time.Duration {

View file

@ -27,30 +27,47 @@ import (
var ( var (
// Ensure implementation // Ensure implementation
{{- range .actions }} {{- range .actions }}
{{- if not (index $root.deprecated .) }}
_ Action = &action{{ . }}{} _ Action = &action{{ . }}{}
_ actionFactory = new{{ . }}Action _ actionFactory = new{{ . }}Action
{{- end }} {{- end }}
{{- end }}
) )
func init() { func init() {
// Register all actions // Register all actions
{{- range .actions }}
{{ range .actions -}}
// {{ . }} // {{ . }}
{ {
// Get Action defition // Get Action type
function := new{{ . }}Action {{ if (index $root.deprecated .) -}}
// nolint:staticcheck
{{ end -}}
action := api.ActionType{{ . }} action := api.ActionType{{ . }}
{{ if (index $root.deprecated .) -}}
// Get Empty (Deprecated) Action Definition
function := newDeprecatedAction
{{ else -}}
// Get Action defition
function := new{{ . }}Action
// Wrap action main function // Wrap action main function
{{- $startupFailureGracePeriod := index $root.startupFailureGracePeriods . -}}
{{- if $startupFailureGracePeriod }} {{ $startupFailureGracePeriod := index $root.startupFailureGracePeriods . -}}
{{ if $startupFailureGracePeriod -}}
// With StartupFailureGracePeriod
function = withActionStartFailureGracePeriod(function, {{ $startupFailureGracePeriod }}) function = withActionStartFailureGracePeriod(function, {{ $startupFailureGracePeriod }})
{{- end }}
{{ end -}}
{{ end -}}
// Register action // Register action
registerAction(action, function) registerAction(action, function)
} }
{{- end }}
{{ end -}}
} }

View file

@ -33,6 +33,9 @@ func Test_Actions(t *testing.T) {
{{- range .actions }} {{- range .actions }}
t.Run("{{ . }}", func(t *testing.T) { t.Run("{{ . }}", func(t *testing.T) {
{{ if (index $root.deprecated .) -}}
// nolint:staticcheck
{{ end -}}
ActionsExistence(t, api.ActionType{{ . }}) ActionsExistence(t, api.ActionType{{ . }})
{{- $startupFailureGracePeriod := index $root.startupFailureGracePeriods . -}} {{- $startupFailureGracePeriod := index $root.startupFailureGracePeriods . -}}
{{- if $startupFailureGracePeriod }} {{- if $startupFailureGracePeriod }}
@ -40,6 +43,9 @@ func Test_Actions(t *testing.T) {
{{- end }} {{- end }}
{{- $isInternal := index $root.internal . }} {{- $isInternal := index $root.internal . }}
t.Run("Internal", func(t *testing.T) { t.Run("Internal", func(t *testing.T) {
{{- if (index $root.deprecated .) }}
// nolint:staticcheck
{{- end }}
{{- if $isInternal }} {{- if $isInternal }}
require.True(t, api.ActionType{{ . }}.Internal()) require.True(t, api.ActionType{{ . }}.Internal())
{{- else }} {{- else }}
@ -48,6 +54,9 @@ func Test_Actions(t *testing.T) {
}) })
{{- $isOptional := index $root.optional . }} {{- $isOptional := index $root.optional . }}
t.Run("Optional", func(t *testing.T) { t.Run("Optional", func(t *testing.T) {
{{- if (index $root.deprecated .) }}
// nolint:staticcheck
{{- end }}
{{- if $isOptional }} {{- if $isOptional }}
require.True(t, api.ActionType{{ . }}.Optional()) require.True(t, api.ActionType{{ . }}.Optional())
{{- else }} {{- else }}

View file

@ -100,9 +100,11 @@ actions:
SetMemberCurrentImage: SetMemberCurrentImage:
description: Update Member current image description: Update Member current image
DisableClusterScaling: DisableClusterScaling:
description: (Deprecated) Disable Cluster Scaling integration description: Disable Cluster Scaling integration
deprecated: "action is not used anymore"
EnableClusterScaling: EnableClusterScaling:
description: (Deprecated) Enable Cluster Scaling integration description: Enable Cluster Scaling integration
deprecated: "action is not used anymore"
PVCResize: PVCResize:
description: Start the resize procedure. Updates PVC Requests field description: Start the resize procedure. Updates PVC Requests field
timeout: 30m timeout: 30m
@ -176,17 +178,19 @@ actions:
scopes: scopes:
- High - High
SetMemberCondition: SetMemberCondition:
description: (Deprecated) Set member condition description: Set member condition
scopes: scopes:
- High - High
deprecated: "action is not used anymore"
SetMemberConditionV2: SetMemberConditionV2:
description: Set member condition description: Set member condition
scopes: scopes:
- High - High
SetCondition: SetCondition:
description: (Deprecated) Set deployment condition description: Set deployment condition
scopes: scopes:
- High - High
deprecated: "action is not used anymore"
SetConditionV2: SetConditionV2:
description: Set deployment condition description: Set deployment condition
scopes: scopes:
@ -195,6 +199,7 @@ actions:
description: Update Run ID of member description: Update Run ID of member
scopes: scopes:
- High - High
deprecated: "action is not used anymore"
ArangoMemberUpdatePodSpec: ArangoMemberUpdatePodSpec:
description: Propagate Member Pod spec (requested) description: Propagate Member Pod spec (requested)
scopes: scopes:

View file

@ -25,168 +25,250 @@ const (
// ActionsDefaultTimeout define default timeout // ActionsDefaultTimeout define default timeout
ActionsDefaultTimeout time.Duration = 600 * time.Second // 10m0s ActionsDefaultTimeout time.Duration = 600 * time.Second // 10m0s
// ActionAddMemberDefaultTimeout define default timeout for action ActionAddMember // ActionAddMemberDefaultTimeout define default timeout for action ActionAddMember
ActionAddMemberDefaultTimeout time.Duration = 600 * time.Second // 10m0s ActionAddMemberDefaultTimeout time.Duration = 600 * time.Second // 10m0s
// ActionAppendTLSCACertificateDefaultTimeout define default timeout for action ActionAppendTLSCACertificate // ActionAppendTLSCACertificateDefaultTimeout define default timeout for action ActionAppendTLSCACertificate
ActionAppendTLSCACertificateDefaultTimeout time.Duration = 1800 * time.Second // 30m0s ActionAppendTLSCACertificateDefaultTimeout time.Duration = 1800 * time.Second // 30m0s
// ActionArangoMemberUpdatePodSpecDefaultTimeout define default timeout for action ActionArangoMemberUpdatePodSpec // ActionArangoMemberUpdatePodSpecDefaultTimeout define default timeout for action ActionArangoMemberUpdatePodSpec
ActionArangoMemberUpdatePodSpecDefaultTimeout time.Duration = ActionsDefaultTimeout ActionArangoMemberUpdatePodSpecDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionArangoMemberUpdatePodStatusDefaultTimeout define default timeout for action ActionArangoMemberUpdatePodStatus // ActionArangoMemberUpdatePodStatusDefaultTimeout define default timeout for action ActionArangoMemberUpdatePodStatus
ActionArangoMemberUpdatePodStatusDefaultTimeout time.Duration = ActionsDefaultTimeout ActionArangoMemberUpdatePodStatusDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionBackupRestoreDefaultTimeout define default timeout for action ActionBackupRestore // ActionBackupRestoreDefaultTimeout define default timeout for action ActionBackupRestore
ActionBackupRestoreDefaultTimeout time.Duration = 900 * time.Second // 15m0s ActionBackupRestoreDefaultTimeout time.Duration = 900 * time.Second // 15m0s
// ActionBackupRestoreCleanDefaultTimeout define default timeout for action ActionBackupRestoreClean // ActionBackupRestoreCleanDefaultTimeout define default timeout for action ActionBackupRestoreClean
ActionBackupRestoreCleanDefaultTimeout time.Duration = 900 * time.Second // 15m0s ActionBackupRestoreCleanDefaultTimeout time.Duration = 900 * time.Second // 15m0s
// ActionBootstrapSetPasswordDefaultTimeout define default timeout for action ActionBootstrapSetPassword // ActionBootstrapSetPasswordDefaultTimeout define default timeout for action ActionBootstrapSetPassword
ActionBootstrapSetPasswordDefaultTimeout time.Duration = ActionsDefaultTimeout ActionBootstrapSetPasswordDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionBootstrapUpdateDefaultTimeout define default timeout for action ActionBootstrapUpdate // ActionBootstrapUpdateDefaultTimeout define default timeout for action ActionBootstrapUpdate
ActionBootstrapUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout ActionBootstrapUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionCleanMemberServiceDefaultTimeout define default timeout for action ActionCleanMemberService // ActionCleanMemberServiceDefaultTimeout define default timeout for action ActionCleanMemberService
ActionCleanMemberServiceDefaultTimeout time.Duration = 1800 * time.Second // 30m0s ActionCleanMemberServiceDefaultTimeout time.Duration = 1800 * time.Second // 30m0s
// ActionCleanOutMemberDefaultTimeout define default timeout for action ActionCleanOutMember // ActionCleanOutMemberDefaultTimeout define default timeout for action ActionCleanOutMember
ActionCleanOutMemberDefaultTimeout time.Duration = 172800 * time.Second // 48h0m0s ActionCleanOutMemberDefaultTimeout time.Duration = 172800 * time.Second // 48h0m0s
// ActionCleanTLSCACertificateDefaultTimeout define default timeout for action ActionCleanTLSCACertificate // ActionCleanTLSCACertificateDefaultTimeout define default timeout for action ActionCleanTLSCACertificate
ActionCleanTLSCACertificateDefaultTimeout time.Duration = 1800 * time.Second // 30m0s ActionCleanTLSCACertificateDefaultTimeout time.Duration = 1800 * time.Second // 30m0s
// ActionCleanTLSKeyfileCertificateDefaultTimeout define default timeout for action ActionCleanTLSKeyfileCertificate // ActionCleanTLSKeyfileCertificateDefaultTimeout define default timeout for action ActionCleanTLSKeyfileCertificate
ActionCleanTLSKeyfileCertificateDefaultTimeout time.Duration = 1800 * time.Second // 30m0s ActionCleanTLSKeyfileCertificateDefaultTimeout time.Duration = 1800 * time.Second // 30m0s
// ActionClusterMemberCleanupDefaultTimeout define default timeout for action ActionClusterMemberCleanup // ActionClusterMemberCleanupDefaultTimeout define default timeout for action ActionClusterMemberCleanup
ActionClusterMemberCleanupDefaultTimeout time.Duration = ActionsDefaultTimeout ActionClusterMemberCleanupDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionDisableClusterScalingDefaultTimeout define default timeout for action ActionDisableClusterScaling // ActionDisableClusterScalingDefaultTimeout define default timeout for action ActionDisableClusterScaling
ActionDisableClusterScalingDefaultTimeout time.Duration = ActionsDefaultTimeout ActionDisableClusterScalingDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionDisableMaintenanceDefaultTimeout define default timeout for action ActionDisableMaintenance // ActionDisableMaintenanceDefaultTimeout define default timeout for action ActionDisableMaintenance
ActionDisableMaintenanceDefaultTimeout time.Duration = ActionsDefaultTimeout ActionDisableMaintenanceDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionDisableMemberMaintenanceDefaultTimeout define default timeout for action ActionDisableMemberMaintenance // ActionDisableMemberMaintenanceDefaultTimeout define default timeout for action ActionDisableMemberMaintenance
ActionDisableMemberMaintenanceDefaultTimeout time.Duration = ActionsDefaultTimeout ActionDisableMemberMaintenanceDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionEnableClusterScalingDefaultTimeout define default timeout for action ActionEnableClusterScaling // ActionEnableClusterScalingDefaultTimeout define default timeout for action ActionEnableClusterScaling
ActionEnableClusterScalingDefaultTimeout time.Duration = ActionsDefaultTimeout ActionEnableClusterScalingDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionEnableMaintenanceDefaultTimeout define default timeout for action ActionEnableMaintenance // ActionEnableMaintenanceDefaultTimeout define default timeout for action ActionEnableMaintenance
ActionEnableMaintenanceDefaultTimeout time.Duration = ActionsDefaultTimeout ActionEnableMaintenanceDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionEnableMemberMaintenanceDefaultTimeout define default timeout for action ActionEnableMemberMaintenance // ActionEnableMemberMaintenanceDefaultTimeout define default timeout for action ActionEnableMemberMaintenance
ActionEnableMemberMaintenanceDefaultTimeout time.Duration = ActionsDefaultTimeout ActionEnableMemberMaintenanceDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionEncryptionKeyAddDefaultTimeout define default timeout for action ActionEncryptionKeyAdd // ActionEncryptionKeyAddDefaultTimeout define default timeout for action ActionEncryptionKeyAdd
ActionEncryptionKeyAddDefaultTimeout time.Duration = ActionsDefaultTimeout ActionEncryptionKeyAddDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionEncryptionKeyPropagatedDefaultTimeout define default timeout for action ActionEncryptionKeyPropagated // ActionEncryptionKeyPropagatedDefaultTimeout define default timeout for action ActionEncryptionKeyPropagated
ActionEncryptionKeyPropagatedDefaultTimeout time.Duration = ActionsDefaultTimeout ActionEncryptionKeyPropagatedDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionEncryptionKeyRefreshDefaultTimeout define default timeout for action ActionEncryptionKeyRefresh // ActionEncryptionKeyRefreshDefaultTimeout define default timeout for action ActionEncryptionKeyRefresh
ActionEncryptionKeyRefreshDefaultTimeout time.Duration = ActionsDefaultTimeout ActionEncryptionKeyRefreshDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionEncryptionKeyRemoveDefaultTimeout define default timeout for action ActionEncryptionKeyRemove // ActionEncryptionKeyRemoveDefaultTimeout define default timeout for action ActionEncryptionKeyRemove
ActionEncryptionKeyRemoveDefaultTimeout time.Duration = ActionsDefaultTimeout ActionEncryptionKeyRemoveDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionEncryptionKeyStatusUpdateDefaultTimeout define default timeout for action ActionEncryptionKeyStatusUpdate // ActionEncryptionKeyStatusUpdateDefaultTimeout define default timeout for action ActionEncryptionKeyStatusUpdate
ActionEncryptionKeyStatusUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout ActionEncryptionKeyStatusUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionIdleDefaultTimeout define default timeout for action ActionIdle // ActionIdleDefaultTimeout define default timeout for action ActionIdle
ActionIdleDefaultTimeout time.Duration = ActionsDefaultTimeout ActionIdleDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionJWTAddDefaultTimeout define default timeout for action ActionJWTAdd // ActionJWTAddDefaultTimeout define default timeout for action ActionJWTAdd
ActionJWTAddDefaultTimeout time.Duration = ActionsDefaultTimeout ActionJWTAddDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionJWTCleanDefaultTimeout define default timeout for action ActionJWTClean // ActionJWTCleanDefaultTimeout define default timeout for action ActionJWTClean
ActionJWTCleanDefaultTimeout time.Duration = ActionsDefaultTimeout ActionJWTCleanDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionJWTPropagatedDefaultTimeout define default timeout for action ActionJWTPropagated // ActionJWTPropagatedDefaultTimeout define default timeout for action ActionJWTPropagated
ActionJWTPropagatedDefaultTimeout time.Duration = ActionsDefaultTimeout ActionJWTPropagatedDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionJWTRefreshDefaultTimeout define default timeout for action ActionJWTRefresh // ActionJWTRefreshDefaultTimeout define default timeout for action ActionJWTRefresh
ActionJWTRefreshDefaultTimeout time.Duration = ActionsDefaultTimeout ActionJWTRefreshDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionJWTSetActiveDefaultTimeout define default timeout for action ActionJWTSetActive // ActionJWTSetActiveDefaultTimeout define default timeout for action ActionJWTSetActive
ActionJWTSetActiveDefaultTimeout time.Duration = ActionsDefaultTimeout ActionJWTSetActiveDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionJWTStatusUpdateDefaultTimeout define default timeout for action ActionJWTStatusUpdate // ActionJWTStatusUpdateDefaultTimeout define default timeout for action ActionJWTStatusUpdate
ActionJWTStatusUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout ActionJWTStatusUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionKillMemberPodDefaultTimeout define default timeout for action ActionKillMemberPod // ActionKillMemberPodDefaultTimeout define default timeout for action ActionKillMemberPod
ActionKillMemberPodDefaultTimeout time.Duration = ActionsDefaultTimeout ActionKillMemberPodDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionLicenseSetDefaultTimeout define default timeout for action ActionLicenseSet // ActionLicenseSetDefaultTimeout define default timeout for action ActionLicenseSet
ActionLicenseSetDefaultTimeout time.Duration = ActionsDefaultTimeout ActionLicenseSetDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionMarkToRemoveMemberDefaultTimeout define default timeout for action ActionMarkToRemoveMember // ActionMarkToRemoveMemberDefaultTimeout define default timeout for action ActionMarkToRemoveMember
ActionMarkToRemoveMemberDefaultTimeout time.Duration = ActionsDefaultTimeout ActionMarkToRemoveMemberDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionMemberPhaseUpdateDefaultTimeout define default timeout for action ActionMemberPhaseUpdate // ActionMemberPhaseUpdateDefaultTimeout define default timeout for action ActionMemberPhaseUpdate
ActionMemberPhaseUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout ActionMemberPhaseUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionMemberRIDUpdateDefaultTimeout define default timeout for action ActionMemberRIDUpdate // ActionMemberRIDUpdateDefaultTimeout define default timeout for action ActionMemberRIDUpdate
ActionMemberRIDUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout ActionMemberRIDUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionPVCResizeDefaultTimeout define default timeout for action ActionPVCResize // ActionPVCResizeDefaultTimeout define default timeout for action ActionPVCResize
ActionPVCResizeDefaultTimeout time.Duration = 1800 * time.Second // 30m0s ActionPVCResizeDefaultTimeout time.Duration = 1800 * time.Second // 30m0s
// ActionPVCResizedDefaultTimeout define default timeout for action ActionPVCResized // ActionPVCResizedDefaultTimeout define default timeout for action ActionPVCResized
ActionPVCResizedDefaultTimeout time.Duration = 900 * time.Second // 15m0s ActionPVCResizedDefaultTimeout time.Duration = 900 * time.Second // 15m0s
// ActionPlaceHolderDefaultTimeout define default timeout for action ActionPlaceHolder // ActionPlaceHolderDefaultTimeout define default timeout for action ActionPlaceHolder
ActionPlaceHolderDefaultTimeout time.Duration = ActionsDefaultTimeout ActionPlaceHolderDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionRebalancerCheckDefaultTimeout define default timeout for action ActionRebalancerCheck // ActionRebalancerCheckDefaultTimeout define default timeout for action ActionRebalancerCheck
ActionRebalancerCheckDefaultTimeout time.Duration = ActionsDefaultTimeout ActionRebalancerCheckDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionRebalancerCheckV2DefaultTimeout define default timeout for action ActionRebalancerCheckV2 // ActionRebalancerCheckV2DefaultTimeout define default timeout for action ActionRebalancerCheckV2
ActionRebalancerCheckV2DefaultTimeout time.Duration = ActionsDefaultTimeout ActionRebalancerCheckV2DefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionRebalancerCleanDefaultTimeout define default timeout for action ActionRebalancerClean // ActionRebalancerCleanDefaultTimeout define default timeout for action ActionRebalancerClean
ActionRebalancerCleanDefaultTimeout time.Duration = ActionsDefaultTimeout ActionRebalancerCleanDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionRebalancerCleanV2DefaultTimeout define default timeout for action ActionRebalancerCleanV2 // ActionRebalancerCleanV2DefaultTimeout define default timeout for action ActionRebalancerCleanV2
ActionRebalancerCleanV2DefaultTimeout time.Duration = ActionsDefaultTimeout ActionRebalancerCleanV2DefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionRebalancerGenerateDefaultTimeout define default timeout for action ActionRebalancerGenerate // ActionRebalancerGenerateDefaultTimeout define default timeout for action ActionRebalancerGenerate
ActionRebalancerGenerateDefaultTimeout time.Duration = ActionsDefaultTimeout ActionRebalancerGenerateDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionRebalancerGenerateV2DefaultTimeout define default timeout for action ActionRebalancerGenerateV2 // ActionRebalancerGenerateV2DefaultTimeout define default timeout for action ActionRebalancerGenerateV2
ActionRebalancerGenerateV2DefaultTimeout time.Duration = ActionsDefaultTimeout ActionRebalancerGenerateV2DefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionRebuildOutSyncedShardsDefaultTimeout define default timeout for action ActionRebuildOutSyncedShards // ActionRebuildOutSyncedShardsDefaultTimeout define default timeout for action ActionRebuildOutSyncedShards
ActionRebuildOutSyncedShardsDefaultTimeout time.Duration = 86400 * time.Second // 24h0m0s ActionRebuildOutSyncedShardsDefaultTimeout time.Duration = 86400 * time.Second // 24h0m0s
// ActionRecreateMemberDefaultTimeout define default timeout for action ActionRecreateMember // ActionRecreateMemberDefaultTimeout define default timeout for action ActionRecreateMember
ActionRecreateMemberDefaultTimeout time.Duration = 900 * time.Second // 15m0s ActionRecreateMemberDefaultTimeout time.Duration = 900 * time.Second // 15m0s
// ActionRefreshTLSKeyfileCertificateDefaultTimeout define default timeout for action ActionRefreshTLSKeyfileCertificate // ActionRefreshTLSKeyfileCertificateDefaultTimeout define default timeout for action ActionRefreshTLSKeyfileCertificate
ActionRefreshTLSKeyfileCertificateDefaultTimeout time.Duration = 1800 * time.Second // 30m0s ActionRefreshTLSKeyfileCertificateDefaultTimeout time.Duration = 1800 * time.Second // 30m0s
// ActionRemoveMemberDefaultTimeout define default timeout for action ActionRemoveMember // ActionRemoveMemberDefaultTimeout define default timeout for action ActionRemoveMember
ActionRemoveMemberDefaultTimeout time.Duration = 900 * time.Second // 15m0s ActionRemoveMemberDefaultTimeout time.Duration = 900 * time.Second // 15m0s
// ActionRemoveMemberPVCDefaultTimeout define default timeout for action ActionRemoveMemberPVC // ActionRemoveMemberPVCDefaultTimeout define default timeout for action ActionRemoveMemberPVC
ActionRemoveMemberPVCDefaultTimeout time.Duration = 900 * time.Second // 15m0s ActionRemoveMemberPVCDefaultTimeout time.Duration = 900 * time.Second // 15m0s
// ActionRenewTLSCACertificateDefaultTimeout define default timeout for action ActionRenewTLSCACertificate // ActionRenewTLSCACertificateDefaultTimeout define default timeout for action ActionRenewTLSCACertificate
ActionRenewTLSCACertificateDefaultTimeout time.Duration = 1800 * time.Second // 30m0s ActionRenewTLSCACertificateDefaultTimeout time.Duration = 1800 * time.Second // 30m0s
// ActionRenewTLSCertificateDefaultTimeout define default timeout for action ActionRenewTLSCertificate // ActionRenewTLSCertificateDefaultTimeout define default timeout for action ActionRenewTLSCertificate
ActionRenewTLSCertificateDefaultTimeout time.Duration = 1800 * time.Second // 30m0s ActionRenewTLSCertificateDefaultTimeout time.Duration = 1800 * time.Second // 30m0s
// ActionResignLeadershipDefaultTimeout define default timeout for action ActionResignLeadership // ActionResignLeadershipDefaultTimeout define default timeout for action ActionResignLeadership
ActionResignLeadershipDefaultTimeout time.Duration = 1800 * time.Second // 30m0s ActionResignLeadershipDefaultTimeout time.Duration = 1800 * time.Second // 30m0s
// ActionResourceSyncDefaultTimeout define default timeout for action ActionResourceSync // ActionResourceSyncDefaultTimeout define default timeout for action ActionResourceSync
ActionResourceSyncDefaultTimeout time.Duration = ActionsDefaultTimeout ActionResourceSyncDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionRotateMemberDefaultTimeout define default timeout for action ActionRotateMember // ActionRotateMemberDefaultTimeout define default timeout for action ActionRotateMember
ActionRotateMemberDefaultTimeout time.Duration = 900 * time.Second // 15m0s ActionRotateMemberDefaultTimeout time.Duration = 900 * time.Second // 15m0s
// ActionRotateStartMemberDefaultTimeout define default timeout for action ActionRotateStartMember // ActionRotateStartMemberDefaultTimeout define default timeout for action ActionRotateStartMember
ActionRotateStartMemberDefaultTimeout time.Duration = 900 * time.Second // 15m0s ActionRotateStartMemberDefaultTimeout time.Duration = 900 * time.Second // 15m0s
// ActionRotateStopMemberDefaultTimeout define default timeout for action ActionRotateStopMember // ActionRotateStopMemberDefaultTimeout define default timeout for action ActionRotateStopMember
ActionRotateStopMemberDefaultTimeout time.Duration = 900 * time.Second // 15m0s ActionRotateStopMemberDefaultTimeout time.Duration = 900 * time.Second // 15m0s
// ActionRuntimeContainerArgsLogLevelUpdateDefaultTimeout define default timeout for action ActionRuntimeContainerArgsLogLevelUpdate // ActionRuntimeContainerArgsLogLevelUpdateDefaultTimeout define default timeout for action ActionRuntimeContainerArgsLogLevelUpdate
ActionRuntimeContainerArgsLogLevelUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout ActionRuntimeContainerArgsLogLevelUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionRuntimeContainerImageUpdateDefaultTimeout define default timeout for action ActionRuntimeContainerImageUpdate // ActionRuntimeContainerImageUpdateDefaultTimeout define default timeout for action ActionRuntimeContainerImageUpdate
ActionRuntimeContainerImageUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout ActionRuntimeContainerImageUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionRuntimeContainerSyncTolerationsDefaultTimeout define default timeout for action ActionRuntimeContainerSyncTolerations // ActionRuntimeContainerSyncTolerationsDefaultTimeout define default timeout for action ActionRuntimeContainerSyncTolerations
ActionRuntimeContainerSyncTolerationsDefaultTimeout time.Duration = ActionsDefaultTimeout ActionRuntimeContainerSyncTolerationsDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionSetConditionDefaultTimeout define default timeout for action ActionSetCondition // ActionSetConditionDefaultTimeout define default timeout for action ActionSetCondition
ActionSetConditionDefaultTimeout time.Duration = ActionsDefaultTimeout ActionSetConditionDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionSetConditionV2DefaultTimeout define default timeout for action ActionSetConditionV2 // ActionSetConditionV2DefaultTimeout define default timeout for action ActionSetConditionV2
ActionSetConditionV2DefaultTimeout time.Duration = ActionsDefaultTimeout ActionSetConditionV2DefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionSetCurrentImageDefaultTimeout define default timeout for action ActionSetCurrentImage // ActionSetCurrentImageDefaultTimeout define default timeout for action ActionSetCurrentImage
ActionSetCurrentImageDefaultTimeout time.Duration = 21600 * time.Second // 6h0m0s ActionSetCurrentImageDefaultTimeout time.Duration = 21600 * time.Second // 6h0m0s
// ActionSetCurrentMemberArchDefaultTimeout define default timeout for action ActionSetCurrentMemberArch // ActionSetCurrentMemberArchDefaultTimeout define default timeout for action ActionSetCurrentMemberArch
ActionSetCurrentMemberArchDefaultTimeout time.Duration = 600 * time.Second // 10m0s ActionSetCurrentMemberArchDefaultTimeout time.Duration = 600 * time.Second // 10m0s
// ActionSetMaintenanceConditionDefaultTimeout define default timeout for action ActionSetMaintenanceCondition // ActionSetMaintenanceConditionDefaultTimeout define default timeout for action ActionSetMaintenanceCondition
ActionSetMaintenanceConditionDefaultTimeout time.Duration = ActionsDefaultTimeout ActionSetMaintenanceConditionDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionSetMemberConditionDefaultTimeout define default timeout for action ActionSetMemberCondition // ActionSetMemberConditionDefaultTimeout define default timeout for action ActionSetMemberCondition
ActionSetMemberConditionDefaultTimeout time.Duration = ActionsDefaultTimeout ActionSetMemberConditionDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionSetMemberConditionV2DefaultTimeout define default timeout for action ActionSetMemberConditionV2 // ActionSetMemberConditionV2DefaultTimeout define default timeout for action ActionSetMemberConditionV2
ActionSetMemberConditionV2DefaultTimeout time.Duration = ActionsDefaultTimeout ActionSetMemberConditionV2DefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionSetMemberCurrentImageDefaultTimeout define default timeout for action ActionSetMemberCurrentImage // ActionSetMemberCurrentImageDefaultTimeout define default timeout for action ActionSetMemberCurrentImage
ActionSetMemberCurrentImageDefaultTimeout time.Duration = ActionsDefaultTimeout ActionSetMemberCurrentImageDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionShutdownMemberDefaultTimeout define default timeout for action ActionShutdownMember // ActionShutdownMemberDefaultTimeout define default timeout for action ActionShutdownMember
ActionShutdownMemberDefaultTimeout time.Duration = 1800 * time.Second // 30m0s ActionShutdownMemberDefaultTimeout time.Duration = 1800 * time.Second // 30m0s
// ActionTLSKeyStatusUpdateDefaultTimeout define default timeout for action ActionTLSKeyStatusUpdate // ActionTLSKeyStatusUpdateDefaultTimeout define default timeout for action ActionTLSKeyStatusUpdate
ActionTLSKeyStatusUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout ActionTLSKeyStatusUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionTLSPropagatedDefaultTimeout define default timeout for action ActionTLSPropagated // ActionTLSPropagatedDefaultTimeout define default timeout for action ActionTLSPropagated
ActionTLSPropagatedDefaultTimeout time.Duration = ActionsDefaultTimeout ActionTLSPropagatedDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionTimezoneSecretSetDefaultTimeout define default timeout for action ActionTimezoneSecretSet // ActionTimezoneSecretSetDefaultTimeout define default timeout for action ActionTimezoneSecretSet
ActionTimezoneSecretSetDefaultTimeout time.Duration = 1800 * time.Second // 30m0s ActionTimezoneSecretSetDefaultTimeout time.Duration = 1800 * time.Second // 30m0s
// ActionTopologyDisableDefaultTimeout define default timeout for action ActionTopologyDisable // ActionTopologyDisableDefaultTimeout define default timeout for action ActionTopologyDisable
ActionTopologyDisableDefaultTimeout time.Duration = ActionsDefaultTimeout ActionTopologyDisableDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionTopologyEnableDefaultTimeout define default timeout for action ActionTopologyEnable // ActionTopologyEnableDefaultTimeout define default timeout for action ActionTopologyEnable
ActionTopologyEnableDefaultTimeout time.Duration = ActionsDefaultTimeout ActionTopologyEnableDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionTopologyMemberAssignmentDefaultTimeout define default timeout for action ActionTopologyMemberAssignment // ActionTopologyMemberAssignmentDefaultTimeout define default timeout for action ActionTopologyMemberAssignment
ActionTopologyMemberAssignmentDefaultTimeout time.Duration = ActionsDefaultTimeout ActionTopologyMemberAssignmentDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionTopologyZonesUpdateDefaultTimeout define default timeout for action ActionTopologyZonesUpdate // ActionTopologyZonesUpdateDefaultTimeout define default timeout for action ActionTopologyZonesUpdate
ActionTopologyZonesUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout ActionTopologyZonesUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionUpToDateUpdateDefaultTimeout define default timeout for action ActionUpToDateUpdate // ActionUpToDateUpdateDefaultTimeout define default timeout for action ActionUpToDateUpdate
ActionUpToDateUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout ActionUpToDateUpdateDefaultTimeout time.Duration = ActionsDefaultTimeout
// ActionUpdateTLSSNIDefaultTimeout define default timeout for action ActionUpdateTLSSNI // ActionUpdateTLSSNIDefaultTimeout define default timeout for action ActionUpdateTLSSNI
ActionUpdateTLSSNIDefaultTimeout time.Duration = 600 * time.Second // 10m0s ActionUpdateTLSSNIDefaultTimeout time.Duration = 600 * time.Second // 10m0s
// ActionUpgradeMemberDefaultTimeout define default timeout for action ActionUpgradeMember // ActionUpgradeMemberDefaultTimeout define default timeout for action ActionUpgradeMember
ActionUpgradeMemberDefaultTimeout time.Duration = 21600 * time.Second // 6h0m0s ActionUpgradeMemberDefaultTimeout time.Duration = 21600 * time.Second // 6h0m0s
// ActionWaitForMemberInSyncDefaultTimeout define default timeout for action ActionWaitForMemberInSync // ActionWaitForMemberInSyncDefaultTimeout define default timeout for action ActionWaitForMemberInSync
ActionWaitForMemberInSyncDefaultTimeout time.Duration = 1800 * time.Second // 30m0s ActionWaitForMemberInSyncDefaultTimeout time.Duration = 1800 * time.Second // 30m0s
// ActionWaitForMemberReadyDefaultTimeout define default timeout for action ActionWaitForMemberReady // ActionWaitForMemberReadyDefaultTimeout define default timeout for action ActionWaitForMemberReady
ActionWaitForMemberReadyDefaultTimeout time.Duration = 1800 * time.Second // 30m0s ActionWaitForMemberReadyDefaultTimeout time.Duration = 1800 * time.Second // 30m0s
// ActionWaitForMemberUpDefaultTimeout define default timeout for action ActionWaitForMemberUp // ActionWaitForMemberUpDefaultTimeout define default timeout for action ActionWaitForMemberUp
ActionWaitForMemberUpDefaultTimeout time.Duration = 1800 * time.Second // 30m0s ActionWaitForMemberUpDefaultTimeout time.Duration = 1800 * time.Second // 30m0s
@ -194,166 +276,257 @@ const (
// ActionTypeAddMember in scopes Normal. Adds new member to the Member list // ActionTypeAddMember in scopes Normal. Adds new member to the Member list
ActionTypeAddMember ActionType = "AddMember" ActionTypeAddMember ActionType = "AddMember"
// ActionTypeAppendTLSCACertificate in scopes Normal. Append Certificate into CA TrustStore // ActionTypeAppendTLSCACertificate in scopes Normal. Append Certificate into CA TrustStore
ActionTypeAppendTLSCACertificate ActionType = "AppendTLSCACertificate" ActionTypeAppendTLSCACertificate ActionType = "AppendTLSCACertificate"
// ActionTypeArangoMemberUpdatePodSpec in scopes High. Propagate Member Pod spec (requested) // ActionTypeArangoMemberUpdatePodSpec in scopes High. Propagate Member Pod spec (requested)
ActionTypeArangoMemberUpdatePodSpec ActionType = "ArangoMemberUpdatePodSpec" ActionTypeArangoMemberUpdatePodSpec ActionType = "ArangoMemberUpdatePodSpec"
// ActionTypeArangoMemberUpdatePodStatus in scopes High. Propagate Member Pod status (current) // ActionTypeArangoMemberUpdatePodStatus in scopes High. Propagate Member Pod status (current)
ActionTypeArangoMemberUpdatePodStatus ActionType = "ArangoMemberUpdatePodStatus" ActionTypeArangoMemberUpdatePodStatus ActionType = "ArangoMemberUpdatePodStatus"
// ActionTypeBackupRestore in scopes Normal. Restore selected Backup // ActionTypeBackupRestore in scopes Normal. Restore selected Backup
ActionTypeBackupRestore ActionType = "BackupRestore" ActionTypeBackupRestore ActionType = "BackupRestore"
// ActionTypeBackupRestoreClean in scopes Normal. Clean restore status in case of restore spec change // ActionTypeBackupRestoreClean in scopes Normal. Clean restore status in case of restore spec change
ActionTypeBackupRestoreClean ActionType = "BackupRestoreClean" ActionTypeBackupRestoreClean ActionType = "BackupRestoreClean"
// ActionTypeBootstrapSetPassword in scopes Normal. Change password during bootstrap procedure // ActionTypeBootstrapSetPassword in scopes Normal. Change password during bootstrap procedure
ActionTypeBootstrapSetPassword ActionType = "BootstrapSetPassword" ActionTypeBootstrapSetPassword ActionType = "BootstrapSetPassword"
// ActionTypeBootstrapUpdate in scopes Normal. Update bootstrap status // ActionTypeBootstrapUpdate in scopes Normal. Update bootstrap status
ActionTypeBootstrapUpdate ActionType = "BootstrapUpdate" ActionTypeBootstrapUpdate ActionType = "BootstrapUpdate"
// ActionTypeCleanMemberService in scopes Normal. Removes Server Service // ActionTypeCleanMemberService in scopes Normal. Removes Server Service
ActionTypeCleanMemberService ActionType = "CleanMemberService" ActionTypeCleanMemberService ActionType = "CleanMemberService"
// ActionTypeCleanOutMember in scopes Normal. Run the CleanOut job on member // ActionTypeCleanOutMember in scopes Normal. Run the CleanOut job on member
ActionTypeCleanOutMember ActionType = "CleanOutMember" ActionTypeCleanOutMember ActionType = "CleanOutMember"
// ActionTypeCleanTLSCACertificate in scopes Normal. Remove Certificate from CA TrustStore // ActionTypeCleanTLSCACertificate in scopes Normal. Remove Certificate from CA TrustStore
ActionTypeCleanTLSCACertificate ActionType = "CleanTLSCACertificate" ActionTypeCleanTLSCACertificate ActionType = "CleanTLSCACertificate"
// ActionTypeCleanTLSKeyfileCertificate in scopes Normal. Remove old TLS certificate from server // ActionTypeCleanTLSKeyfileCertificate in scopes Normal. Remove old TLS certificate from server
ActionTypeCleanTLSKeyfileCertificate ActionType = "CleanTLSKeyfileCertificate" ActionTypeCleanTLSKeyfileCertificate ActionType = "CleanTLSKeyfileCertificate"
// ActionTypeClusterMemberCleanup in scopes Normal. Remove member from Cluster if it is gone already (Coordinators) // ActionTypeClusterMemberCleanup in scopes Normal. Remove member from Cluster if it is gone already (Coordinators)
ActionTypeClusterMemberCleanup ActionType = "ClusterMemberCleanup" ActionTypeClusterMemberCleanup ActionType = "ClusterMemberCleanup"
// ActionTypeDisableClusterScaling in scopes Normal. (Deprecated) Disable Cluster Scaling integration
// ActionTypeDisableClusterScaling in scopes Normal. Disable Cluster Scaling integration
//
// Deprecated: action is not used anymore
ActionTypeDisableClusterScaling ActionType = "DisableClusterScaling" ActionTypeDisableClusterScaling ActionType = "DisableClusterScaling"
// ActionTypeDisableMaintenance in scopes Normal. Disable ArangoDB maintenance mode // ActionTypeDisableMaintenance in scopes Normal. Disable ArangoDB maintenance mode
ActionTypeDisableMaintenance ActionType = "DisableMaintenance" ActionTypeDisableMaintenance ActionType = "DisableMaintenance"
// ActionTypeDisableMemberMaintenance in scopes Normal. Disable ArangoDB DBServer maintenance mode // ActionTypeDisableMemberMaintenance in scopes Normal. Disable ArangoDB DBServer maintenance mode
ActionTypeDisableMemberMaintenance ActionType = "DisableMemberMaintenance" ActionTypeDisableMemberMaintenance ActionType = "DisableMemberMaintenance"
// ActionTypeEnableClusterScaling in scopes Normal. (Deprecated) Enable Cluster Scaling integration
// ActionTypeEnableClusterScaling in scopes Normal. Enable Cluster Scaling integration
//
// Deprecated: action is not used anymore
ActionTypeEnableClusterScaling ActionType = "EnableClusterScaling" ActionTypeEnableClusterScaling ActionType = "EnableClusterScaling"
// ActionTypeEnableMaintenance in scopes Normal. Enable ArangoDB maintenance mode // ActionTypeEnableMaintenance in scopes Normal. Enable ArangoDB maintenance mode
ActionTypeEnableMaintenance ActionType = "EnableMaintenance" ActionTypeEnableMaintenance ActionType = "EnableMaintenance"
// ActionTypeEnableMemberMaintenance in scopes Normal. Enable ArangoDB DBServer maintenance mode // ActionTypeEnableMemberMaintenance in scopes Normal. Enable ArangoDB DBServer maintenance mode
ActionTypeEnableMemberMaintenance ActionType = "EnableMemberMaintenance" ActionTypeEnableMemberMaintenance ActionType = "EnableMemberMaintenance"
// ActionTypeEncryptionKeyAdd in scopes Normal. Add the encryption key to the pool // ActionTypeEncryptionKeyAdd in scopes Normal. Add the encryption key to the pool
ActionTypeEncryptionKeyAdd ActionType = "EncryptionKeyAdd" ActionTypeEncryptionKeyAdd ActionType = "EncryptionKeyAdd"
// ActionTypeEncryptionKeyPropagated in scopes Normal. Update condition of encryption propagation // ActionTypeEncryptionKeyPropagated in scopes Normal. Update condition of encryption propagation
ActionTypeEncryptionKeyPropagated ActionType = "EncryptionKeyPropagated" ActionTypeEncryptionKeyPropagated ActionType = "EncryptionKeyPropagated"
// ActionTypeEncryptionKeyRefresh in scopes Normal. Refresh the encryption keys on member // ActionTypeEncryptionKeyRefresh in scopes Normal. Refresh the encryption keys on member
ActionTypeEncryptionKeyRefresh ActionType = "EncryptionKeyRefresh" ActionTypeEncryptionKeyRefresh ActionType = "EncryptionKeyRefresh"
// ActionTypeEncryptionKeyRemove in scopes Normal. Remove the encryption key to the pool // ActionTypeEncryptionKeyRemove in scopes Normal. Remove the encryption key to the pool
ActionTypeEncryptionKeyRemove ActionType = "EncryptionKeyRemove" ActionTypeEncryptionKeyRemove ActionType = "EncryptionKeyRemove"
// ActionTypeEncryptionKeyStatusUpdate in scopes Normal. Update status of encryption propagation // ActionTypeEncryptionKeyStatusUpdate in scopes Normal. Update status of encryption propagation
ActionTypeEncryptionKeyStatusUpdate ActionType = "EncryptionKeyStatusUpdate" ActionTypeEncryptionKeyStatusUpdate ActionType = "EncryptionKeyStatusUpdate"
// ActionTypeIdle in scopes Normal. Define idle operation in case if preconditions are not meet // ActionTypeIdle in scopes Normal. Define idle operation in case if preconditions are not meet
ActionTypeIdle ActionType = "Idle" ActionTypeIdle ActionType = "Idle"
// ActionTypeJWTAdd in scopes Normal. Adds new JWT to the pool // ActionTypeJWTAdd in scopes Normal. Adds new JWT to the pool
ActionTypeJWTAdd ActionType = "JWTAdd" ActionTypeJWTAdd ActionType = "JWTAdd"
// ActionTypeJWTClean in scopes Normal. Remove JWT key from the pool // ActionTypeJWTClean in scopes Normal. Remove JWT key from the pool
ActionTypeJWTClean ActionType = "JWTClean" ActionTypeJWTClean ActionType = "JWTClean"
// ActionTypeJWTPropagated in scopes Normal. Update condition of JWT propagation // ActionTypeJWTPropagated in scopes Normal. Update condition of JWT propagation
ActionTypeJWTPropagated ActionType = "JWTPropagated" ActionTypeJWTPropagated ActionType = "JWTPropagated"
// ActionTypeJWTRefresh in scopes Normal. Refresh current JWT secrets on the member // ActionTypeJWTRefresh in scopes Normal. Refresh current JWT secrets on the member
ActionTypeJWTRefresh ActionType = "JWTRefresh" ActionTypeJWTRefresh ActionType = "JWTRefresh"
// ActionTypeJWTSetActive in scopes Normal. Change active JWT key on the cluster // ActionTypeJWTSetActive in scopes Normal. Change active JWT key on the cluster
ActionTypeJWTSetActive ActionType = "JWTSetActive" ActionTypeJWTSetActive ActionType = "JWTSetActive"
// ActionTypeJWTStatusUpdate in scopes Normal. Update status of JWT propagation // ActionTypeJWTStatusUpdate in scopes Normal. Update status of JWT propagation
ActionTypeJWTStatusUpdate ActionType = "JWTStatusUpdate" ActionTypeJWTStatusUpdate ActionType = "JWTStatusUpdate"
// ActionTypeKillMemberPod in scopes Normal. Execute Delete on Pod 9put pod in Terminating state) // ActionTypeKillMemberPod in scopes Normal. Execute Delete on Pod 9put pod in Terminating state)
ActionTypeKillMemberPod ActionType = "KillMemberPod" ActionTypeKillMemberPod ActionType = "KillMemberPod"
// ActionTypeLicenseSet in scopes Normal. Update Cluster license (3.9+) // ActionTypeLicenseSet in scopes Normal. Update Cluster license (3.9+)
ActionTypeLicenseSet ActionType = "LicenseSet" ActionTypeLicenseSet ActionType = "LicenseSet"
// ActionTypeMarkToRemoveMember in scopes Normal. Marks member to be removed. Used when member Pod is annotated with replace annotation // ActionTypeMarkToRemoveMember in scopes Normal. Marks member to be removed. Used when member Pod is annotated with replace annotation
ActionTypeMarkToRemoveMember ActionType = "MarkToRemoveMember" ActionTypeMarkToRemoveMember ActionType = "MarkToRemoveMember"
// ActionTypeMemberPhaseUpdate in scopes High. Change member phase // ActionTypeMemberPhaseUpdate in scopes High. Change member phase
ActionTypeMemberPhaseUpdate ActionType = "MemberPhaseUpdate" ActionTypeMemberPhaseUpdate ActionType = "MemberPhaseUpdate"
// ActionTypeMemberRIDUpdate in scopes High. Update Run ID of member // ActionTypeMemberRIDUpdate in scopes High. Update Run ID of member
//
// Deprecated: action is not used anymore
ActionTypeMemberRIDUpdate ActionType = "MemberRIDUpdate" ActionTypeMemberRIDUpdate ActionType = "MemberRIDUpdate"
// ActionTypePVCResize in scopes Normal. Start the resize procedure. Updates PVC Requests field // ActionTypePVCResize in scopes Normal. Start the resize procedure. Updates PVC Requests field
ActionTypePVCResize ActionType = "PVCResize" ActionTypePVCResize ActionType = "PVCResize"
// ActionTypePVCResized in scopes Normal. Waits for PVC resize to be completed // ActionTypePVCResized in scopes Normal. Waits for PVC resize to be completed
ActionTypePVCResized ActionType = "PVCResized" ActionTypePVCResized ActionType = "PVCResized"
// ActionTypePlaceHolder in scopes Normal. Empty placeholder action // ActionTypePlaceHolder in scopes Normal. Empty placeholder action
ActionTypePlaceHolder ActionType = "PlaceHolder" ActionTypePlaceHolder ActionType = "PlaceHolder"
// ActionTypeRebalancerCheck in scopes Normal. Check Rebalancer job progress // ActionTypeRebalancerCheck in scopes Normal. Check Rebalancer job progress
ActionTypeRebalancerCheck ActionType = "RebalancerCheck" ActionTypeRebalancerCheck ActionType = "RebalancerCheck"
// ActionTypeRebalancerCheckV2 in scopes Normal. Check Rebalancer job progress // ActionTypeRebalancerCheckV2 in scopes Normal. Check Rebalancer job progress
ActionTypeRebalancerCheckV2 ActionType = "RebalancerCheckV2" ActionTypeRebalancerCheckV2 ActionType = "RebalancerCheckV2"
// ActionTypeRebalancerClean in scopes Normal. Cleans Rebalancer jobs // ActionTypeRebalancerClean in scopes Normal. Cleans Rebalancer jobs
ActionTypeRebalancerClean ActionType = "RebalancerClean" ActionTypeRebalancerClean ActionType = "RebalancerClean"
// ActionTypeRebalancerCleanV2 in scopes Normal. Cleans Rebalancer jobs // ActionTypeRebalancerCleanV2 in scopes Normal. Cleans Rebalancer jobs
ActionTypeRebalancerCleanV2 ActionType = "RebalancerCleanV2" ActionTypeRebalancerCleanV2 ActionType = "RebalancerCleanV2"
// ActionTypeRebalancerGenerate in scopes Normal. Generates the Rebalancer plan // ActionTypeRebalancerGenerate in scopes Normal. Generates the Rebalancer plan
ActionTypeRebalancerGenerate ActionType = "RebalancerGenerate" ActionTypeRebalancerGenerate ActionType = "RebalancerGenerate"
// ActionTypeRebalancerGenerateV2 in scopes Normal. Generates the Rebalancer plan // ActionTypeRebalancerGenerateV2 in scopes Normal. Generates the Rebalancer plan
ActionTypeRebalancerGenerateV2 ActionType = "RebalancerGenerateV2" ActionTypeRebalancerGenerateV2 ActionType = "RebalancerGenerateV2"
// ActionTypeRebuildOutSyncedShards in scopes High. Run Rebuild Out Synced Shards procedure for DBServers // ActionTypeRebuildOutSyncedShards in scopes High. Run Rebuild Out Synced Shards procedure for DBServers
ActionTypeRebuildOutSyncedShards ActionType = "RebuildOutSyncedShards" ActionTypeRebuildOutSyncedShards ActionType = "RebuildOutSyncedShards"
// ActionTypeRecreateMember in scopes Normal. Recreate member with same ID and Data // ActionTypeRecreateMember in scopes Normal. Recreate member with same ID and Data
ActionTypeRecreateMember ActionType = "RecreateMember" ActionTypeRecreateMember ActionType = "RecreateMember"
// ActionTypeRefreshTLSKeyfileCertificate in scopes Normal. Recreate Server TLS Certificate secret // ActionTypeRefreshTLSKeyfileCertificate in scopes Normal. Recreate Server TLS Certificate secret
ActionTypeRefreshTLSKeyfileCertificate ActionType = "RefreshTLSKeyfileCertificate" ActionTypeRefreshTLSKeyfileCertificate ActionType = "RefreshTLSKeyfileCertificate"
// ActionTypeRemoveMember in scopes Normal. Removes member from the Cluster and Status // ActionTypeRemoveMember in scopes Normal. Removes member from the Cluster and Status
ActionTypeRemoveMember ActionType = "RemoveMember" ActionTypeRemoveMember ActionType = "RemoveMember"
// ActionTypeRemoveMemberPVC in scopes Normal. Removes member PVC and enforce recreate procedure // ActionTypeRemoveMemberPVC in scopes Normal. Removes member PVC and enforce recreate procedure
ActionTypeRemoveMemberPVC ActionType = "RemoveMemberPVC" ActionTypeRemoveMemberPVC ActionType = "RemoveMemberPVC"
// ActionTypeRenewTLSCACertificate in scopes Normal. Recreate Managed CA secret // ActionTypeRenewTLSCACertificate in scopes Normal. Recreate Managed CA secret
ActionTypeRenewTLSCACertificate ActionType = "RenewTLSCACertificate" ActionTypeRenewTLSCACertificate ActionType = "RenewTLSCACertificate"
// ActionTypeRenewTLSCertificate in scopes Normal. Recreate Server TLS Certificate secret // ActionTypeRenewTLSCertificate in scopes Normal. Recreate Server TLS Certificate secret
ActionTypeRenewTLSCertificate ActionType = "RenewTLSCertificate" ActionTypeRenewTLSCertificate ActionType = "RenewTLSCertificate"
// ActionTypeResignLeadership in scopes Normal. Run the ResignLeadership job on DBServer // ActionTypeResignLeadership in scopes Normal. Run the ResignLeadership job on DBServer
ActionTypeResignLeadership ActionType = "ResignLeadership" ActionTypeResignLeadership ActionType = "ResignLeadership"
// ActionTypeResourceSync in scopes Normal. Runs the Resource sync // ActionTypeResourceSync in scopes Normal. Runs the Resource sync
ActionTypeResourceSync ActionType = "ResourceSync" ActionTypeResourceSync ActionType = "ResourceSync"
// ActionTypeRotateMember in scopes Normal. Waits for Pod restart and recreation // ActionTypeRotateMember in scopes Normal. Waits for Pod restart and recreation
ActionTypeRotateMember ActionType = "RotateMember" ActionTypeRotateMember ActionType = "RotateMember"
// ActionTypeRotateStartMember in scopes Normal. Start member rotation. After this action member is down // ActionTypeRotateStartMember in scopes Normal. Start member rotation. After this action member is down
ActionTypeRotateStartMember ActionType = "RotateStartMember" ActionTypeRotateStartMember ActionType = "RotateStartMember"
// ActionTypeRotateStopMember in scopes Normal. Finalize member rotation. After this action member is started back // ActionTypeRotateStopMember in scopes Normal. Finalize member rotation. After this action member is started back
ActionTypeRotateStopMember ActionType = "RotateStopMember" ActionTypeRotateStopMember ActionType = "RotateStopMember"
// ActionTypeRuntimeContainerArgsLogLevelUpdate in scopes Normal. Change ArangoDB Member log levels in runtime // ActionTypeRuntimeContainerArgsLogLevelUpdate in scopes Normal. Change ArangoDB Member log levels in runtime
ActionTypeRuntimeContainerArgsLogLevelUpdate ActionType = "RuntimeContainerArgsLogLevelUpdate" ActionTypeRuntimeContainerArgsLogLevelUpdate ActionType = "RuntimeContainerArgsLogLevelUpdate"
// ActionTypeRuntimeContainerImageUpdate in scopes Normal. Update Container Image in runtime // ActionTypeRuntimeContainerImageUpdate in scopes Normal. Update Container Image in runtime
ActionTypeRuntimeContainerImageUpdate ActionType = "RuntimeContainerImageUpdate" ActionTypeRuntimeContainerImageUpdate ActionType = "RuntimeContainerImageUpdate"
// ActionTypeRuntimeContainerSyncTolerations in scopes Normal. Update Pod Tolerations in runtime // ActionTypeRuntimeContainerSyncTolerations in scopes Normal. Update Pod Tolerations in runtime
ActionTypeRuntimeContainerSyncTolerations ActionType = "RuntimeContainerSyncTolerations" ActionTypeRuntimeContainerSyncTolerations ActionType = "RuntimeContainerSyncTolerations"
// ActionTypeSetCondition in scopes High. (Deprecated) Set deployment condition
// ActionTypeSetCondition in scopes High. Set deployment condition
//
// Deprecated: action is not used anymore
ActionTypeSetCondition ActionType = "SetCondition" ActionTypeSetCondition ActionType = "SetCondition"
// ActionTypeSetConditionV2 in scopes High. Set deployment condition // ActionTypeSetConditionV2 in scopes High. Set deployment condition
ActionTypeSetConditionV2 ActionType = "SetConditionV2" ActionTypeSetConditionV2 ActionType = "SetConditionV2"
// ActionTypeSetCurrentImage in scopes Normal. Update deployment current image after image discovery // ActionTypeSetCurrentImage in scopes Normal. Update deployment current image after image discovery
ActionTypeSetCurrentImage ActionType = "SetCurrentImage" ActionTypeSetCurrentImage ActionType = "SetCurrentImage"
// ActionTypeSetCurrentMemberArch in scopes Normal. Set current member architecture // ActionTypeSetCurrentMemberArch in scopes Normal. Set current member architecture
ActionTypeSetCurrentMemberArch ActionType = "SetCurrentMemberArch" ActionTypeSetCurrentMemberArch ActionType = "SetCurrentMemberArch"
// ActionTypeSetMaintenanceCondition in scopes Normal. Update ArangoDB maintenance condition // ActionTypeSetMaintenanceCondition in scopes Normal. Update ArangoDB maintenance condition
ActionTypeSetMaintenanceCondition ActionType = "SetMaintenanceCondition" ActionTypeSetMaintenanceCondition ActionType = "SetMaintenanceCondition"
// ActionTypeSetMemberCondition in scopes High. (Deprecated) Set member condition
// ActionTypeSetMemberCondition in scopes High. Set member condition
//
// Deprecated: action is not used anymore
ActionTypeSetMemberCondition ActionType = "SetMemberCondition" ActionTypeSetMemberCondition ActionType = "SetMemberCondition"
// ActionTypeSetMemberConditionV2 in scopes High. Set member condition // ActionTypeSetMemberConditionV2 in scopes High. Set member condition
ActionTypeSetMemberConditionV2 ActionType = "SetMemberConditionV2" ActionTypeSetMemberConditionV2 ActionType = "SetMemberConditionV2"
// ActionTypeSetMemberCurrentImage in scopes Normal. Update Member current image // ActionTypeSetMemberCurrentImage in scopes Normal. Update Member current image
ActionTypeSetMemberCurrentImage ActionType = "SetMemberCurrentImage" ActionTypeSetMemberCurrentImage ActionType = "SetMemberCurrentImage"
// ActionTypeShutdownMember in scopes Normal. Sends Shutdown requests and waits for container to be stopped // ActionTypeShutdownMember in scopes Normal. Sends Shutdown requests and waits for container to be stopped
ActionTypeShutdownMember ActionType = "ShutdownMember" ActionTypeShutdownMember ActionType = "ShutdownMember"
// ActionTypeTLSKeyStatusUpdate in scopes Normal. Update Status of TLS propagation process // ActionTypeTLSKeyStatusUpdate in scopes Normal. Update Status of TLS propagation process
ActionTypeTLSKeyStatusUpdate ActionType = "TLSKeyStatusUpdate" ActionTypeTLSKeyStatusUpdate ActionType = "TLSKeyStatusUpdate"
// ActionTypeTLSPropagated in scopes Normal. Update TLS propagation condition // ActionTypeTLSPropagated in scopes Normal. Update TLS propagation condition
ActionTypeTLSPropagated ActionType = "TLSPropagated" ActionTypeTLSPropagated ActionType = "TLSPropagated"
// ActionTypeTimezoneSecretSet in scopes Normal. Set timezone details in cluster // ActionTypeTimezoneSecretSet in scopes Normal. Set timezone details in cluster
ActionTypeTimezoneSecretSet ActionType = "TimezoneSecretSet" ActionTypeTimezoneSecretSet ActionType = "TimezoneSecretSet"
// ActionTypeTopologyDisable in scopes Normal. Disable TopologyAwareness // ActionTypeTopologyDisable in scopes Normal. Disable TopologyAwareness
ActionTypeTopologyDisable ActionType = "TopologyDisable" ActionTypeTopologyDisable ActionType = "TopologyDisable"
// ActionTypeTopologyEnable in scopes Normal. Enable TopologyAwareness // ActionTypeTopologyEnable in scopes Normal. Enable TopologyAwareness
ActionTypeTopologyEnable ActionType = "TopologyEnable" ActionTypeTopologyEnable ActionType = "TopologyEnable"
// ActionTypeTopologyMemberAssignment in scopes Normal. Update TopologyAwareness Members assignments // ActionTypeTopologyMemberAssignment in scopes Normal. Update TopologyAwareness Members assignments
ActionTypeTopologyMemberAssignment ActionType = "TopologyMemberAssignment" ActionTypeTopologyMemberAssignment ActionType = "TopologyMemberAssignment"
// ActionTypeTopologyZonesUpdate in scopes Normal. Update TopologyAwareness Zones info // ActionTypeTopologyZonesUpdate in scopes Normal. Update TopologyAwareness Zones info
ActionTypeTopologyZonesUpdate ActionType = "TopologyZonesUpdate" ActionTypeTopologyZonesUpdate ActionType = "TopologyZonesUpdate"
// ActionTypeUpToDateUpdate in scopes Normal. Update UpToDate condition // ActionTypeUpToDateUpdate in scopes Normal. Update UpToDate condition
ActionTypeUpToDateUpdate ActionType = "UpToDateUpdate" ActionTypeUpToDateUpdate ActionType = "UpToDateUpdate"
// ActionTypeUpdateTLSSNI in scopes Normal. Update certificate in SNI // ActionTypeUpdateTLSSNI in scopes Normal. Update certificate in SNI
ActionTypeUpdateTLSSNI ActionType = "UpdateTLSSNI" ActionTypeUpdateTLSSNI ActionType = "UpdateTLSSNI"
// ActionTypeUpgradeMember in scopes Normal. Run the Upgrade procedure on member // ActionTypeUpgradeMember in scopes Normal. Run the Upgrade procedure on member
ActionTypeUpgradeMember ActionType = "UpgradeMember" 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 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" ActionTypeWaitForMemberInSync ActionType = "WaitForMemberInSync"
// ActionTypeWaitForMemberReady in scopes Normal. Wait for member Ready condition // ActionTypeWaitForMemberReady in scopes Normal. Wait for member Ready condition
ActionTypeWaitForMemberReady ActionType = "WaitForMemberReady" ActionTypeWaitForMemberReady ActionType = "WaitForMemberReady"
// ActionTypeWaitForMemberUp in scopes Normal. Wait for member to be responsive // ActionTypeWaitForMemberUp in scopes Normal. Wait for member to be responsive
ActionTypeWaitForMemberUp ActionType = "WaitForMemberUp" ActionTypeWaitForMemberUp ActionType = "WaitForMemberUp"
) )

View file

@ -286,6 +286,19 @@ func (p Plan) Before(action ...Action) Plan {
return n return n
} }
// WrapWithPlan wraps plan with plan
func (p Plan) WrapWithPlan(before, after Plan) Plan {
n := Plan{}
n = append(n, before...)
n = append(n, p...)
n = append(n, after...)
return n
}
// Wrap wraps plan with actions // Wrap wraps plan with actions
func (p Plan) Wrap(before, after Action) Plan { func (p Plan) Wrap(before, after Action) Plan {
n := Plan{} n := Plan{}

File diff suppressed because it is too large Load diff

View file

@ -161,11 +161,14 @@ func Test_Actions(t *testing.T) {
}) })
t.Run("DisableClusterScaling", func(t *testing.T) { t.Run("DisableClusterScaling", func(t *testing.T) {
// nolint:staticcheck
ActionsExistence(t, api.ActionTypeDisableClusterScaling) ActionsExistence(t, api.ActionTypeDisableClusterScaling)
t.Run("Internal", func(t *testing.T) { t.Run("Internal", func(t *testing.T) {
// nolint:staticcheck
require.False(t, api.ActionTypeDisableClusterScaling.Internal()) require.False(t, api.ActionTypeDisableClusterScaling.Internal())
}) })
t.Run("Optional", func(t *testing.T) { t.Run("Optional", func(t *testing.T) {
// nolint:staticcheck
require.False(t, api.ActionTypeDisableClusterScaling.Optional()) require.False(t, api.ActionTypeDisableClusterScaling.Optional())
}) })
}) })
@ -191,11 +194,14 @@ func Test_Actions(t *testing.T) {
}) })
t.Run("EnableClusterScaling", func(t *testing.T) { t.Run("EnableClusterScaling", func(t *testing.T) {
// nolint:staticcheck
ActionsExistence(t, api.ActionTypeEnableClusterScaling) ActionsExistence(t, api.ActionTypeEnableClusterScaling)
t.Run("Internal", func(t *testing.T) { t.Run("Internal", func(t *testing.T) {
// nolint:staticcheck
require.False(t, api.ActionTypeEnableClusterScaling.Internal()) require.False(t, api.ActionTypeEnableClusterScaling.Internal())
}) })
t.Run("Optional", func(t *testing.T) { t.Run("Optional", func(t *testing.T) {
// nolint:staticcheck
require.False(t, api.ActionTypeEnableClusterScaling.Optional()) require.False(t, api.ActionTypeEnableClusterScaling.Optional())
}) })
}) })
@ -381,11 +387,14 @@ func Test_Actions(t *testing.T) {
}) })
t.Run("MemberRIDUpdate", func(t *testing.T) { t.Run("MemberRIDUpdate", func(t *testing.T) {
// nolint:staticcheck
ActionsExistence(t, api.ActionTypeMemberRIDUpdate) ActionsExistence(t, api.ActionTypeMemberRIDUpdate)
t.Run("Internal", func(t *testing.T) { t.Run("Internal", func(t *testing.T) {
// nolint:staticcheck
require.False(t, api.ActionTypeMemberRIDUpdate.Internal()) require.False(t, api.ActionTypeMemberRIDUpdate.Internal())
}) })
t.Run("Optional", func(t *testing.T) { t.Run("Optional", func(t *testing.T) {
// nolint:staticcheck
require.False(t, api.ActionTypeMemberRIDUpdate.Optional()) require.False(t, api.ActionTypeMemberRIDUpdate.Optional())
}) })
}) })
@ -633,11 +642,14 @@ func Test_Actions(t *testing.T) {
}) })
t.Run("SetCondition", func(t *testing.T) { t.Run("SetCondition", func(t *testing.T) {
// nolint:staticcheck
ActionsExistence(t, api.ActionTypeSetCondition) ActionsExistence(t, api.ActionTypeSetCondition)
t.Run("Internal", func(t *testing.T) { t.Run("Internal", func(t *testing.T) {
// nolint:staticcheck
require.False(t, api.ActionTypeSetCondition.Internal()) require.False(t, api.ActionTypeSetCondition.Internal())
}) })
t.Run("Optional", func(t *testing.T) { t.Run("Optional", func(t *testing.T) {
// nolint:staticcheck
require.False(t, api.ActionTypeSetCondition.Optional()) require.False(t, api.ActionTypeSetCondition.Optional())
}) })
}) })
@ -683,11 +695,14 @@ func Test_Actions(t *testing.T) {
}) })
t.Run("SetMemberCondition", func(t *testing.T) { t.Run("SetMemberCondition", func(t *testing.T) {
// nolint:staticcheck
ActionsExistence(t, api.ActionTypeSetMemberCondition) ActionsExistence(t, api.ActionTypeSetMemberCondition)
t.Run("Internal", func(t *testing.T) { t.Run("Internal", func(t *testing.T) {
// nolint:staticcheck
require.False(t, api.ActionTypeSetMemberCondition.Internal()) require.False(t, api.ActionTypeSetMemberCondition.Internal())
}) })
t.Run("Optional", func(t *testing.T) { t.Run("Optional", func(t *testing.T) {
// nolint:staticcheck
require.False(t, api.ActionTypeSetMemberCondition.Optional()) require.False(t, api.ActionTypeSetMemberCondition.Optional())
}) })
}) })

View file

@ -1,55 +0,0 @@
//
// DISCLAIMER
//
// Copyright 2016-2023 ArangoDB GmbH, Cologne, Germany
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// Copyright holder is ArangoDB GmbH, Cologne, Germany
//
package reconcile
import (
"context"
api "github.com/arangodb/kube-arangodb/pkg/apis/deployment/v1"
"github.com/arangodb/kube-arangodb/pkg/util"
)
// newDisableClusterScalingAction creates the new action with disabling scaling DBservers and coordinators.
func newDisableClusterScalingAction(action api.Action, actionCtx ActionContext) Action {
a := &actionDisableClusterScaling{}
a.actionImpl = newActionImpl(action, actionCtx, util.NewType[string](""))
return a
}
// actionDisableClusterScaling implements disabling scaling DBservers and coordinators.
type actionDisableClusterScaling struct {
// actionImpl implement timeout and member id functions
actionImpl
// actionEmptyCheckProgress implement check progress with empty implementation
actionEmptyCheckProgress
}
// Start disables scaling DBservers and coordinators
func (a *actionDisableClusterScaling) Start(ctx context.Context) (bool, error) {
err := a.actionCtx.DisableScalingCluster(ctx)
if err != nil {
return false, err
}
return true, nil
}

View file

@ -1,55 +0,0 @@
//
// DISCLAIMER
//
// Copyright 2016-2023 ArangoDB GmbH, Cologne, Germany
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// Copyright holder is ArangoDB GmbH, Cologne, Germany
//
package reconcile
import (
"context"
api "github.com/arangodb/kube-arangodb/pkg/apis/deployment/v1"
"github.com/arangodb/kube-arangodb/pkg/util"
)
// newEnableClusterScalingAction creates the new action with enabling scaling DBservers and coordinators.
func newEnableClusterScalingAction(action api.Action, actionCtx ActionContext) Action {
a := &actionEnableClusterScaling{}
a.actionImpl = newActionImpl(action, actionCtx, util.NewType[string](""))
return a
}
// actionEnableClusterScaling implements enabling scaling DBservers and coordinators.
type actionEnableClusterScaling struct {
// actionImpl implement timeout and member id functions
actionImpl
// actionEmptyCheckProgress implement check progress with empty implementation
actionEmptyCheckProgress
}
// Start enables scaling DBservers and coordinators
func (a *actionEnableClusterScaling) Start(ctx context.Context) (bool, error) {
err := a.actionCtx.EnableScalingCluster(ctx)
if err != nil {
return false, err
}
return true, nil
}

View file

@ -1,7 +1,7 @@
// //
// DISCLAIMER // DISCLAIMER
// //
// Copyright 2016-2022 ArangoDB GmbH, Cologne, Germany // Copyright 2016-2023 ArangoDB GmbH, Cologne, Germany
// //
// Licensed under the Apache License, Version 2.0 (the "License"); // Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License. // you may not use this file except in compliance with the License.
@ -27,6 +27,7 @@ import (
api "github.com/arangodb/kube-arangodb/pkg/apis/deployment/v1" api "github.com/arangodb/kube-arangodb/pkg/apis/deployment/v1"
"github.com/arangodb/kube-arangodb/pkg/logging" "github.com/arangodb/kube-arangodb/pkg/logging"
"github.com/arangodb/kube-arangodb/pkg/util/assertion"
) )
var ( var (
@ -123,3 +124,25 @@ func (a actionImpl) wrap(in *zerolog.Event) *zerolog.Event {
func (a actionImpl) MemberID() string { func (a actionImpl) MemberID() string {
return *a.memberIDRef return *a.memberIDRef
} }
func newDeprecatedAction(action api.Action, actionCtx ActionContext) Action {
a := actionDeprecated{}
a.actionImpl = newActionImplDefRef(action, actionCtx)
return a
}
type actionDeprecated struct {
actionImpl
actionEmptyCheckProgress
}
func (a actionDeprecated) Start(ctx context.Context) (bool, error) {
a.log.Warn("Deprecated Action call")
assertion.Assert(true, assertion.DeprecatedActionKey, "Action %s is deprecated", a.action.Type.String())
return true, nil
}

View file

@ -1,37 +0,0 @@
//
// DISCLAIMER
//
// Copyright 2016-2022 ArangoDB GmbH, Cologne, Germany
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// Copyright holder is ArangoDB GmbH, Cologne, Germany
//
package reconcile
import (
api "github.com/arangodb/kube-arangodb/pkg/apis/deployment/v1"
)
func newMemberRIDUpdateAction(action api.Action, actionCtx ActionContext) Action {
a := &actionMemberRIDUpdate{}
a.actionImpl = newActionImplDefRef(action, actionCtx)
return a
}
type actionMemberRIDUpdate struct {
actionEmpty
}

View file

@ -1,82 +0,0 @@
//
// DISCLAIMER
//
// Copyright 2016-2022 ArangoDB GmbH, Cologne, Germany
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// Copyright holder is ArangoDB GmbH, Cologne, Germany
//
package reconcile
import (
"context"
"strconv"
api "github.com/arangodb/kube-arangodb/pkg/apis/deployment/v1"
)
func newSetConditionAction(action api.Action, actionCtx ActionContext) Action {
a := &actionSetCondition{}
a.actionImpl = newActionImplDefRef(action, actionCtx)
return a
}
type actionSetCondition struct {
// actionImpl implement timeout and member id functions
actionImpl
actionEmptyCheckProgress
}
// Start starts the action for changing conditions on the provided member.
func (a actionSetCondition) Start(ctx context.Context) (bool, error) {
if len(a.action.Params) == 0 {
a.log.Info("can not start the action with the empty list of conditions")
return true, nil
}
if err := a.actionCtx.WithStatusUpdate(ctx, func(s *api.DeploymentStatus) bool {
changed := false
for condition, value := range a.action.Params {
if value == "" {
a.log.Debug("remove the condition")
if s.Conditions.Remove(api.ConditionType(condition)) {
changed = true
}
} else {
set, err := strconv.ParseBool(value)
if err != nil {
a.log.Err(err).Str("value", value).Error("can not parse string to boolean")
continue
}
a.log.Debug("set the condition")
if s.Conditions.Update(api.ConditionType(condition), set, a.action.Reason, "action set the member condition") {
changed = true
}
}
}
return changed
}); err != nil {
a.log.Err(err).Warn("Unable to set condition")
return true, nil
}
return true, nil
}

View file

@ -1,82 +0,0 @@
//
// DISCLAIMER
//
// Copyright 2016-2022 ArangoDB GmbH, Cologne, Germany
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// Copyright holder is ArangoDB GmbH, Cologne, Germany
//
package reconcile
import (
"context"
"strconv"
api "github.com/arangodb/kube-arangodb/pkg/apis/deployment/v1"
"github.com/arangodb/kube-arangodb/pkg/util/errors"
)
func newSetMemberConditionAction(action api.Action, actionCtx ActionContext) Action {
a := &actionSetMemberCondition{}
a.actionImpl = newActionImplDefRef(action, actionCtx)
return a
}
type actionSetMemberCondition struct {
// actionImpl implement timeout and member id functions
actionImpl
actionEmptyCheckProgress
}
// Start starts the action for changing conditions on the provided member.
func (a actionSetMemberCondition) Start(ctx context.Context) (bool, error) {
m, ok := a.actionCtx.GetMemberStatusByID(a.action.MemberID)
if !ok {
a.log.Info("can not set the condition because the member is gone already")
return true, nil
}
if len(a.action.Params) == 0 {
a.log.Info("can not start the action with the empty list of conditions")
return true, nil
}
for condition, value := range a.action.Params {
if value == "" {
a.log.Debug("remove the condition")
m.Conditions.Remove(api.ConditionType(condition))
} else {
set, err := strconv.ParseBool(value)
if err != nil {
a.log.Err(err).Str("value", value).Error("can not parse string to boolean")
continue
}
a.log.Debug("set the condition")
m.Conditions.Update(api.ConditionType(condition), set, a.action.Reason, "action set the member condition")
}
}
if err := a.actionCtx.UpdateMember(ctx, m); err != nil {
return false, errors.Wrap(errors.WithStack(err), "can not update the member")
}
return true, nil
}

View file

@ -123,15 +123,18 @@ func (r *Reconciler) updateMemberPhasePlan(ctx context.Context, apiObject k8suti
} }
func pendingRestartMemberConditionAction(group api.ServerGroup, memberID string, reason string) api.Action { func pendingRestartMemberConditionAction(group api.ServerGroup, memberID string, reason string) api.Action {
return actions.NewAction(api.ActionTypeSetMemberCondition, group, shared.WithPredefinedMember(memberID), reason).AddParam(api.ConditionTypePendingRestart.String(), "T") return shared.UpdateMemberConditionActionV2(reason, api.ConditionTypePendingRestart, group, memberID, true, reason, "", "")
} }
func restartMemberConditionAction(group api.ServerGroup, memberID string, reason string) api.Action { func restartMemberConditionAction(group api.ServerGroup, memberID string, reason string) api.Plan {
return pendingRestartMemberConditionAction(group, memberID, reason).AddParam(api.ConditionTypeRestart.String(), "T") return api.Plan{
pendingRestartMemberConditionAction(group, memberID, reason),
shared.UpdateMemberConditionActionV2(reason, api.ConditionTypeRestart, group, memberID, true, reason, "", ""),
}
} }
func tlsRotateConditionAction(group api.ServerGroup, memberID string, reason string) api.Action { func tlsRotateConditionAction(group api.ServerGroup, memberID string, reason string) api.Action {
return actions.NewAction(api.ActionTypeSetMemberCondition, group, shared.WithPredefinedMember(memberID), reason).AddParam(api.ConditionTypePendingTLSRotation.String(), "T") return shared.UpdateMemberConditionActionV2(reason, api.ConditionTypePendingTLSRotation, group, memberID, true, reason, "", "")
} }
func (r *Reconciler) updateMemberUpdateConditionsPlan(ctx context.Context, apiObject k8sutil.APIObject, func (r *Reconciler) updateMemberUpdateConditionsPlan(ctx context.Context, apiObject k8sutil.APIObject,
@ -144,13 +147,11 @@ func (r *Reconciler) updateMemberUpdateConditionsPlan(ctx context.Context, apiOb
// We are in updating phase // We are in updating phase
if status.Plan.IsEmpty() { if status.Plan.IsEmpty() {
// If plan is empty then something went wrong // If plan is empty then something went wrong
plan = append(plan, plan = append(plan, shared.RemoveMemberConditionActionV2("Clean update actions after failure", api.ConditionTypePendingUpdate, e.Group, e.Member.ID),
actions.NewAction(api.ActionTypeSetMemberCondition, e.Group, e.Member, "Clean update actions after failure"). shared.RemoveMemberConditionActionV2("Clean update actions after failure", api.ConditionTypeUpdating, e.Group, e.Member.ID),
AddParam(api.ConditionTypePendingUpdate.String(), ""). shared.UpdateMemberConditionActionV2("Clean update actions after failure", api.ConditionTypeUpdateFailed, e.Group, e.Member.ID, true, "Clean update actions after failure", "", ""),
AddParam(api.ConditionTypeUpdating.String(), ""). shared.UpdateMemberConditionActionV2("Clean update actions after failure", api.ConditionTypePendingRestart, e.Group, e.Member.ID, true, "Clean update actions after failure", "", ""))
AddParam(api.ConditionTypeUpdateFailed.String(), "T").
AddParam(api.ConditionTypePendingRestart.String(), "T"),
)
} }
} }
} }
@ -207,7 +208,7 @@ func (r *Reconciler) updateMemberRotationConditions(apiObject k8sutil.APIObject,
r.log.Bool("enforced", true).Info("Unknown reason") r.log.Bool("enforced", true).Info("Unknown reason")
} }
// We need to do enforced rotation // We need to do enforced rotation
return api.Plan{restartMemberConditionAction(group, member.ID, reason)}, nil return restartMemberConditionAction(group, member.ID, reason), nil
case rotation.InPlaceRotation: case rotation.InPlaceRotation:
if member.Conditions.IsTrue(api.ConditionTypeUpdateFailed) { if member.Conditions.IsTrue(api.ConditionTypeUpdateFailed) {
if !(member.Conditions.IsTrue(api.ConditionTypePendingRestart) || member.Conditions.IsTrue(api.ConditionTypeRestart)) { if !(member.Conditions.IsTrue(api.ConditionTypePendingRestart) || member.Conditions.IsTrue(api.ConditionTypeRestart)) {
@ -217,7 +218,7 @@ func (r *Reconciler) updateMemberRotationConditions(apiObject k8sutil.APIObject,
} else if member.Conditions.IsTrue(api.ConditionTypeUpdating) || member.Conditions.IsTrue(api.ConditionTypePendingUpdate) { } else if member.Conditions.IsTrue(api.ConditionTypeUpdating) || member.Conditions.IsTrue(api.ConditionTypePendingUpdate) {
return nil, nil return nil, nil
} }
return api.Plan{actions.NewAction(api.ActionTypeSetMemberCondition, group, member, reason).AddParam(api.ConditionTypePendingUpdate.String(), "T")}, nil return api.Plan{shared.UpdateMemberConditionActionV2(reason, api.ConditionTypePendingUpdate, group, member.ID, true, reason, "", "")}, nil
case rotation.SilentRotation: case rotation.SilentRotation:
// Propagate changes without restart, but apply plan if required // Propagate changes without restart, but apply plan if required
plan = append(plan, actions.NewAction(api.ActionTypeArangoMemberUpdatePodStatus, group, member, "Propagating status of pod").AddParam(ActionTypeArangoMemberUpdatePodStatusChecksum, checksum)) plan = append(plan, actions.NewAction(api.ActionTypeArangoMemberUpdatePodStatus, group, member, "Propagating status of pod").AddParam(ActionTypeArangoMemberUpdatePodStatusChecksum, checksum))
@ -234,7 +235,7 @@ func (r *Reconciler) updateMemberRotationConditions(apiObject k8sutil.APIObject,
} }
if spec.MemberPropagationMode.Get() == api.DeploymentMemberPropagationModeAlways { if spec.MemberPropagationMode.Get() == api.DeploymentMemberPropagationModeAlways {
return api.Plan{restartMemberConditionAction(group, member.ID, reason)}, nil return restartMemberConditionAction(group, member.ID, reason), nil
} else { } else {
return api.Plan{pendingRestartMemberConditionAction(group, member.ID, reason)}, nil return api.Plan{pendingRestartMemberConditionAction(group, member.ID, reason)}, nil
} }

View file

@ -203,9 +203,10 @@ func (r *Reconciler) createUpdatePlanInternal(apiObject k8sutil.APIObject, spec
if svc, ok := cache.Service().V1().GetSimple(arangoMember.GetName()); ok { if svc, ok := cache.Service().V1().GetSimple(arangoMember.GetName()); ok {
if k8sutil.IsServiceRotationRequired(spec, svc) { if k8sutil.IsServiceRotationRequired(spec, svc) {
return api.Plan{actions.NewAction(api.ActionTypeSetMemberCondition, m.Group, m.Member, "Cleaning update"). return api.Plan{
AddParam(api.ConditionTypePendingUpdate.String(), ""). shared.RemoveMemberConditionActionV2("Cleaning update", api.ConditionTypePendingUpdate, m.Group, m.Member.ID),
AddParam(api.ConditionTypeUpdating.String(), "T")}, false shared.UpdateMemberConditionActionV2("Cleaning update", api.ConditionTypeUpdating, m.Group, m.Member.ID, true, "Cleaning update", "", ""),
}, false
} }
} }
@ -213,18 +214,20 @@ func (r *Reconciler) createUpdatePlanInternal(apiObject k8sutil.APIObject, spec
r.planLogger.Err(err).Str("member", m.Member.ID).Error("Error while generating update plan") r.planLogger.Err(err).Str("member", m.Member.ID).Error("Error while generating update plan")
continue continue
} else if mode != rotation.InPlaceRotation { } else if mode != rotation.InPlaceRotation {
return api.Plan{actions.NewAction(api.ActionTypeSetMemberCondition, m.Group, m.Member, "Cleaning update"). return api.Plan{
AddParam(api.ConditionTypePendingUpdate.String(), ""). shared.RemoveMemberConditionActionV2(reason, api.ConditionTypePendingUpdate, m.Group, m.Member.ID),
AddParam(api.ConditionTypeUpdating.String(), "T")}, false shared.UpdateMemberConditionActionV2(reason, api.ConditionTypeUpdating, m.Group, m.Member.ID, true, reason, "", ""),
}, false
} else { } else {
p = withWaitForMember(p, m.Group, m.Member) p = withWaitForMember(p, m.Group, m.Member)
p = append(p, actions.NewAction(api.ActionTypeArangoMemberUpdatePodStatus, m.Group, m.Member, "Propagating status of pod").AddParam(ActionTypeArangoMemberUpdatePodStatusChecksum, checksum)) p = append(p, actions.NewAction(api.ActionTypeArangoMemberUpdatePodStatus, m.Group, m.Member, "Propagating status of pod").AddParam(ActionTypeArangoMemberUpdatePodStatusChecksum, checksum))
p.WrapWithPlan(api.Plan{
p = p.Wrap(actions.NewAction(api.ActionTypeSetMemberCondition, m.Group, m.Member, reason). shared.RemoveMemberConditionActionV2(reason, api.ConditionTypePendingUpdate, m.Group, m.Member.ID),
AddParam(api.ConditionTypePendingUpdate.String(), "").AddParam(api.ConditionTypeUpdating.String(), "T"), shared.UpdateMemberConditionActionV2(reason, api.ConditionTypeUpdating, m.Group, m.Member.ID, true, reason, "", ""),
actions.NewAction(api.ActionTypeSetMemberCondition, m.Group, m.Member, reason). }, api.Plan{
AddParam(api.ConditionTypeUpdating.String(), "")) shared.RemoveMemberConditionActionV2(reason, api.ConditionTypeUpdating, m.Group, m.Member.ID),
})
return p, false return p, false
} }

View file

@ -28,6 +28,7 @@ type Key string
const ( const (
KeyUnknown Key = "" KeyUnknown Key = ""
DeprecatedActionKey Key = "DeprecatedAction"
) )
func (k Key) Assert(condition bool, msg string, args ...interface{}) { func (k Key) Assert(condition bool, msg string, args ...interface{}) {