@@ -13,21 +13,18 @@ import (
13
13
14
14
"github.com/go-logr/logr"
15
15
"github.com/go-logr/zapr"
16
- "github.com/spf13/afero"
17
16
flag "github.com/spf13/pflag"
18
17
"go.uber.org/zap"
19
18
20
19
"sigs.k8s.io/controller-runtime/pkg/envtest/setup"
21
20
"sigs.k8s.io/controller-runtime/pkg/envtest/setup/cleanup"
22
- senv "sigs.k8s.io/controller-runtime/pkg/envtest/setup/env"
21
+ "sigs.k8s.io/controller-runtime/pkg/envtest/setup/env"
23
22
"sigs.k8s.io/controller-runtime/pkg/envtest/setup/list"
24
- sremote "sigs.k8s.io/controller-runtime/pkg/envtest/setup/remote"
23
+ "sigs.k8s.io/controller-runtime/pkg/envtest/setup/remote"
24
+ "sigs.k8s.io/controller-runtime/pkg/envtest/setup/sideload"
25
25
"sigs.k8s.io/controller-runtime/pkg/envtest/setup/use"
26
26
envp "sigs.k8s.io/controller-runtime/tools/setup-envtest/env"
27
- "sigs.k8s.io/controller-runtime/tools/setup-envtest/remote"
28
- "sigs.k8s.io/controller-runtime/tools/setup-envtest/store"
29
27
"sigs.k8s.io/controller-runtime/tools/setup-envtest/versions"
30
- "sigs.k8s.io/controller-runtime/tools/setup-envtest/workflows"
31
28
)
32
29
33
30
const (
@@ -76,61 +73,6 @@ func setupLogging() logr.Logger {
76
73
return zapr .NewLogger (zapLog )
77
74
}
78
75
79
- // setupEnv initializes the environment from flags.
80
- func setupEnv (globalLog logr.Logger , version string ) * envp.Env {
81
- log := globalLog .WithName ("setup" )
82
- if * binDir == "" {
83
- dataDir , err := store .DefaultStoreDir ()
84
- if err != nil {
85
- envp .ExitCause (1 , err , "unable to deterimine default binaries directory (use --bin-dir to manually override)" )
86
- }
87
-
88
- * binDir = dataDir
89
- }
90
- log .V (1 ).Info ("using binaries directory" , "dir" , * binDir )
91
-
92
- env := & envp.Env {
93
- Log : globalLog ,
94
- Client : & remote.Client {
95
- Log : globalLog .WithName ("storage-client" ),
96
- Bucket : * remoteBucket ,
97
- Server : * remoteServer ,
98
- },
99
- VerifySum : * verify ,
100
- ForceDownload : * force ,
101
- NoDownload : * installedOnly ,
102
- Platform : versions.PlatformItem {
103
- Platform : versions.Platform {
104
- OS : * targetOS ,
105
- Arch : * targetArch ,
106
- },
107
- },
108
- FS : afero.Afero {Fs : afero .NewOsFs ()},
109
- Store : store .NewAt (* binDir ),
110
- Out : os .Stdout ,
111
- }
112
-
113
- switch version {
114
- case "" , "latest" :
115
- env .Version = versions .LatestVersion
116
- case "latest-on-disk" :
117
- // we sort by version, latest first, so this'll give us the latest on
118
- // disk (as per the contract from env.List & store.List)
119
- env .Version = versions .AnyVersion
120
- env .NoDownload = true
121
- default :
122
- var err error
123
- env .Version , err = versions .FromExpr (version )
124
- if err != nil {
125
- envp .ExitCause (1 , err , "version be a valid version, or simply 'latest' or 'latest-on-disk'" )
126
- }
127
- }
128
-
129
- env .CheckCoherence ()
130
-
131
- return env
132
- }
133
-
134
76
func main () {
135
77
// exit with appropriate error codes -- this should be the first defer so
136
78
// that it's the last one executed.
@@ -263,7 +205,6 @@ Environment Variables:
263
205
if flag .NArg () > 1 {
264
206
version = flag .Arg (1 )
265
207
}
266
- env := setupEnv (globalLog , version )
267
208
268
209
// perform our main set of actions
269
210
switch action := flag .Arg (0 ); action {
@@ -275,7 +216,7 @@ Environment Variables:
275
216
use .ForceDownload (* force ),
276
217
use .NoDownload (* installedOnly ),
277
218
use .VerifySum (* verify ),
278
- use .WithEnvOption (senv .WithClient (& sremote.Client {
219
+ use .WithEnvOption (env .WithClient (& sremote.Client {
279
220
Bucket : * remoteBucket ,
280
221
Server : * remoteServer ,
281
222
Log : globalLog .WithName ("remote-client" ),
@@ -296,7 +237,7 @@ Environment Variables:
296
237
logr .NewContext (context .Background (), globalLog .WithName ("list" )),
297
238
version ,
298
239
list .NoDownload (* installedOnly ),
299
- list .WithEnvOption (senv .WithClient (& sremote.Client {
240
+ list .WithEnvOption (env .WithClient (& sremote.Client {
300
241
Bucket : * remoteBucket ,
301
242
Server : * remoteServer ,
302
243
Log : globalLog .WithName ("remote-client" ),
@@ -317,11 +258,12 @@ Environment Variables:
317
258
logr .NewContext (context .Background (), globalLog .WithName ("cleanup" )),
318
259
version ,
319
260
cleanup .WithEnvOptions (
320
- senv .WithClient (& sremote .Client {
261
+ env .WithClient (& remote .Client {
321
262
Bucket : * remoteBucket ,
322
263
Server : * remoteServer ,
323
264
Log : globalLog .WithName ("remote-client" ),
324
- })),
265
+ }),
266
+ ),
325
267
cleanup .WithPlatform (* targetOS , * targetArch ),
326
268
)
327
269
@@ -335,10 +277,22 @@ Environment Variables:
335
277
}
336
278
337
279
case "sideload" :
338
- workflows.Sideload {
339
- Input : os .Stdin ,
340
- PrintFormat : printFormat ,
341
- }.Do (env )
280
+ if err := setup .Sideload (
281
+ logr .NewContext (context .Background (), globalLog .WithName ("sideload" )),
282
+ version ,
283
+ sideload .WithInput (os .Stdin ),
284
+ sideload .WithPlatform (* targetOS , * targetArch ),
285
+ sideload .WithEnvOptions (
286
+ env .WithClient (& remote.Client {
287
+ Bucket : * remoteBucket ,
288
+ Server : * remoteServer ,
289
+ Log : globalLog .WithName ("remote-client" ),
290
+ }),
291
+ env .WithStoreAt (* binDir ),
292
+ ),
293
+ ); err != nil {
294
+ envp .Exit (2 , err .Error ())
295
+ }
342
296
default :
343
297
flag .Usage ()
344
298
envp .Exit (2 , "unknown action %q" , action )
0 commit comments