Merge pull request #3665 from helen-frank/feature/karmadactlTimeout
karmadactl init add timeout flag
This commit is contained in:
commit
e95c6050ea
|
@ -10,6 +10,7 @@ import (
|
|||
|
||||
"github.com/karmada-io/karmada/pkg/karmadactl/cmdinit/cert"
|
||||
"github.com/karmada-io/karmada/pkg/karmadactl/cmdinit/kubernetes"
|
||||
cmdinitoptions "github.com/karmada-io/karmada/pkg/karmadactl/cmdinit/options"
|
||||
"github.com/karmada-io/karmada/pkg/karmadactl/options"
|
||||
"github.com/karmada-io/karmada/pkg/karmadactl/util"
|
||||
"github.com/karmada-io/karmada/pkg/version"
|
||||
|
@ -139,7 +140,7 @@ func NewCmdInit(parentCommand string) *cobra.Command {
|
|||
flags.Int32VarP(&opts.KarmadaWebhookReplicas, "karmada-webhook-replicas", "", 1, "Karmada webhook replica set")
|
||||
flags.StringVarP(&opts.KarmadaAggregatedAPIServerImage, "karmada-aggregated-apiserver-image", "", kubernetes.DefaultKarmadaAggregatedAPIServerImage, "Karmada aggregated apiserver image")
|
||||
flags.Int32VarP(&opts.KarmadaAggregatedAPIServerReplicas, "karmada-aggregated-apiserver-replicas", "", 1, "Karmada aggregated apiserver replica set")
|
||||
|
||||
flags.IntVarP(&opts.WaitComponentReadyTimeout, "wait-component-ready-timeout", "", cmdinitoptions.WaitComponentReadyTimeout, "Wait for karmada component ready timeout. 0 means wait forever")
|
||||
return cmd
|
||||
}
|
||||
|
||||
|
|
|
@ -128,9 +128,12 @@ type CommandInitOption struct {
|
|||
RestConfig *rest.Config
|
||||
KarmadaAPIServerIP []net.IP
|
||||
HostClusterDomain string
|
||||
WaitComponentReadyTimeout int
|
||||
}
|
||||
|
||||
// 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 {
|
||||
|
@ -154,6 +157,10 @@ func (i *CommandInitOption) Validate(parentCommand string) error {
|
|||
return fmt.Errorf("when etcd storage mode is PVC, storageClassesName is not empty. See '%s init --help'", parentCommand)
|
||||
}
|
||||
|
||||
if i.WaitComponentReadyTimeout < 0 {
|
||||
return fmt.Errorf("wait-component-ready-timeout must be greater than or equal to 0")
|
||||
}
|
||||
|
||||
supportedStorageMode := SupportedStorageMode()
|
||||
if i.EtcdStorageMode != "" {
|
||||
for _, mode := range supportedStorageMode {
|
||||
|
@ -350,9 +357,6 @@ func (i *CommandInitOption) createCertsSecrets() error {
|
|||
}
|
||||
|
||||
func (i *CommandInitOption) initKarmadaAPIServer() error {
|
||||
// wait karmada APIServer component ready timeout 120s
|
||||
waitKarmadaAPIServerComponentReadyTimeout := 120
|
||||
|
||||
if err := util.CreateOrUpdateService(i.KubeClientSet, i.makeEtcdService(etcdStatefulSetAndServiceName)); err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -361,7 +365,7 @@ func (i *CommandInitOption) initKarmadaAPIServer() error {
|
|||
if _, err := i.KubeClientSet.AppsV1().StatefulSets(i.Namespace).Create(context.TODO(), etcdStatefulSet, metav1.CreateOptions{}); err != nil {
|
||||
klog.Warning(err)
|
||||
}
|
||||
if err := util.WaitForStatefulSetRollout(i.KubeClientSet, etcdStatefulSet, options.WaitComponentReadyTimeout); err != nil {
|
||||
if err := util.WaitForStatefulSetRollout(i.KubeClientSet, etcdStatefulSet, i.WaitComponentReadyTimeout); err != nil {
|
||||
klog.Warning(err)
|
||||
}
|
||||
klog.Info("Create karmada ApiServer Deployment")
|
||||
|
@ -373,7 +377,7 @@ func (i *CommandInitOption) initKarmadaAPIServer() error {
|
|||
if _, err := i.KubeClientSet.AppsV1().Deployments(i.Namespace).Create(context.TODO(), karmadaAPIServerDeployment, metav1.CreateOptions{}); err != nil {
|
||||
klog.Warning(err)
|
||||
}
|
||||
if err := util.WaitForDeploymentRollout(i.KubeClientSet, karmadaAPIServerDeployment, waitKarmadaAPIServerComponentReadyTimeout); err != nil {
|
||||
if err := util.WaitForDeploymentRollout(i.KubeClientSet, karmadaAPIServerDeployment, i.WaitComponentReadyTimeout); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
@ -387,7 +391,7 @@ func (i *CommandInitOption) initKarmadaAPIServer() error {
|
|||
if _, err := i.KubeClientSet.AppsV1().Deployments(i.Namespace).Create(context.TODO(), i.makeKarmadaAggregatedAPIServerDeployment(), metav1.CreateOptions{}); err != nil {
|
||||
klog.Warning(err)
|
||||
}
|
||||
if err := util.WaitForDeploymentRollout(i.KubeClientSet, karmadaAggregatedAPIServerDeployment, options.WaitComponentReadyTimeout); err != nil {
|
||||
if err := util.WaitForDeploymentRollout(i.KubeClientSet, karmadaAggregatedAPIServerDeployment, i.WaitComponentReadyTimeout); err != nil {
|
||||
klog.Warning(err)
|
||||
}
|
||||
return nil
|
||||
|
@ -405,7 +409,7 @@ func (i *CommandInitOption) initKarmadaComponent() error {
|
|||
if _, err := deploymentClient.Create(context.TODO(), karmadaKubeControllerManagerDeployment, metav1.CreateOptions{}); err != nil {
|
||||
klog.Warning(err)
|
||||
}
|
||||
if err := util.WaitForDeploymentRollout(i.KubeClientSet, karmadaKubeControllerManagerDeployment, options.WaitComponentReadyTimeout); err != nil {
|
||||
if err := util.WaitForDeploymentRollout(i.KubeClientSet, karmadaKubeControllerManagerDeployment, i.WaitComponentReadyTimeout); err != nil {
|
||||
klog.Warning(err)
|
||||
}
|
||||
|
||||
|
@ -416,7 +420,7 @@ func (i *CommandInitOption) initKarmadaComponent() error {
|
|||
if _, err := deploymentClient.Create(context.TODO(), karmadaSchedulerDeployment, metav1.CreateOptions{}); err != nil {
|
||||
klog.Warning(err)
|
||||
}
|
||||
if err := util.WaitForDeploymentRollout(i.KubeClientSet, karmadaSchedulerDeployment, options.WaitComponentReadyTimeout); err != nil {
|
||||
if err := util.WaitForDeploymentRollout(i.KubeClientSet, karmadaSchedulerDeployment, i.WaitComponentReadyTimeout); err != nil {
|
||||
klog.Warning(err)
|
||||
}
|
||||
|
||||
|
@ -427,7 +431,7 @@ func (i *CommandInitOption) initKarmadaComponent() error {
|
|||
if _, err := deploymentClient.Create(context.TODO(), karmadaControllerManagerDeployment, metav1.CreateOptions{}); err != nil {
|
||||
klog.Warning(err)
|
||||
}
|
||||
if err := util.WaitForDeploymentRollout(i.KubeClientSet, karmadaControllerManagerDeployment, options.WaitComponentReadyTimeout); err != nil {
|
||||
if err := util.WaitForDeploymentRollout(i.KubeClientSet, karmadaControllerManagerDeployment, i.WaitComponentReadyTimeout); err != nil {
|
||||
klog.Warning(err)
|
||||
}
|
||||
|
||||
|
@ -441,7 +445,7 @@ func (i *CommandInitOption) initKarmadaComponent() error {
|
|||
if _, err := deploymentClient.Create(context.TODO(), karmadaWebhookDeployment, metav1.CreateOptions{}); err != nil {
|
||||
klog.Warning(err)
|
||||
}
|
||||
if err := util.WaitForDeploymentRollout(i.KubeClientSet, karmadaWebhookDeployment, options.WaitComponentReadyTimeout); err != nil {
|
||||
if err := util.WaitForDeploymentRollout(i.KubeClientSet, karmadaWebhookDeployment, i.WaitComponentReadyTimeout); err != nil {
|
||||
klog.Warning(err)
|
||||
}
|
||||
return nil
|
||||
|
|
|
@ -24,5 +24,5 @@ const (
|
|||
// KarmadaKubeConfigName karmada kubeconfig name
|
||||
KarmadaKubeConfigName = "karmada-apiserver.config"
|
||||
// WaitComponentReadyTimeout wait component ready time
|
||||
WaitComponentReadyTimeout = 30
|
||||
WaitComponentReadyTimeout = 120
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue