Skip to content

Commit 6008832

Browse files
authored
convert field CRDUpgradeSafetyPolicy to be an enum (#1159)
Signed-off-by: yashoza19 <[email protected]>
1 parent 37c64bd commit 6008832

File tree

3 files changed

+23
-8
lines changed

3 files changed

+23
-8
lines changed

api/v1alpha1/clusterextension_types.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ var (
2828
)
2929

3030
type UpgradeConstraintPolicy string
31+
type CRDUpgradeSafetyPolicy string
3132

3233
const (
3334
// The extension will only upgrade if the new version satisfies
@@ -108,14 +109,16 @@ type ServiceAccountReference struct {
108109
type PreflightConfig struct {
109110
//+kubebuilder:Required
110111
// CRDUpgradeSafety holds necessary configuration for the CRD Upgrade Safety preflight checks.
111-
CRDUpgradeSafety *CRDUpgradeSafetyPreflightConfig `json:"crdUpgradeSafety,omitempty"`
112+
CRDUpgradeSafety *CRDUpgradeSafetyPreflightConfig `json:"crdUpgradeSafety"`
112113
}
113114

114115
// CRDUpgradeSafetyPreflightConfig is the configuration for CRD upgrade safety preflight check.
115116
type CRDUpgradeSafetyPreflightConfig struct {
116117
//+kubebuilder:Required
117-
// Disabled represents the state of the CRD upgrade safety preflight check being disabled/enabled.
118-
Disabled bool `json:"disabled,omitempty"`
118+
//+kubebuilder:validation:Enum:="Enabled";"Disabled"
119+
//+kubebuilder:default:=Enabled
120+
// policy represents the state of the CRD upgrade safety preflight check. Allowed values are "Enabled", and Disabled".
121+
Policy CRDUpgradeSafetyPolicy `json:"policy"`
119122
}
120123

121124
const (
@@ -145,6 +148,9 @@ const (
145148
ReasonUnpackFailed = "UnpackFailed"
146149

147150
ReasonErrorGettingReleaseState = "ErrorGettingReleaseState"
151+
152+
CRDUpgradeSafetyPolicyEnabled CRDUpgradeSafetyPolicy = "Enabled"
153+
CRDUpgradeSafetyPolicyDisabled CRDUpgradeSafetyPolicy = "Disabled"
148154
)
149155

150156
func init() {

config/base/crd/bases/olm.operatorframework.io_clusterextensions.yaml

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,11 +115,20 @@ spec:
115115
description: CRDUpgradeSafety holds necessary configuration for
116116
the CRD Upgrade Safety preflight checks.
117117
properties:
118-
disabled:
119-
description: Disabled represents the state of the CRD upgrade
120-
safety preflight check being disabled/enabled.
121-
type: boolean
118+
policy:
119+
default: Enabled
120+
description: policy represents the state of the CRD upgrade
121+
safety preflight check. Allowed values are "Enabled", and
122+
Disabled".
123+
enum:
124+
- Enabled
125+
- Disabled
126+
type: string
127+
required:
128+
- policy
122129
type: object
130+
required:
131+
- crdUpgradeSafety
123132
type: object
124133
serviceAccount:
125134
description: |-

internal/applier/helm.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ func (h *Helm) Apply(ctx context.Context, contentFS fs.FS, ext *ocv1alpha1.Clust
7070

7171
for _, preflight := range h.Preflights {
7272
if ext.Spec.Preflight != nil && ext.Spec.Preflight.CRDUpgradeSafety != nil {
73-
if _, ok := preflight.(*crdupgradesafety.Preflight); ok && ext.Spec.Preflight.CRDUpgradeSafety.Disabled {
73+
if _, ok := preflight.(*crdupgradesafety.Preflight); ok && ext.Spec.Preflight.CRDUpgradeSafety.Policy == ocv1alpha1.CRDUpgradeSafetyPolicyDisabled {
7474
// Skip this preflight check because it is of type *crdupgradesafety.Preflight and the CRD Upgrade Safety
7575
// preflight check has been disabled
7676
continue

0 commit comments

Comments
 (0)