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"
|
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
|
||||||
|
|||||||
Reference in New Issue
Block a user