feat: --force, --recreate-pods, --timeout as first-class citizens in helmfile.yaml (#239)
Resolves #229
This commit is contained in:
		
							parent
							
								
									2c36640ad2
								
							
						
					
					
						commit
						815ee1f85b
					
				| 
						 | 
				
			
			@ -83,6 +83,12 @@ releases:
 | 
			
		|||
      - vault_secret.yaml
 | 
			
		||||
    # wait for k8s resources via --wait. Defaults to `false`
 | 
			
		||||
    wait: true
 | 
			
		||||
    # time in seconds to wait for any individual Kubernetes operation (like Jobs for hooks, and waits on pod/pvc/svc/deployment readiness) (default 300)
 | 
			
		||||
    timeout: 60
 | 
			
		||||
    # performs pods restart for the resource if applicable
 | 
			
		||||
    recreatePods: true
 | 
			
		||||
    # forces resource update through delete/recreate if needed
 | 
			
		||||
    force: true
 | 
			
		||||
 | 
			
		||||
  # Local chart example
 | 
			
		||||
  - name: grafana                            # name of this release
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -60,7 +60,14 @@ type ReleaseSpec struct {
 | 
			
		|||
	Chart   string `yaml:"chart"`
 | 
			
		||||
	Version string `yaml:"version"`
 | 
			
		||||
	Verify  bool   `yaml:"verify"`
 | 
			
		||||
	// Wait, if set to true, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful
 | 
			
		||||
	Wait bool `yaml:"wait"`
 | 
			
		||||
	// Timeout is the time in seconds to wait for any individual Kubernetes operation (like Jobs for hooks, and waits on pod/pvc/svc/deployment readiness) (default 300)
 | 
			
		||||
	Timeout int `yaml:"timeout"`
 | 
			
		||||
	// RecreatePods, when set to true, instruct helmfile to perform pods restart for the resource if applicable
 | 
			
		||||
	RecreatePods bool `yaml:"recreatePods"`
 | 
			
		||||
	// Force, when set to true, forces resource update through delete/recreate if needed
 | 
			
		||||
	Force bool `yaml:"force"`
 | 
			
		||||
 | 
			
		||||
	// Name is the name of this release
 | 
			
		||||
	Name      string            `yaml:"name"`
 | 
			
		||||
| 
						 | 
				
			
			@ -654,14 +661,23 @@ func chartNameWithoutRepository(chart string) string {
 | 
			
		|||
 | 
			
		||||
func (state *HelmState) flagsForUpgrade(helm helmexec.Interface, basePath string, release *ReleaseSpec) ([]string, error) {
 | 
			
		||||
	flags := []string{}
 | 
			
		||||
	if release.Version != "" {
 | 
			
		||||
		flags = append(flags, "--version", release.Version)
 | 
			
		||||
	}
 | 
			
		||||
	if release.Verify {
 | 
			
		||||
		flags = append(flags, "--verify")
 | 
			
		||||
	}
 | 
			
		||||
	if release.Wait {
 | 
			
		||||
		flags = append(flags, "--wait")
 | 
			
		||||
	}
 | 
			
		||||
	if release.Version != "" {
 | 
			
		||||
		flags = append(flags, "--version", release.Version)
 | 
			
		||||
	if release.Timeout != 0 {
 | 
			
		||||
		flags = append(flags, "--timeout", fmt.Sprintf("%d", release.Timeout))
 | 
			
		||||
	}
 | 
			
		||||
	if release.Force {
 | 
			
		||||
		flags = append(flags, "--force")
 | 
			
		||||
	}
 | 
			
		||||
	if release.RecreatePods {
 | 
			
		||||
		flags = append(flags, "--recreate-pods")
 | 
			
		||||
	}
 | 
			
		||||
	common, err := state.namespaceAndValuesFlags(helm, basePath, release)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue