From 496e4e31623d9febfb0ace568290bacb58d8ae72 Mon Sep 17 00:00:00 2001 From: Shubham Nazare Date: Mon, 9 Jan 2023 16:18:56 +0530 Subject: [PATCH] feat(cli): provide imagepullsecret option for container as function (#2680) Signed-off-by: Shubham Nazare --- pkg/fission-cli/cmd/function/command.go | 1 + pkg/fission-cli/cmd/function/run_container.go | 3 +++ pkg/fission-cli/flag/flag.go | 1 + pkg/fission-cli/flag/key/key.go | 11 ++++++----- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/pkg/fission-cli/cmd/function/command.go b/pkg/fission-cli/cmd/function/command.go index 2ce67353..59eace0b 100644 --- a/pkg/fission-cli/cmd/function/command.go +++ b/pkg/fission-cli/cmd/function/command.go @@ -173,6 +173,7 @@ func Commands() *cobra.Command { flag.RunTimeMinCPU, flag.RunTimeMaxCPU, flag.RunTimeMinMemory, flag.RunTimeMaxMemory, flag.ReplicasMin, flag.ReplicasMax, flag.RunTimeTargetCPU, + flag.RunImagePullSecret, flag.NamespaceFunction, flag.SpecSave, flag.SpecDry, }, diff --git a/pkg/fission-cli/cmd/function/run_container.go b/pkg/fission-cli/cmd/function/run_container.go index d603e1ad..7b46dc63 100644 --- a/pkg/fission-cli/cmd/function/run_container.go +++ b/pkg/fission-cli/cmd/function/run_container.go @@ -106,6 +106,8 @@ func (opts *RunContainerSubCommand) complete(input cli.Input) error { console.Warn("grace period must be a non-negative integer, using default value (6 mins)") } + pullSecret := []apiv1.LocalObjectReference{{Name: input.String(flagkey.RunImagePullSecret)}} + var imageName string var port int var command, args string @@ -208,6 +210,7 @@ func (opts *RunContainerSubCommand) complete(input cli.Input) error { opts.function.Spec.PodSpec = &apiv1.PodSpec{ Containers: []apiv1.Container{*container}, TerminationGracePeriodSeconds: &fnGracePeriod, + ImagePullSecrets: pullSecret, } return nil diff --git a/pkg/fission-cli/flag/flag.go b/pkg/fission-cli/flag/flag.go index 5150539d..bacf4ca8 100644 --- a/pkg/fission-cli/flag/flag.go +++ b/pkg/fission-cli/flag/flag.go @@ -96,6 +96,7 @@ var ( RunTimeTargetCPU = Flag{Type: Int, Name: flagkey.RuntimeTargetcpu, Usage: "Target average CPU usage percentage across pods for scaling", DefaultValue: 80} RunTimeMinMemory = Flag{Type: Int, Name: flagkey.RuntimeMinmemory, Usage: "Minimum memory to be assigned to pod (In megabyte)"} RunTimeMaxMemory = Flag{Type: Int, Name: flagkey.RuntimeMaxmemory, Usage: "Maximum memory to be assigned to pod (In megabyte)"} + RunImagePullSecret = Flag{Type: String, Name: flagkey.RunImagePullSecret, Usage: "Secret for Kubernetes to pull an image from a private registry"} ReplicasMin = Flag{Type: Int, Name: flagkey.ReplicasMinscale, Usage: "Minimum number of pods (Uses resource inputs to configure HPA)", DefaultValue: 1} ReplicasMax = Flag{Type: Int, Name: flagkey.ReplicasMaxscale, Usage: "Maximum number of pods (Uses resource inputs to configure HPA)", DefaultValue: 1} diff --git a/pkg/fission-cli/flag/key/key.go b/pkg/fission-cli/flag/key/key.go index 647a606b..b407bc2c 100644 --- a/pkg/fission-cli/flag/key/key.go +++ b/pkg/fission-cli/flag/key/key.go @@ -44,11 +44,12 @@ const ( NamespacePod = "pod-namespace" ForceDelete = "force" - RuntimeMincpu = "mincpu" - RuntimeMaxcpu = "maxcpu" - RuntimeMinmemory = "minmemory" - RuntimeMaxmemory = "maxmemory" - RuntimeTargetcpu = "targetcpu" + RuntimeMincpu = "mincpu" + RuntimeMaxcpu = "maxcpu" + RuntimeMinmemory = "minmemory" + RuntimeMaxmemory = "maxmemory" + RuntimeTargetcpu = "targetcpu" + RunImagePullSecret = "imagepullsecret" ReplicasMinscale = "minscale" ReplicasMaxscale = "maxscale"