@@ -37,6 +37,13 @@ import (
37
37
"sigs.k8s.io/kubebuilder/pkg/scaffold/v2/webhook"
38
38
)
39
39
40
+ const (
41
+ // controller runtime version to be used in the project
42
+ controllerRuntimeVersion = "v0.2.2"
43
+ // ControllerTools version to be used in the project
44
+ controllerToolsVersion = "v0.2.1"
45
+ )
46
+
40
47
type ProjectScaffolder interface {
41
48
EnsureDependencies () (bool , error )
42
49
Scaffold () error
@@ -147,11 +154,26 @@ func (p *V2Project) Validate() error {
147
154
}
148
155
149
156
func (p * V2Project ) EnsureDependencies () (bool , error ) {
150
- c := exec .Command ("go" , "mod" , "tidy" ) // #nosec
157
+ // ensure that we are pinning controller-runtime version
158
+ // xref: https://github.com/kubernetes-sigs/kubebuilder/issues/997
159
+ c := exec .Command ("go" , "get" , "sigs.k8s.io/controller-runtime@" + controllerRuntimeVersion ) // #nosec
151
160
c .Stderr = os .Stderr
152
161
c .Stdout = os .Stdout
153
162
fmt .Println (strings .Join (c .Args , " " ))
154
- return true , c .Run ()
163
+ err := c .Run ()
164
+ if err != nil {
165
+ return false , err
166
+ }
167
+
168
+ c = exec .Command ("go" , "mod" , "tidy" ) // #nosec
169
+ c .Stderr = os .Stderr
170
+ c .Stdout = os .Stdout
171
+ fmt .Println (strings .Join (c .Args , " " ))
172
+ err = c .Run ()
173
+ if err != nil {
174
+ return false , err
175
+ }
176
+ return true , err
155
177
}
156
178
157
179
func (p * V2Project ) buildUniverse () * model.Universe {
@@ -201,8 +223,8 @@ func (p *V2Project) Scaffold() error {
201
223
& project.AuthProxyRoleBinding {},
202
224
& managerv2.Config {Image : imgName },
203
225
& scaffoldv2.Main {},
204
- & scaffoldv2.GoMod {},
205
- & scaffoldv2.Makefile {Image : imgName },
226
+ & scaffoldv2.GoMod {ControllerRuntimeVersion : controllerRuntimeVersion },
227
+ & scaffoldv2.Makefile {Image : imgName , ControllerToolsVersion : controllerToolsVersion },
206
228
& scaffoldv2.Dockerfile {},
207
229
& scaffoldv2.Kustomize {},
208
230
& scaffoldv2.ManagerWebhookPatch {},
0 commit comments