@@ -30,6 +30,7 @@ import (
30
30
"strings"
31
31
"time"
32
32
33
+ sErrors "github.com/GoogleContainerTools/skaffold/pkg/skaffold/errors"
33
34
"github.com/blang/semver"
34
35
backoff "github.com/cenkalti/backoff/v4"
35
36
shell "github.com/kballard/go-shellquote"
72
73
// Deployer deploys workflows using the helm CLI
73
74
type Deployer struct {
74
75
* latest.HelmDeploy
76
+ errCfg sErrors.Config
75
77
76
78
kubeContext string
77
79
kubeConfig string
@@ -111,6 +113,7 @@ func NewDeployer(cfg kubectl.Config, labels map[string]string, h *latest.HelmDep
111
113
labels : labels ,
112
114
bV : hv ,
113
115
enableDebug : cfg .Mode () == config .RunModes .Debug ,
116
+ errCfg : cfg ,
114
117
}, nil
115
118
}
116
119
@@ -126,11 +129,11 @@ func (h *Deployer) Deploy(ctx context.Context, out io.Writer, builds []build.Art
126
129
for _ , r := range h .Releases {
127
130
releaseName , err := util .ExpandEnvTemplateOrFail (r .Name , nil )
128
131
if err != nil {
129
- return nil , userErr (fmt .Sprintf ("cannot expand release name %q" , r .Name ), err )
132
+ return nil , userErr (h . errCfg , fmt .Sprintf ("cannot expand release name %q" , r .Name ), err )
130
133
}
131
134
results , err := h .deployRelease (ctx , out , releaseName , r , builds , valuesSet , h .bV )
132
135
if err != nil {
133
- return nil , userErr (fmt .Sprintf ("deploying %q" , releaseName ), err )
136
+ return nil , userErr (h . errCfg , fmt .Sprintf ("deploying %q" , releaseName ), err )
134
137
}
135
138
136
139
// collect namespaces
@@ -217,7 +220,7 @@ func (h *Deployer) Dependencies() ([]string, error) {
217
220
}
218
221
219
222
if err := walk .From (release .ChartPath ).When (isDep ).AppendPaths (& deps ); err != nil {
220
- return deps , userErr ("issue walking releases" , err )
223
+ return deps , userErr (h . errCfg , "issue walking releases" , err )
221
224
}
222
225
}
223
226
sort .Strings (deps )
@@ -277,7 +280,7 @@ func (h *Deployer) Render(ctx context.Context, out io.Writer, builds []build.Art
277
280
278
281
args , err = constructOverrideArgs (& r , builds , args , func (string ) {})
279
282
if err != nil {
280
- return userErr ("construct override args" , err )
283
+ return userErr (h . errCfg , "construct override args" , err )
281
284
}
282
285
283
286
namespace , err := h .releaseNamespace (r )
@@ -290,7 +293,7 @@ func (h *Deployer) Render(ctx context.Context, out io.Writer, builds []build.Art
290
293
291
294
outBuffer := new (bytes.Buffer )
292
295
if err := h .exec (ctx , outBuffer , false , nil , args ... ); err != nil {
293
- return userErr ("std out err" , fmt .Errorf (outBuffer .String ()))
296
+ return userErr (h . errCfg , "std out err" , fmt .Errorf (outBuffer .String ()))
294
297
}
295
298
renderedManifests .Write (outBuffer .Bytes ())
296
299
}
@@ -366,19 +369,19 @@ func (h *Deployer) deployRelease(ctx context.Context, out io.Writer, releaseName
366
369
logrus .Infof ("Building helm dependencies..." )
367
370
368
371
if err := h .exec (ctx , out , false , nil , "dep" , "build" , r .ChartPath ); err != nil {
369
- return nil , userErr ("building helm dependencies" , err )
372
+ return nil , userErr (h . errCfg , "building helm dependencies" , err )
370
373
}
371
374
}
372
375
373
376
// Dump overrides to a YAML file to pass into helm
374
377
if len (r .Overrides .Values ) != 0 {
375
378
overrides , err := yaml .Marshal (r .Overrides )
376
379
if err != nil {
377
- return nil , userErr ("cannot marshal overrides to create overrides values.yaml" , err )
380
+ return nil , userErr (h . errCfg , "cannot marshal overrides to create overrides values.yaml" , err )
378
381
}
379
382
380
383
if err := ioutil .WriteFile (constants .HelmOverridesFilename , overrides , 0666 ); err != nil {
381
- return nil , userErr (fmt .Sprintf ("cannot create file %q" , constants .HelmOverridesFilename ), err )
384
+ return nil , userErr (h . errCfg , fmt .Sprintf ("cannot create file %q" , constants .HelmOverridesFilename ), err )
382
385
}
383
386
384
387
defer func () {
@@ -389,25 +392,25 @@ func (h *Deployer) deployRelease(ctx context.Context, out io.Writer, releaseName
389
392
if r .Packaged != nil {
390
393
chartPath , err := h .packageChart (ctx , r )
391
394
if err != nil {
392
- return nil , userErr ("cannot package chart" , err )
395
+ return nil , userErr (h . errCfg , "cannot package chart" , err )
393
396
}
394
397
395
398
opts .chartPath = chartPath
396
399
}
397
400
398
401
args , err := h .installArgs (r , builds , valuesSet , opts )
399
402
if err != nil {
400
- return nil , userErr ("release args" , err )
403
+ return nil , userErr (h . errCfg , "release args" , err )
401
404
}
402
405
403
406
err = h .exec (ctx , out , r .UseHelmSecrets , installEnv , args ... )
404
407
if err != nil {
405
- return nil , userErr ("install" , err )
408
+ return nil , userErr (h . errCfg , "install" , err )
406
409
}
407
410
408
411
b , err := h .getRelease (ctx , releaseName , opts .namespace )
409
412
if err != nil {
410
- return nil , userErr ("get release" , err )
413
+ return nil , userErr (h . errCfg , "get release" , err )
411
414
}
412
415
413
416
artifacts := parseReleaseInfo (opts .namespace , bufio .NewReader (& b ))
0 commit comments