@@ -37,8 +37,8 @@ type SkaffoldConfig struct {
37
37
Profiles []Profile `yaml:"profiles,omitempty"`
38
38
}
39
39
40
- func (config * SkaffoldConfig ) GetVersion () string {
41
- return config .APIVersion
40
+ func (c * SkaffoldConfig ) GetVersion () string {
41
+ return c .APIVersion
42
42
}
43
43
44
44
// BuildConfig contains all the configuration for the build steps
@@ -156,17 +156,38 @@ type BazelArtifact struct {
156
156
BuildTarget string `yaml:"target"`
157
157
}
158
158
159
- func defaultToLocalBuild (config * SkaffoldConfig ) {
160
- if config .Build .BuildType != (BuildType {}) {
159
+ // Parse reads a SkaffoldConfig from yaml.
160
+ func (c * SkaffoldConfig ) Parse (contents []byte , useDefaults bool ) error {
161
+ if err := yaml .Unmarshal (contents , c ); err != nil {
162
+ return err
163
+ }
164
+
165
+ if useDefaults {
166
+ c .setDefaultValues ()
167
+ }
168
+
169
+ return nil
170
+ }
171
+
172
+ func (c * SkaffoldConfig ) setDefaultValues () {
173
+ c .defaultToLocalBuild ()
174
+ c .defaultToDockerArtifacts ()
175
+ c .setDefaultTagger ()
176
+ c .setDefaultDockerfiles ()
177
+ c .setDefaultWorkspaces ()
178
+ }
179
+
180
+ func (c * SkaffoldConfig ) defaultToLocalBuild () {
181
+ if c .Build .BuildType != (BuildType {}) {
161
182
return
162
183
}
163
184
164
185
logrus .Debugf ("Defaulting build type to local build" )
165
- config .Build .BuildType .LocalBuild = & LocalBuild {}
186
+ c .Build .BuildType .LocalBuild = & LocalBuild {}
166
187
}
167
188
168
- func defaultToDockerArtifacts ( config * SkaffoldConfig ) {
169
- for _ , artifact := range config .Build .Artifacts {
189
+ func ( c * SkaffoldConfig ) defaultToDockerArtifacts ( ) {
190
+ for _ , artifact := range c .Build .Artifacts {
170
191
if artifact .ArtifactType != (ArtifactType {}) {
171
192
continue
172
193
}
@@ -177,24 +198,24 @@ func defaultToDockerArtifacts(config *SkaffoldConfig) {
177
198
}
178
199
}
179
200
180
- func setDefaultTagger ( cfg * SkaffoldConfig ) {
181
- if cfg .Build .TagPolicy != (TagPolicy {}) {
201
+ func ( c * SkaffoldConfig ) setDefaultTagger ( ) {
202
+ if c .Build .TagPolicy != (TagPolicy {}) {
182
203
return
183
204
}
184
205
185
- cfg .Build .TagPolicy = TagPolicy {GitTagger : & GitTagger {}}
206
+ c .Build .TagPolicy = TagPolicy {GitTagger : & GitTagger {}}
186
207
}
187
208
188
- func setDefaultDockerfiles ( config * SkaffoldConfig ) {
189
- for _ , artifact := range config .Build .Artifacts {
209
+ func ( c * SkaffoldConfig ) setDefaultDockerfiles ( ) {
210
+ for _ , artifact := range c .Build .Artifacts {
190
211
if artifact .DockerArtifact != nil && artifact .DockerArtifact .DockerfilePath == "" {
191
212
artifact .DockerArtifact .DockerfilePath = constants .DefaultDockerfilePath
192
213
}
193
214
}
194
215
}
195
216
196
- func setDefaultWorkspaces ( config * SkaffoldConfig ) {
197
- for _ , artifact := range config .Build .Artifacts {
217
+ func ( c * SkaffoldConfig ) setDefaultWorkspaces ( ) {
218
+ for _ , artifact := range c .Build .Artifacts {
198
219
if artifact .Workspace == "" {
199
220
artifact .Workspace = "."
200
221
}
@@ -203,23 +224,24 @@ func setDefaultWorkspaces(config *SkaffoldConfig) {
203
224
204
225
// ApplyProfiles returns configuration modified by the application
205
226
// of a list of profiles.
206
- func (config * SkaffoldConfig ) ApplyProfiles (profiles []string ) error {
227
+ func (c * SkaffoldConfig ) ApplyProfiles (profiles []string ) error {
207
228
var err error
208
229
209
- byName := profilesByName (config .Profiles )
230
+ byName := profilesByName (c .Profiles )
210
231
for _ , name := range profiles {
211
232
profile , present := byName [name ]
212
233
if ! present {
213
234
return fmt .Errorf ("couldn't find profile %s" , name )
214
235
}
215
236
216
- err = applyProfile (config , profile )
237
+ err = applyProfile (c , profile )
217
238
if err != nil {
218
239
return errors .Wrapf (err , "applying profile %s" , name )
219
240
}
220
241
}
221
242
222
- config .Profiles = nil
243
+ c .setDefaultValues ()
244
+ c .Profiles = nil
223
245
224
246
return nil
225
247
}
@@ -242,17 +264,3 @@ func profilesByName(profiles []Profile) map[string]Profile {
242
264
}
243
265
return byName
244
266
}
245
-
246
- func (config * SkaffoldConfig ) Parse (contents []byte , useDefaults bool ) error {
247
- if err := yaml .Unmarshal (contents , config ); err != nil {
248
- return err
249
- }
250
- if useDefaults {
251
- defaultToLocalBuild (config )
252
- defaultToDockerArtifacts (config )
253
- setDefaultTagger (config )
254
- setDefaultDockerfiles (config )
255
- setDefaultWorkspaces (config )
256
- }
257
- return nil
258
- }
0 commit comments