From ddb402df44f5274e0e5d19d5ed0b45e81f6a273f Mon Sep 17 00:00:00 2001 From: Kirill Sibirev Date: Thu, 18 Apr 2024 17:09:24 +0200 Subject: [PATCH] Strategy = selector + flow --- api/v1/ytsaurus_types.go | 33 ++++++++++----- .../bases/cluster.ytsaurus.tech_ytsaurus.yaml | 8 ++-- docs/api.md | 42 ++++++++++++------- ytop-chart/templates/ytsaurus-crd.yaml | 8 ++-- 4 files changed, 57 insertions(+), 34 deletions(-) diff --git a/api/v1/ytsaurus_types.go b/api/v1/ytsaurus_types.go index fc32a1d6..6e0effe0 100644 --- a/api/v1/ytsaurus_types.go +++ b/api/v1/ytsaurus_types.go @@ -547,9 +547,9 @@ type YtsaurusSpec struct { //+optional EnableFullUpdate bool `json:"enableFullUpdate"` //+optional - // UpdateStrategy is an experimental field. Behaviour may change. - // If UpdateStrategy is not empty EnableFullUpdate is ignored. - UpdateStrategy UpdateStrategy `json:"updateStrategy"` + // UpdateSelector is an experimental field. Behaviour may change. + // If UpdateSelector is not empty EnableFullUpdate is ignored. + UpdateSelector UpdateSelector `json:"updateSelector"` Bootstrap *BootstrapSpec `json:"bootstrap,omitempty"` @@ -622,22 +622,33 @@ type TabletCellBundleInfo struct { TabletCellCount int `yson:"tablet_cell_count,attr" json:"tabletCellCount"` } -type UpdateStrategy string +type UpdateSelector string const ( - UpdateStrategyNone UpdateStrategy = "" - UpdateStrategyBlocked UpdateStrategy = "Blocked" - UpdateStrategyStatelessOnly UpdateStrategy = "StatelessOnly" - UpdateStrategyMasterOnly UpdateStrategy = "MasterOnly" - UpdateStrategyTabletNodesOnly UpdateStrategy = "TabletNodesOnly" - UpdateStrategyFull UpdateStrategy = "Full" + UpdateSelectorNone UpdateSelector = "" + UpdateSelectorNothing UpdateSelector = "Nothing" + UpdateSelectorStatelessOnly UpdateSelector = "StatelessOnly" + UpdateSelectorMasterOnly UpdateSelector = "MasterOnly" + UpdateSelectorTabletNodesOnly UpdateSelector = "TabletNodesOnly" + UpdateSelectorExecNodesOnly UpdateSelector = "ExecNodesOnly" + UpdateSelectorEverything UpdateSelector = "Everything" +) + +type UpdateFlow string + +const ( + UpdateFlowNone UpdateFlow = "" + UpdateFlowStateless UpdateFlow = "Stateless" + UpdateFlowMaster UpdateFlow = "Master" + UpdateFlowTabletNodes UpdateFlow = "TabletNodes" + UpdateFlowFull UpdateFlow = "Full" ) type UpdateStatus struct { //+kubebuilder:default:=None State UpdateState `json:"state,omitempty"` Components []string `json:"components,omitempty"` - Strategy UpdateStrategy `json:"updateStrategy,omitempty"` + Flow UpdateFlow `json:"flow,omitempty"` Conditions []metav1.Condition `json:"conditions,omitempty"` TabletCellBundles []TabletCellBundleInfo `json:"tabletCellBundles,omitempty"` MasterMonitoringPaths []string `json:"masterMonitoringPaths,omitempty"` diff --git a/config/crd/bases/cluster.ytsaurus.tech_ytsaurus.yaml b/config/crd/bases/cluster.ytsaurus.tech_ytsaurus.yaml index 6c0a580e..40010734 100644 --- a/config/crd/bases/cluster.ytsaurus.tech_ytsaurus.yaml +++ b/config/crd/bases/cluster.ytsaurus.tech_ytsaurus.yaml @@ -33433,8 +33433,8 @@ spec: type: object uiImage: type: string - updateStrategy: - description: UpdateStrategy is an experimental field. Behaviour may + updateSelector: + description: UpdateSelector is an experimental field. Behaviour may change. type: string useIpv4: @@ -35887,6 +35887,8 @@ spec: - type type: object type: array + flow: + type: string masterMonitoringPaths: items: type: string @@ -35906,8 +35908,6 @@ spec: - tabletCellCount type: object type: array - updateStrategy: - type: string type: object type: object type: object diff --git a/docs/api.md b/docs/api.md index a0b6a400..1d337965 100644 --- a/docs/api.md +++ b/docs/api.md @@ -1461,7 +1461,7 @@ _Appears in:_ | `group` _string_ | | | | -#### UpdateState +#### UpdateFlow _Underlying type:_ _string_ @@ -1474,28 +1474,20 @@ _Appears in:_ -#### UpdateStatus - +#### UpdateSelector +_Underlying type:_ _string_ _Appears in:_ -- [YtsaurusStatus](#ytsaurusstatus) +- [YtsaurusSpec](#ytsaurusspec) -| Field | Description | Default | Validation | -| --- | --- | --- | --- | -| `state` _[UpdateState](#updatestate)_ | | None | | -| `components` _string array_ | | | | -| `updateStrategy` _[UpdateStrategy](#updatestrategy)_ | | | | -| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#condition-v1-meta) array_ | | | | -| `tabletCellBundles` _[TabletCellBundleInfo](#tabletcellbundleinfo) array_ | | | | -| `masterMonitoringPaths` _string array_ | | | | -#### UpdateStrategy +#### UpdateState _Underlying type:_ _string_ @@ -1505,10 +1497,30 @@ _Underlying type:_ _string_ _Appears in:_ - [UpdateStatus](#updatestatus) -- [YtsaurusSpec](#ytsaurusspec) +#### UpdateStatus + + + + + + + +_Appears in:_ +- [YtsaurusStatus](#ytsaurusstatus) + +| Field | Description | Default | Validation | +| --- | --- | --- | --- | +| `state` _[UpdateState](#updatestate)_ | | None | | +| `components` _string array_ | | | | +| `flow` _[UpdateFlow](#updateflow)_ | | | | +| `conditions` _[Condition](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#condition-v1-meta) array_ | | | | +| `tabletCellBundles` _[TabletCellBundleInfo](#tabletcellbundleinfo) array_ | | | | +| `masterMonitoringPaths` _string array_ | | | | + + #### YQLAgentSpec @@ -1592,7 +1604,7 @@ _Appears in:_ | `oauthService` _[OauthServiceSpec](#oauthservicespec)_ | | | | | `isManaged` _boolean_ | | true | | | `enableFullUpdate` _boolean_ | | true | | -| `updateStrategy` _[UpdateStrategy](#updatestrategy)_ | UpdateStrategy is an experimental field. Behaviour may change.
If UpdateStrategy is not empty EnableFullUpdate is ignored. | | | +| `updateSelector` _[UpdateSelector](#updateselector)_ | UpdateSelector is an experimental field. Behaviour may change.
If UpdateSelector is not empty EnableFullUpdate is ignored. | | | | `bootstrap` _[BootstrapSpec](#bootstrapspec)_ | | | | | `discovery` _[DiscoverySpec](#discoveryspec)_ | | | | | `primaryMasters` _[MastersSpec](#mastersspec)_ | | | | diff --git a/ytop-chart/templates/ytsaurus-crd.yaml b/ytop-chart/templates/ytsaurus-crd.yaml index d4f0939f..e863a0b1 100644 --- a/ytop-chart/templates/ytsaurus-crd.yaml +++ b/ytop-chart/templates/ytsaurus-crd.yaml @@ -33220,8 +33220,8 @@ spec: type: object uiImage: type: string - updateStrategy: - description: UpdateStrategy is an experimental field. Behaviour may + updateSelector: + description: UpdateSelector is an experimental field. Behaviour may change. type: string useIpv4: @@ -35655,6 +35655,8 @@ spec: - type type: object type: array + flow: + type: string masterMonitoringPaths: items: type: string @@ -35674,8 +35676,6 @@ spec: - tabletCellCount type: object type: array - updateStrategy: - type: string type: object type: object type: object