mirror of https://github.com/helm/helm.git
				
				
				
			
		
			
	
	
		
			76 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Go
		
	
	
	
		
		
			
		
	
	
			76 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Go
		
	
	
	
|  | /* | ||
|  | Copyright The Helm Authors. | ||
|  | 
 | ||
|  | Licensed under the Apache License, Version 2.0 (the "License"); | ||
|  | you may not use this file except in compliance with the License. | ||
|  | You may obtain a copy of the License at | ||
|  | 
 | ||
|  |     http://www.apache.org/licenses/LICENSE-2.0
 | ||
|  | 
 | ||
|  | Unless required by applicable law or agreed to in writing, software | ||
|  | distributed under the License is distributed on an "AS IS" BASIS, | ||
|  | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
|  | See the License for the specific language governing permissions and | ||
|  | limitations under the License. | ||
|  | */ | ||
|  | 
 | ||
|  | package cmd | ||
|  | 
 | ||
|  | import ( | ||
|  | 	"fmt" | ||
|  | 	"io" | ||
|  | 	"log" | ||
|  | 
 | ||
|  | 	"github.com/spf13/cobra" | ||
|  | 
 | ||
|  | 	"helm.sh/helm/v4/pkg/action" | ||
|  | 	"helm.sh/helm/v4/pkg/cmd/require" | ||
|  | ) | ||
|  | 
 | ||
|  | var getManifestHelp = ` | ||
|  | This command fetches the generated manifest for a given release. | ||
|  | 
 | ||
|  | A manifest is a YAML-encoded representation of the Kubernetes resources that | ||
|  | were generated from this release's chart(s). If a chart is dependent on other | ||
|  | charts, those resources will also be included in the manifest. | ||
|  | ` | ||
|  | 
 | ||
|  | func newGetManifestCmd(cfg *action.Configuration, out io.Writer) *cobra.Command { | ||
|  | 	client := action.NewGet(cfg) | ||
|  | 
 | ||
|  | 	cmd := &cobra.Command{ | ||
|  | 		Use:   "manifest RELEASE_NAME", | ||
|  | 		Short: "download the manifest for a named release", | ||
|  | 		Long:  getManifestHelp, | ||
|  | 		Args:  require.ExactArgs(1), | ||
|  | 		ValidArgsFunction: func(_ *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { | ||
|  | 			if len(args) != 0 { | ||
|  | 				return noMoreArgsComp() | ||
|  | 			} | ||
|  | 			return compListReleases(toComplete, args, cfg) | ||
|  | 		}, | ||
|  | 		RunE: func(_ *cobra.Command, args []string) error { | ||
|  | 			res, err := client.Run(args[0]) | ||
|  | 			if err != nil { | ||
|  | 				return err | ||
|  | 			} | ||
|  | 			fmt.Fprintln(out, res.Manifest) | ||
|  | 			return nil | ||
|  | 		}, | ||
|  | 	} | ||
|  | 
 | ||
|  | 	cmd.Flags().IntVar(&client.Version, "revision", 0, "get the named release with revision") | ||
|  | 	err := cmd.RegisterFlagCompletionFunc("revision", func(_ *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { | ||
|  | 		if len(args) == 1 { | ||
|  | 			return compListRevisions(toComplete, cfg, args[0]) | ||
|  | 		} | ||
|  | 		return nil, cobra.ShellCompDirectiveNoFileComp | ||
|  | 	}) | ||
|  | 
 | ||
|  | 	if err != nil { | ||
|  | 		log.Fatal(err) | ||
|  | 	} | ||
|  | 
 | ||
|  | 	return cmd | ||
|  | } |