feat: add 'imagePullPolicy' parameter for 'goctl kube deploy' (#1996)

master
swliao425 2 years ago committed by GitHub
parent f2caf9237a
commit 0f5d8c6be3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -3,25 +3,26 @@ package kube
import "github.com/spf13/cobra" import "github.com/spf13/cobra"
var ( var (
varStringName string varStringName string
varStringNamespace string varStringNamespace string
varStringImage string varStringImage string
varStringSecret string varStringSecret string
varIntRequestCpu int varIntRequestCpu int
varIntRequestMem int varIntRequestMem int
varIntLimitCpu int varIntLimitCpu int
varIntLimitMem int varIntLimitMem int
varStringO string varStringO string
varIntReplicas int varIntReplicas int
varIntRevisions int varIntRevisions int
varIntPort int varIntPort int
varIntNodePort int varIntNodePort int
varIntMinReplicas int varIntMinReplicas int
varIntMaxReplicas int varIntMaxReplicas int
varStringHome string varStringHome string
varStringRemote string varStringRemote string
varStringBranch string varStringBranch string
varStringServiceAccount string varStringServiceAccount string
varStringImagePullPolicy string
// Cmd describes a kube command. // Cmd describes a kube command.
Cmd = &cobra.Command{ Cmd = &cobra.Command{
@ -52,6 +53,7 @@ func init() {
deployCmd.Flags().IntVar(&varIntNodePort, "nodePort", 0, "The nodePort of the deployment to expose") deployCmd.Flags().IntVar(&varIntNodePort, "nodePort", 0, "The nodePort of the deployment to expose")
deployCmd.Flags().IntVar(&varIntMinReplicas, "minReplicas", 3, "The min replicas to deploy") deployCmd.Flags().IntVar(&varIntMinReplicas, "minReplicas", 3, "The min replicas to deploy")
deployCmd.Flags().IntVar(&varIntMaxReplicas, "maxReplicas", 10, "The max replicas to deploy") deployCmd.Flags().IntVar(&varIntMaxReplicas, "maxReplicas", 10, "The max replicas to deploy")
deployCmd.Flags().StringVar(&varStringImagePullPolicy, "imagePullPolicy", "", "Image pull policy. One of Always, Never, IfNotPresent")
deployCmd.Flags().StringVar(&varStringHome, "home", "", "The goctl home path of the template, "+ deployCmd.Flags().StringVar(&varStringHome, "home", "", "The goctl home path of the template, "+
"--home and --remote cannot be set at the same time, if they are, --remote has higher priority") "--home and --remote cannot be set at the same time, if they are, --remote has higher priority")

@ -20,7 +20,8 @@ spec:
containers: containers:
- name: {{.Name}} - name: {{.Name}}
image: {{.Image}} image: {{.Image}}
lifecycle: {{if .ImagePullPolicy}}imagePullPolicy: {{.ImagePullPolicy}}
{{end}}lifecycle:
preStop: preStop:
exec: exec:
command: ["sh","-c","sleep 5"] command: ["sh","-c","sleep 5"]

@ -29,22 +29,23 @@ var (
// Deployment describes the k8s deployment yaml // Deployment describes the k8s deployment yaml
type Deployment struct { type Deployment struct {
Name string Name string
Namespace string Namespace string
Image string Image string
Secret string Secret string
Replicas int Replicas int
Revisions int Revisions int
Port int Port int
NodePort int NodePort int
UseNodePort bool UseNodePort bool
RequestCpu int RequestCpu int
RequestMem int RequestMem int
LimitCpu int LimitCpu int
LimitMem int LimitMem int
MinReplicas int MinReplicas int
MaxReplicas int MaxReplicas int
ServiceAccount string ServiceAccount string
ImagePullPolicy string
} }
// DeploymentCommand is used to generate the kubernetes deployment yaml files. // DeploymentCommand is used to generate the kubernetes deployment yaml files.
@ -82,22 +83,23 @@ func deploymentCommand(_ *cobra.Command, _ []string) error {
t := template.Must(template.New("deploymentTemplate").Parse(text)) t := template.Must(template.New("deploymentTemplate").Parse(text))
err = t.Execute(out, Deployment{ err = t.Execute(out, Deployment{
Name: varStringName, Name: varStringName,
Namespace: varStringNamespace, Namespace: varStringNamespace,
Image: varStringImage, Image: varStringImage,
Secret: varStringSecret, Secret: varStringSecret,
Replicas: varIntReplicas, Replicas: varIntReplicas,
Revisions: varIntRevisions, Revisions: varIntRevisions,
Port: varIntPort, Port: varIntPort,
NodePort: nodePort, NodePort: nodePort,
UseNodePort: nodePort > 0, UseNodePort: nodePort > 0,
RequestCpu: varIntRequestCpu, RequestCpu: varIntRequestCpu,
RequestMem: varIntRequestMem, RequestMem: varIntRequestMem,
LimitCpu: varIntLimitCpu, LimitCpu: varIntLimitCpu,
LimitMem: varIntLimitMem, LimitMem: varIntLimitMem,
MinReplicas: varIntMinReplicas, MinReplicas: varIntMinReplicas,
MaxReplicas: varIntMaxReplicas, MaxReplicas: varIntMaxReplicas,
ServiceAccount: varStringServiceAccount, ServiceAccount: varStringServiceAccount,
ImagePullPolicy: varStringImagePullPolicy,
}) })
if err != nil { if err != nil {
return err return err

Loading…
Cancel
Save