Skip to content

Commit

Permalink
Helm release check expected to only return deployed Kubernetes YAML
Browse files Browse the repository at this point in the history
  • Loading branch information
briandealwis committed Apr 26, 2021
1 parent b8c6306 commit 439a1be
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 41 deletions.
11 changes: 7 additions & 4 deletions pkg/skaffold/deploy/helm/deploy.go
Original file line number Diff line number Diff line change
Expand Up @@ -413,7 +413,7 @@ func (h *Deployer) deployRelease(ctx context.Context, out io.Writer, releaseName
return nil, userErr("install", err)
}

b, err := h.getRelease(ctx, releaseName, opts.namespace)
b, err := h.getReleaseManifest(ctx, releaseName, opts.namespace)
if err != nil {
return nil, userErr("get release", err)
}
Expand All @@ -422,16 +422,19 @@ func (h *Deployer) deployRelease(ctx context.Context, out io.Writer, releaseName
return artifacts, nil
}

// getRelease confirms that a release is visible to helm
func (h *Deployer) getRelease(ctx context.Context, releaseName string, namespace string) (bytes.Buffer, error) {
// getReleaseManifest confirms that a release is visible to helm and returns the release manifest
func (h *Deployer) getReleaseManifest(ctx context.Context, releaseName string, namespace string) (bytes.Buffer, error) {
// Retry, because sometimes a release may not be immediately visible
opts := backoff.NewExponentialBackOff()
opts.MaxElapsedTime = 4 * time.Second
var b bytes.Buffer

err := backoff.Retry(
func() error {
if err := h.exec(ctx, &b, false, nil, getArgs(releaseName, namespace)...); err != nil {
// only intereted in the deployed YAML
args := getArgs(releaseName, namespace)
args = append(args, "--template", "{{.Release.Manifest}}")
if err := h.exec(ctx, &b, false, nil, args...); err != nil {
logrus.Debugf("unable to get release: %v (may retry):\n%s", err, b.String())
return err
}
Expand Down
Loading

0 comments on commit 439a1be

Please sign in to comment.