@@ -94,69 +94,66 @@ var (
94
94
)
95
95
96
96
var (
97
- testRegistryClient * helmreg.Client
98
- testRegistryserver * RegistryClientTestServer
97
+ testRegistryserver * registryClientTestServer
99
98
)
100
99
101
100
var (
102
- testWorkspaceDir = "registry-test"
103
- testHtpasswdFileBasename = "authtest.htpasswd"
104
- testUsername = "myuser"
105
- testPassword = "mypass"
101
+ testRegistryWorkspaceDir = "/tmp/ registry-test"
102
+ testRegistryHtpasswdFileBasename = "authtest.htpasswd"
103
+ testRegistryUsername = "myuser"
104
+ testRegistryPassword = "mypass"
106
105
)
107
106
108
107
func init () {
109
108
rand .Seed (time .Now ().UnixNano ())
110
109
}
111
110
112
- type RegistryClientTestServer struct {
113
- Out io.Writer
114
- DockerRegistryHost string
115
- WorkspaceDir string
116
- RegistryClient * helmreg.Client
111
+ type registryClientTestServer struct {
112
+ out io.Writer
113
+ dockerRegistryHost string
114
+ workspaceDir string
115
+ registryClient * helmreg.Client
117
116
}
118
117
119
- func SetupServer (server * RegistryClientTestServer ) string {
118
+ func setupRegistryServer (ctx context.Context ) (* registryClientTestServer , error ) {
119
+ server := & registryClientTestServer {}
120
120
// Create a temporary workspace directory for the registry
121
- server .WorkspaceDir = testWorkspaceDir
122
- os .RemoveAll (server .WorkspaceDir )
123
- err := os .Mkdir (server .WorkspaceDir , 0700 )
121
+ server .workspaceDir = testRegistryWorkspaceDir
122
+ os .RemoveAll (server .workspaceDir )
123
+ err := os .Mkdir (server .workspaceDir , 0o700 )
124
124
if err != nil {
125
- panic ( fmt .Sprintf ("failed to create workspace directory: %s" , err ) )
125
+ return nil , fmt .Errorf ("failed to create workspace directory: %s" , err )
126
126
}
127
127
128
128
var out bytes.Buffer
129
- server .Out = & out
129
+ server .out = & out
130
130
131
131
// init test client
132
- server .RegistryClient , err = helmreg .NewClient (
132
+ server .registryClient , err = helmreg .NewClient (
133
133
helmreg .ClientOptDebug (true ),
134
- helmreg .ClientOptWriter (server .Out ),
134
+ helmreg .ClientOptWriter (server .out ),
135
135
)
136
136
if err != nil {
137
- panic ( fmt .Sprintf ("failed to create registry client: %s" , err ) )
137
+ return nil , fmt .Errorf ("failed to create registry client: %s" , err )
138
138
}
139
139
140
140
// create htpasswd file (w BCrypt, which is required)
141
- pwBytes , err := bcrypt .GenerateFromPassword ([]byte (testPassword ), bcrypt .DefaultCost )
141
+ pwBytes , err := bcrypt .GenerateFromPassword ([]byte (testRegistryPassword ), bcrypt .DefaultCost )
142
142
if err != nil {
143
- panic ( fmt .Sprintf ("failed to generate password: %s" , err ) )
143
+ return nil , fmt .Errorf ("failed to generate password: %s" , err )
144
144
}
145
145
146
- htpasswdPath := filepath .Join (testWorkspaceDir , testHtpasswdFileBasename )
147
- err = ioutil .WriteFile (htpasswdPath , []byte (fmt .Sprintf ("%s:%s\n " , testUsername , string (pwBytes ))), 0644 )
146
+ htpasswdPath := filepath .Join (testRegistryWorkspaceDir , testRegistryHtpasswdFileBasename )
147
+ err = ioutil .WriteFile (htpasswdPath , []byte (fmt .Sprintf ("%s:%s\n " , testRegistryUsername , string (pwBytes ))), 0644 )
148
148
if err != nil {
149
- panic ( fmt .Sprintf ("failed to create htpasswd file: %s" , err ) )
149
+ return nil , fmt .Errorf ("failed to create htpasswd file: %s" , err )
150
150
}
151
151
152
152
// Registry config
153
153
config := & configuration.Configuration {}
154
154
port , err := freeport .GetFreePort ()
155
- if err != nil {
156
- panic (fmt .Sprintf ("failed to get free port: %s" , err ))
157
- }
158
155
159
- server .DockerRegistryHost = fmt .Sprintf ("localhost:%d" , port )
156
+ server .dockerRegistryHost = fmt .Sprintf ("localhost:%d" , port )
160
157
config .HTTP .Addr = fmt .Sprintf ("127.0.0.1:%d" , port )
161
158
config .HTTP .DrainTimeout = time .Duration (10 ) * time .Second
162
159
config .Storage = map [string ]configuration.Parameters {"inmemory" : map [string ]interface {}{}}
@@ -166,15 +163,15 @@ func SetupServer(server *RegistryClientTestServer) string {
166
163
"path" : htpasswdPath ,
167
164
},
168
165
}
169
- dockerRegistry , err := dockerRegistry .NewRegistry (context . Background () , config )
166
+ dockerRegistry , err := dockerRegistry .NewRegistry (ctx , config )
170
167
if err != nil {
171
- panic ( fmt .Sprintf ("failed to create docker registry: %s" , err ) )
168
+ return nil , fmt .Errorf ("failed to create docker registry: %s" , err )
172
169
}
173
170
174
171
// Start Docker registry
175
172
go dockerRegistry .ListenAndServe ()
176
173
177
- return server . WorkspaceDir
174
+ return server , nil
178
175
}
179
176
180
177
func TestMain (m * testing.M ) {
@@ -199,12 +196,9 @@ func TestMain(m *testing.M) {
199
196
200
197
testMetricsH = controller .MustMakeMetrics (testEnv )
201
198
202
- testRegistryserver = & RegistryClientTestServer {}
203
- registryWorkspaceDir := SetupServer (testRegistryserver )
204
-
205
- testRegistryClient , err = helmreg .NewClient (helmreg .ClientOptWriter (os .Stdout ))
199
+ testRegistryserver , err = setupRegistryServer (ctx )
206
200
if err != nil {
207
- panic (fmt .Sprintf ("Failed to create OCI registry client" ))
201
+ panic (fmt .Sprintf ("Failed to create a test registry server: %v" , err ))
208
202
}
209
203
210
204
if err := (& GitRepositoryReconciler {
@@ -282,7 +276,7 @@ func TestMain(m *testing.M) {
282
276
panic (fmt .Sprintf ("Failed to remove storage server dir: %v" , err ))
283
277
}
284
278
285
- if err := os .RemoveAll (registryWorkspaceDir ); err != nil {
279
+ if err := os .RemoveAll (testRegistryserver . workspaceDir ); err != nil {
286
280
panic (fmt .Sprintf ("Failed to remove registry workspace dir: %v" , err ))
287
281
}
288
282
0 commit comments