feat: add 'imagePullPolicy' parameter for 'goctl kube deploy' (#1996)
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user