mirror of
https://github.com/arangodb/kube-arangodb.git
synced 2024-12-14 11:57:37 +00:00
[Feature] Action PlaceHolder (#1121)
This commit is contained in:
parent
39532e8aa5
commit
837175813c
9 changed files with 97 additions and 0 deletions
|
@ -1,6 +1,7 @@
|
||||||
# Change Log
|
# Change Log
|
||||||
|
|
||||||
## [master](https://github.com/arangodb/kube-arangodb/tree/master) (N/A)
|
## [master](https://github.com/arangodb/kube-arangodb/tree/master) (N/A)
|
||||||
|
- (Feature) Define Actions PlaceHolder
|
||||||
|
|
||||||
## [1.2.17](https://github.com/arangodb/kube-arangodb/tree/1.2.17) (2022-09-22)
|
## [1.2.17](https://github.com/arangodb/kube-arangodb/tree/1.2.17) (2022-09-22)
|
||||||
- (Feature) Add new field to DeploymentReplicationStatus with details on DC2DC sync status=
|
- (Feature) Add new field to DeploymentReplicationStatus with details on DC2DC sync status=
|
||||||
|
|
|
@ -41,6 +41,7 @@
|
||||||
| MemberRIDUpdate | 10m0s | Community & Enterprise | Update Run ID of member |
|
| MemberRIDUpdate | 10m0s | Community & Enterprise | Update Run ID of member |
|
||||||
| PVCResize | 30m0s | Community & Enterprise | Start the resize procedure. Updates PVC Requests field |
|
| PVCResize | 30m0s | Community & Enterprise | Start the resize procedure. Updates PVC Requests field |
|
||||||
| PVCResized | 15m0s | Community & Enterprise | Waits for PVC resize to be completed |
|
| PVCResized | 15m0s | Community & Enterprise | Waits for PVC resize to be completed |
|
||||||
|
| PlaceHolder | 10m0s | Community & Enterprise | Empty placeholder action |
|
||||||
| RebalancerCheck | 10m0s | Enterprise Only | Check Rebalancer job progress |
|
| RebalancerCheck | 10m0s | Enterprise Only | Check Rebalancer job progress |
|
||||||
| RebalancerClean | 10m0s | Enterprise Only | Cleans Rebalancer jobs |
|
| RebalancerClean | 10m0s | Enterprise Only | Cleans Rebalancer jobs |
|
||||||
| RebalancerGenerate | 10m0s | Enterprise Only | Generates the Rebalancer plan |
|
| RebalancerGenerate | 10m0s | Enterprise Only | Generates the Rebalancer plan |
|
||||||
|
@ -121,6 +122,7 @@ spec:
|
||||||
MemberRIDUpdate: 10m0s
|
MemberRIDUpdate: 10m0s
|
||||||
PVCResize: 30m0s
|
PVCResize: 30m0s
|
||||||
PVCResized: 15m0s
|
PVCResized: 15m0s
|
||||||
|
PlaceHolder: 10m0s
|
||||||
RebalancerCheck: 10m0s
|
RebalancerCheck: 10m0s
|
||||||
RebalancerClean: 10m0s
|
RebalancerClean: 10m0s
|
||||||
RebalancerGenerate: 10m0s
|
RebalancerGenerate: 10m0s
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
default_timeout: 10m
|
default_timeout: 10m
|
||||||
|
|
||||||
actions:
|
actions:
|
||||||
|
PlaceHolder:
|
||||||
|
description: Empty placeholder action
|
||||||
Idle:
|
Idle:
|
||||||
description: Define idle operation in case if preconditions are not meet
|
description: Define idle operation in case if preconditions are not meet
|
||||||
AddMember:
|
AddMember:
|
||||||
|
|
|
@ -99,6 +99,8 @@ const (
|
||||||
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 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
|
||||||
// ActionRebalancerCleanDefaultTimeout define default timeout for action ActionRebalancerClean
|
// ActionRebalancerCleanDefaultTimeout define default timeout for action ActionRebalancerClean
|
||||||
|
@ -246,6 +248,8 @@ const (
|
||||||
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 ActionType = "PlaceHolder"
|
||||||
// ActionTypeRebalancerCheck in scopes Normal. Check Rebalancer job progress
|
// ActionTypeRebalancerCheck in scopes Normal. Check Rebalancer job progress
|
||||||
ActionTypeRebalancerCheck ActionType = "RebalancerCheck"
|
ActionTypeRebalancerCheck ActionType = "RebalancerCheck"
|
||||||
// ActionTypeRebalancerClean in scopes Normal. Cleans Rebalancer jobs
|
// ActionTypeRebalancerClean in scopes Normal. Cleans Rebalancer jobs
|
||||||
|
@ -394,6 +398,8 @@ func ActionDefaultTimeout(in ActionType) time.Duration {
|
||||||
return ActionPVCResizeDefaultTimeout
|
return ActionPVCResizeDefaultTimeout
|
||||||
case ActionTypePVCResized:
|
case ActionTypePVCResized:
|
||||||
return ActionPVCResizedDefaultTimeout
|
return ActionPVCResizedDefaultTimeout
|
||||||
|
case ActionTypePlaceHolder:
|
||||||
|
return ActionPlaceHolderDefaultTimeout
|
||||||
case ActionTypeRebalancerCheck:
|
case ActionTypeRebalancerCheck:
|
||||||
return ActionRebalancerCheckDefaultTimeout
|
return ActionRebalancerCheckDefaultTimeout
|
||||||
case ActionTypeRebalancerClean:
|
case ActionTypeRebalancerClean:
|
||||||
|
@ -545,6 +551,8 @@ func GetActionPriority(in ActionType) ActionPriority {
|
||||||
return ActionPriorityNormal
|
return ActionPriorityNormal
|
||||||
case ActionTypePVCResized:
|
case ActionTypePVCResized:
|
||||||
return ActionPriorityNormal
|
return ActionPriorityNormal
|
||||||
|
case ActionTypePlaceHolder:
|
||||||
|
return ActionPriorityNormal
|
||||||
case ActionTypeRebalancerCheck:
|
case ActionTypeRebalancerCheck:
|
||||||
return ActionPriorityNormal
|
return ActionPriorityNormal
|
||||||
case ActionTypeRebalancerClean:
|
case ActionTypeRebalancerClean:
|
||||||
|
|
|
@ -99,6 +99,8 @@ const (
|
||||||
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 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
|
||||||
// ActionRebalancerCleanDefaultTimeout define default timeout for action ActionRebalancerClean
|
// ActionRebalancerCleanDefaultTimeout define default timeout for action ActionRebalancerClean
|
||||||
|
@ -246,6 +248,8 @@ const (
|
||||||
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 ActionType = "PlaceHolder"
|
||||||
// ActionTypeRebalancerCheck in scopes Normal. Check Rebalancer job progress
|
// ActionTypeRebalancerCheck in scopes Normal. Check Rebalancer job progress
|
||||||
ActionTypeRebalancerCheck ActionType = "RebalancerCheck"
|
ActionTypeRebalancerCheck ActionType = "RebalancerCheck"
|
||||||
// ActionTypeRebalancerClean in scopes Normal. Cleans Rebalancer jobs
|
// ActionTypeRebalancerClean in scopes Normal. Cleans Rebalancer jobs
|
||||||
|
@ -394,6 +398,8 @@ func ActionDefaultTimeout(in ActionType) time.Duration {
|
||||||
return ActionPVCResizeDefaultTimeout
|
return ActionPVCResizeDefaultTimeout
|
||||||
case ActionTypePVCResized:
|
case ActionTypePVCResized:
|
||||||
return ActionPVCResizedDefaultTimeout
|
return ActionPVCResizedDefaultTimeout
|
||||||
|
case ActionTypePlaceHolder:
|
||||||
|
return ActionPlaceHolderDefaultTimeout
|
||||||
case ActionTypeRebalancerCheck:
|
case ActionTypeRebalancerCheck:
|
||||||
return ActionRebalancerCheckDefaultTimeout
|
return ActionRebalancerCheckDefaultTimeout
|
||||||
case ActionTypeRebalancerClean:
|
case ActionTypeRebalancerClean:
|
||||||
|
@ -545,6 +551,8 @@ func GetActionPriority(in ActionType) ActionPriority {
|
||||||
return ActionPriorityNormal
|
return ActionPriorityNormal
|
||||||
case ActionTypePVCResized:
|
case ActionTypePVCResized:
|
||||||
return ActionPriorityNormal
|
return ActionPriorityNormal
|
||||||
|
case ActionTypePlaceHolder:
|
||||||
|
return ActionPriorityNormal
|
||||||
case ActionTypeRebalancerCheck:
|
case ActionTypeRebalancerCheck:
|
||||||
return ActionPriorityNormal
|
return ActionPriorityNormal
|
||||||
case ActionTypeRebalancerClean:
|
case ActionTypeRebalancerClean:
|
||||||
|
|
|
@ -138,6 +138,9 @@ var (
|
||||||
_ Action = &actionPVCResized{}
|
_ Action = &actionPVCResized{}
|
||||||
_ actionFactory = newPVCResizedAction
|
_ actionFactory = newPVCResizedAction
|
||||||
|
|
||||||
|
_ Action = &actionPlaceHolder{}
|
||||||
|
_ actionFactory = newPlaceHolderAction
|
||||||
|
|
||||||
_ Action = &actionRebalancerCheck{}
|
_ Action = &actionRebalancerCheck{}
|
||||||
_ actionFactory = newRebalancerCheckAction
|
_ actionFactory = newRebalancerCheckAction
|
||||||
|
|
||||||
|
@ -691,6 +694,18 @@ func init() {
|
||||||
registerAction(action, function)
|
registerAction(action, function)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// PlaceHolder
|
||||||
|
{
|
||||||
|
// Get Action defition
|
||||||
|
function := newPlaceHolderAction
|
||||||
|
action := api.ActionTypePlaceHolder
|
||||||
|
|
||||||
|
// Wrap action main function
|
||||||
|
|
||||||
|
// Register action
|
||||||
|
registerAction(action, function)
|
||||||
|
}
|
||||||
|
|
||||||
// RebalancerCheck
|
// RebalancerCheck
|
||||||
{
|
{
|
||||||
// Get Action defition
|
// Get Action defition
|
||||||
|
|
|
@ -178,6 +178,10 @@ func Test_Actions(t *testing.T) {
|
||||||
ActionsExistence(t, api.ActionTypePVCResized)
|
ActionsExistence(t, api.ActionTypePVCResized)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
t.Run("PlaceHolder", func(t *testing.T) {
|
||||||
|
ActionsExistence(t, api.ActionTypePlaceHolder)
|
||||||
|
})
|
||||||
|
|
||||||
t.Run("RebalancerCheck", func(t *testing.T) {
|
t.Run("RebalancerCheck", func(t *testing.T) {
|
||||||
ActionsExistence(t, api.ActionTypeRebalancerCheck)
|
ActionsExistence(t, api.ActionTypeRebalancerCheck)
|
||||||
})
|
})
|
||||||
|
|
26
pkg/deployment/reconcile/action_placeholder.community.go
Normal file
26
pkg/deployment/reconcile/action_placeholder.community.go
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
//
|
||||||
|
// 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
|
||||||
|
//go:build !enterprise
|
||||||
|
// +build !enterprise
|
||||||
|
|
||||||
|
package reconcile
|
||||||
|
|
||||||
|
type actionPlaceHolder struct {
|
||||||
|
actionEmpty
|
||||||
|
}
|
31
pkg/deployment/reconcile/action_placeholder.go
Normal file
31
pkg/deployment/reconcile/action_placeholder.go
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
//
|
||||||
|
// 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 newPlaceHolderAction(action api.Action, actionCtx ActionContext) Action {
|
||||||
|
a := &actionPlaceHolder{}
|
||||||
|
|
||||||
|
a.actionImpl = newActionImplDefRef(action, actionCtx)
|
||||||
|
|
||||||
|
return a
|
||||||
|
}
|
Loading…
Reference in a new issue