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"
var (
varStringName string
varStringNamespace string
varStringImage string
varStringSecret string
varIntRequestCpu int
varIntRequestMem int
varIntLimitCpu int
varIntLimitMem int
varStringO string
varIntReplicas int
varIntRevisions int
varIntPort int
varIntNodePort int
varIntMinReplicas int
varIntMaxReplicas int
varStringHome string
varStringRemote string
varStringBranch string
varStringServiceAccount string
varStringName string
varStringNamespace string
varStringImage string
varStringSecret string
varIntRequestCpu int
varIntRequestMem int
varIntLimitCpu int
varIntLimitMem int
varStringO string
varIntReplicas int
varIntRevisions int
varIntPort int
varIntNodePort int
varIntMinReplicas int
varIntMaxReplicas int
varStringHome string
varStringRemote string
varStringBranch string
varStringServiceAccount string
varStringImagePullPolicy string
// Cmd describes a kube 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(&varIntMinReplicas, "minReplicas", 3, "The min 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, "+
"--home and --remote cannot be set at the same time, if they are, --remote has higher priority")

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

@ -29,22 +29,23 @@ var (
// Deployment describes the k8s deployment yaml
type Deployment struct {
Name string
Namespace string
Image string
Secret string
Replicas int
Revisions int
Port int
NodePort int
UseNodePort bool
RequestCpu int
RequestMem int
LimitCpu int
LimitMem int
MinReplicas int
MaxReplicas int
ServiceAccount string
Name string
Namespace string
Image string
Secret string
Replicas int
Revisions int
Port int
NodePort int
UseNodePort bool
RequestCpu int
RequestMem int
LimitCpu int
LimitMem int
MinReplicas int
MaxReplicas int
ServiceAccount string
ImagePullPolicy string
}
// 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))
err = t.Execute(out, Deployment{
Name: varStringName,
Namespace: varStringNamespace,
Image: varStringImage,
Secret: varStringSecret,
Replicas: varIntReplicas,
Revisions: varIntRevisions,
Port: varIntPort,
NodePort: nodePort,
UseNodePort: nodePort > 0,
RequestCpu: varIntRequestCpu,
RequestMem: varIntRequestMem,
LimitCpu: varIntLimitCpu,
LimitMem: varIntLimitMem,
MinReplicas: varIntMinReplicas,
MaxReplicas: varIntMaxReplicas,
ServiceAccount: varStringServiceAccount,
Name: varStringName,
Namespace: varStringNamespace,
Image: varStringImage,
Secret: varStringSecret,
Replicas: varIntReplicas,
Revisions: varIntRevisions,
Port: varIntPort,
NodePort: nodePort,
UseNodePort: nodePort > 0,
RequestCpu: varIntRequestCpu,
RequestMem: varIntRequestMem,
LimitCpu: varIntLimitCpu,
LimitMem: varIntLimitMem,
MinReplicas: varIntMinReplicas,
MaxReplicas: varIntMaxReplicas,
ServiceAccount: varStringServiceAccount,
ImagePullPolicy: varStringImagePullPolicy,
})
if err != nil {
return err

Loading…
Cancel
Save