@@ -44,6 +44,18 @@ type csvUpdater interface {
44
44
apply (* olmapiv1alpha1.ClusterServiceVersion ) error
45
45
}
46
46
47
+ // Get install strategy from csv. Default to a deployment strategy if none found.
48
+ func getCSVInstallStrategy (csv * olmapiv1alpha1.ClusterServiceVersion ) (strategy olminstall.Strategy , err error ) {
49
+ if len (csv .Spec .InstallStrategy .StrategySpecRaw ) == 0 {
50
+ if csv .Spec .InstallStrategy .StrategyName == "" {
51
+ csv .Spec .InstallStrategy .StrategyName = olminstall .InstallStrategyNameDeployment
52
+ }
53
+ return & olminstall.StrategyDetailsDeployment {}, nil
54
+ }
55
+ return (& olminstall.StrategyResolver {}).UnmarshalStrategy (csv .Spec .InstallStrategy )
56
+ }
57
+
58
+ // Set csv's spec.install to strategy.
47
59
func setCSVInstallStrategy (csv * olmapiv1alpha1.ClusterServiceVersion , strategy olminstall.Strategy ) error {
48
60
sb , err := json .Marshal (strategy )
49
61
if err != nil {
@@ -58,12 +70,10 @@ type roles [][]byte
58
70
var _ csvUpdater = roles {}
59
71
60
72
func (us roles ) apply (csv * olmapiv1alpha1.ClusterServiceVersion ) (err error ) {
61
- // Get install strategy from csv. Default to a deployment strategy if none found.
62
- strategy , err := (& olminstall.StrategyResolver {}).UnmarshalStrategy (csv .Spec .InstallStrategy )
73
+ strategy , err := getCSVInstallStrategy (csv )
63
74
if err != nil {
64
75
return err
65
76
}
66
-
67
77
switch s := strategy .(type ) {
68
78
case * olminstall.StrategyDetailsDeployment :
69
79
perms := []olminstall.StrategyDeploymentPermissions {}
@@ -90,12 +100,10 @@ type clusterRoles [][]byte
90
100
var _ csvUpdater = clusterRoles {}
91
101
92
102
func (us clusterRoles ) apply (csv * olmapiv1alpha1.ClusterServiceVersion ) (err error ) {
93
- // Get install strategy from csv. Default to a deployment strategy if none found.
94
- strategy , err := (& olminstall.StrategyResolver {}).UnmarshalStrategy (csv .Spec .InstallStrategy )
103
+ strategy , err := getCSVInstallStrategy (csv )
95
104
if err != nil {
96
105
return err
97
106
}
98
-
99
107
switch s := strategy .(type ) {
100
108
case * olminstall.StrategyDetailsDeployment :
101
109
perms := []olminstall.StrategyDeploymentPermissions {}
@@ -122,8 +130,7 @@ type deployments [][]byte
122
130
var _ csvUpdater = deployments {}
123
131
124
132
func (us deployments ) apply (csv * olmapiv1alpha1.ClusterServiceVersion ) (err error ) {
125
- // Get install strategy from csv. Default to a deployment strategy if none found.
126
- strategy , err := (& olminstall.StrategyResolver {}).UnmarshalStrategy (csv .Spec .InstallStrategy )
133
+ strategy , err := getCSVInstallStrategy (csv )
127
134
if err != nil {
128
135
return err
129
136
}
0 commit comments