Skip to content

Commit

Permalink
add image-pull-policy flag for karmada init cmd
Browse files Browse the repository at this point in the history
Signed-off-by: changzhen <changzhen5@huawei.com>
  • Loading branch information
XiShanYongYe-Chang committed Apr 10, 2024
1 parent eadf919 commit bf4510b
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 11 deletions.
2 changes: 2 additions & 0 deletions pkg/karmadactl/cmdinit/cmdinit.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import (
"strings"

"github.com/spf13/cobra"
corev1 "k8s.io/api/core/v1"
"k8s.io/klog/v2"
"k8s.io/kubectl/pkg/util/templates"

Expand Down Expand Up @@ -114,6 +115,7 @@ func NewCmdInit(parentCommand string) *cobra.Command {
}
flags := cmd.Flags()
flags.StringVarP(&opts.ImageRegistry, "private-image-registry", "", "", "Private image registry where pull images from. If set, all required images will be downloaded from it, it would be useful in offline installation scenarios. In addition, you still can use --kube-image-registry to specify the registry for Kubernetes's images.")
flags.StringVarP(&opts.ImagePullPolicy, "image-pull-policy", "", string(corev1.PullIfNotPresent), "The image pull policy for all Karmada components container. One of Always, Never, IfNotPresent. Defaults to IfNotPresent.")
flags.StringSliceVar(&opts.PullSecrets, "image-pull-secrets", nil, "Image pull secrets are used to pull images from the private registry, could be secret list separated by comma (e.g '--image-pull-secrets PullSecret1,PullSecret2', the secrets should be pre-settled in the namespace declared by '--namespace')")
// kube image registry
flags.StringVarP(&opts.KubeImageMirrorCountry, "kube-image-mirror-country", "", "", "Country code of the kube image registry to be used. For Chinese mainland users, set it to cn")
Expand Down
10 changes: 8 additions & 2 deletions pkg/karmadactl/cmdinit/kubernetes/deploy.go
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ func init() {
// CommandInitOption holds all flags options for init.
type CommandInitOption struct {
ImageRegistry string
ImagePullPolicy string
KubeImageRegistry string
KubeImageMirrorCountry string
KubeImageTag string
Expand Down Expand Up @@ -218,15 +219,20 @@ func (i *CommandInitOption) isExternalEtcdProvided() bool {
}

// Validate Check that there are enough flags to run the command.
//
//nolint:gocyclo
func (i *CommandInitOption) Validate(parentCommand string) error {
if i.KarmadaAPIServerAdvertiseAddress != "" {
if netutils.ParseIPSloppy(i.KarmadaAPIServerAdvertiseAddress) == nil {
return fmt.Errorf("karmada apiserver advertise address is not valid")
}
}

switch i.ImagePullPolicy {
case string(corev1.PullAlways), string(corev1.PullIfNotPresent), string(corev1.PullNever):
// continue
default:
return fmt.Errorf("invalid image pull policy: %s", i.ImagePullPolicy)
}

if i.isExternalEtcdProvided() {
return i.validateExternalEtcd(parentCommand)
}
Expand Down
22 changes: 13 additions & 9 deletions pkg/karmadactl/cmdinit/kubernetes/deployments.go
Original file line number Diff line number Diff line change
Expand Up @@ -444,8 +444,9 @@ func (i *CommandInitOption) makeKarmadaSchedulerDeployment() *appsv1.Deployment
},
Containers: []corev1.Container{
{
Name: schedulerDeploymentNameAndServiceAccountName,
Image: i.karmadaSchedulerImage(),
Name: schedulerDeploymentNameAndServiceAccountName,
Image: i.karmadaSchedulerImage(),
ImagePullPolicy: corev1.PullPolicy(i.ImagePullPolicy),
Command: []string{
"/bin/karmada-scheduler",
"--kubeconfig=/etc/kubeconfig",
Expand Down Expand Up @@ -559,8 +560,9 @@ func (i *CommandInitOption) makeKarmadaControllerManagerDeployment() *appsv1.Dep
},
Containers: []corev1.Container{
{
Name: controllerManagerDeploymentAndServiceName,
Image: i.karmadaControllerManagerImage(),
Name: controllerManagerDeploymentAndServiceName,
Image: i.karmadaControllerManagerImage(),
ImagePullPolicy: corev1.PullPolicy(i.ImagePullPolicy),
Command: []string{
"/bin/karmada-controller-manager",
"--kubeconfig=/etc/kubeconfig",
Expand Down Expand Up @@ -677,8 +679,9 @@ func (i *CommandInitOption) makeKarmadaWebhookDeployment() *appsv1.Deployment {
AutomountServiceAccountToken: pointer.Bool(false),
Containers: []corev1.Container{
{
Name: webhookDeploymentAndServiceAccountAndServiceName,
Image: i.karmadaWebhookImage(),
Name: webhookDeploymentAndServiceAccountAndServiceName,
Image: i.karmadaWebhookImage(),
ImagePullPolicy: corev1.PullPolicy(i.ImagePullPolicy),
Command: []string{
"/bin/karmada-webhook",
"--kubeconfig=/etc/kubeconfig",
Expand Down Expand Up @@ -847,9 +850,10 @@ func (i *CommandInitOption) makeKarmadaAggregatedAPIServerDeployment() *appsv1.D
AutomountServiceAccountToken: pointer.Bool(false),
Containers: []corev1.Container{
{
Name: karmadaAggregatedAPIServerDeploymentAndServiceName,
Image: i.karmadaAggregatedAPIServerImage(),
Command: command,
Name: karmadaAggregatedAPIServerDeploymentAndServiceName,
Image: i.karmadaAggregatedAPIServerImage(),
ImagePullPolicy: corev1.PullPolicy(i.ImagePullPolicy),
Command: command,
VolumeMounts: []corev1.VolumeMount{
{
Name: KubeConfigSecretAndMountName,
Expand Down

0 comments on commit bf4510b

Please sign in to comment.