Add Support for Component Priority Class Configuration in karmadactl addon
Signed-off-by: zhzhuang-zju <m17799853869@163.com>
This commit is contained in:
parent
a8ea49c4b9
commit
c1661cd33a
|
@ -63,6 +63,7 @@ var enableDescheduler = func(opts *addoninit.CommandAddonsEnableOption) error {
|
||||||
Namespace: opts.Namespace,
|
Namespace: opts.Namespace,
|
||||||
Replicas: &opts.KarmadaDeschedulerReplicas,
|
Replicas: &opts.KarmadaDeschedulerReplicas,
|
||||||
Image: addoninit.KarmadaDeschedulerImage(opts),
|
Image: addoninit.KarmadaDeschedulerImage(opts),
|
||||||
|
PriorityClassName: opts.KarmadaDeschedulerPriorityClass,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("error when parsing karmada descheduler deployment template :%v", err)
|
return fmt.Errorf("error when parsing karmada descheduler deployment template :%v", err)
|
||||||
|
|
|
@ -39,6 +39,7 @@ import (
|
||||||
func TestStatus(t *testing.T) {
|
func TestStatus(t *testing.T) {
|
||||||
name, namespace := names.KarmadaDeschedulerComponentName, "test"
|
name, namespace := names.KarmadaDeschedulerComponentName, "test"
|
||||||
var replicas int32 = 2
|
var replicas int32 = 2
|
||||||
|
var priorityClass = "system-node-critical"
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
listOpts *addoninit.CommandAddonsListOption
|
listOpts *addoninit.CommandAddonsListOption
|
||||||
|
@ -80,7 +81,7 @@ func TestStatus(t *testing.T) {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
prep: func(listOpts *addoninit.CommandAddonsListOption) error {
|
prep: func(listOpts *addoninit.CommandAddonsListOption) error {
|
||||||
if err := createKarmadaDeschedulerDeployment(listOpts.KubeClientSet, replicas, listOpts.Namespace); err != nil {
|
if err := createKarmadaDeschedulerDeployment(listOpts.KubeClientSet, replicas, listOpts.Namespace, priorityClass); err != nil {
|
||||||
return fmt.Errorf("failed to create karmada descheduler deployment, got error: %v", err)
|
return fmt.Errorf("failed to create karmada descheduler deployment, got error: %v", err)
|
||||||
}
|
}
|
||||||
return addonutils.SimulateDeploymentUnready(listOpts.KubeClientSet, name, listOpts.Namespace)
|
return addonutils.SimulateDeploymentUnready(listOpts.KubeClientSet, name, listOpts.Namespace)
|
||||||
|
@ -96,7 +97,7 @@ func TestStatus(t *testing.T) {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
prep: func(listOpts *addoninit.CommandAddonsListOption) error {
|
prep: func(listOpts *addoninit.CommandAddonsListOption) error {
|
||||||
if err := createKarmadaDeschedulerDeployment(listOpts.KubeClientSet, replicas, listOpts.Namespace); err != nil {
|
if err := createKarmadaDeschedulerDeployment(listOpts.KubeClientSet, replicas, listOpts.Namespace, priorityClass); err != nil {
|
||||||
return fmt.Errorf("failed to create karmada descheduler deployment, got error: %v", err)
|
return fmt.Errorf("failed to create karmada descheduler deployment, got error: %v", err)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@ -246,10 +247,11 @@ func TestDisableDescheduler(t *testing.T) {
|
||||||
// createKarmadaDeschedulerDeployment creates or updates a Deployment for the Karmada descheduler
|
// createKarmadaDeschedulerDeployment creates or updates a Deployment for the Karmada descheduler
|
||||||
// in the specified namespace with the provided number of replicas.
|
// in the specified namespace with the provided number of replicas.
|
||||||
// It parses and decodes the template for the Deployment before applying it to the cluster.
|
// It parses and decodes the template for the Deployment before applying it to the cluster.
|
||||||
func createKarmadaDeschedulerDeployment(c clientset.Interface, replicas int32, namespace string) error {
|
func createKarmadaDeschedulerDeployment(c clientset.Interface, replicas int32, namespace, priorityClass string) error {
|
||||||
karmadaDeschedulerDeploymentBytes, err := addonutils.ParseTemplate(karmadaDeschedulerDeployment, DeploymentReplace{
|
karmadaDeschedulerDeploymentBytes, err := addonutils.ParseTemplate(karmadaDeschedulerDeployment, DeploymentReplace{
|
||||||
Namespace: namespace,
|
Namespace: namespace,
|
||||||
Replicas: ptr.To[int32](replicas),
|
Replicas: ptr.To[int32](replicas),
|
||||||
|
PriorityClassName: priorityClass,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("error when parsing karmada descheduler deployment template: %v", err)
|
return fmt.Errorf("error when parsing karmada descheduler deployment template: %v", err)
|
||||||
|
|
|
@ -38,6 +38,7 @@ spec:
|
||||||
- key: node-role.kubernetes.io/master
|
- key: node-role.kubernetes.io/master
|
||||||
operator: Exists
|
operator: Exists
|
||||||
automountServiceAccountToken: false
|
automountServiceAccountToken: false
|
||||||
|
priorityClassName: {{ .PriorityClassName }}
|
||||||
containers:
|
containers:
|
||||||
- name: karmada-descheduler
|
- name: karmada-descheduler
|
||||||
image: {{ .Image }}
|
image: {{ .Image }}
|
||||||
|
@ -86,4 +87,5 @@ type DeploymentReplace struct {
|
||||||
Namespace string
|
Namespace string
|
||||||
Replicas *int32
|
Replicas *int32
|
||||||
Image string
|
Image string
|
||||||
|
PriorityClassName string
|
||||||
}
|
}
|
||||||
|
|
|
@ -84,16 +84,28 @@ func NewCmdAddonsEnable(parentCommand string) *cobra.Command {
|
||||||
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.")
|
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.")
|
||||||
flags.IntVar(&opts.WaitComponentReadyTimeout, "pod-timeout", options.WaitComponentReadyTimeout, "Wait pod ready timeout.")
|
flags.IntVar(&opts.WaitComponentReadyTimeout, "pod-timeout", options.WaitComponentReadyTimeout, "Wait pod ready timeout.")
|
||||||
flags.IntVar(&opts.WaitAPIServiceReadyTimeout, "apiservice-timeout", 30, "Wait apiservice ready timeout.")
|
flags.IntVar(&opts.WaitAPIServiceReadyTimeout, "apiservice-timeout", 30, "Wait apiservice ready timeout.")
|
||||||
flags.Int32Var(&opts.KarmadaSearchReplicas, "karmada-search-replicas", 1, "Karmada-search replica set")
|
|
||||||
flags.StringVar(&opts.KarmadaSearchImage, "karmada-search-image", addoninit.DefaultKarmadaSearchImage, "karmada-search image")
|
|
||||||
flags.Int32Var(&opts.KarmadaMetricsAdapterReplicas, "karmada-metrics-adapter-replicas", 1, "karmada-metrics-adapter replica set")
|
|
||||||
flags.StringVar(&opts.KarmadaMetricsAdapterImage, "karmada-metrics-adapter-image", addoninit.DefaultKarmadaMetricsAdapterImage, "karmada-metrics-adapter image")
|
|
||||||
flags.StringVar(&opts.KarmadaDeschedulerImage, "karmada-descheduler-image", addoninit.DefaultKarmadaDeschedulerImage, "karmada-descheduler image")
|
|
||||||
flags.Int32Var(&opts.KarmadaDeschedulerReplicas, "karmada-descheduler-replicas", 1, "karmada descheduler replica set")
|
|
||||||
flags.StringVar(&opts.KarmadaSchedulerEstimatorImage, "karmada-scheduler-estimator-image", addoninit.DefaultKarmadaSchedulerEstimatorImage, "karmada-scheduler-estimator image")
|
|
||||||
flags.Int32Var(&opts.KarmadaEstimatorReplicas, "karmada-estimator-replicas", 1, "karmada-scheduler-estimator replica set")
|
|
||||||
flags.StringVar(&opts.MemberKubeConfig, "member-kubeconfig", "", "Member cluster's kubeconfig which to deploy scheduler estimator")
|
flags.StringVar(&opts.MemberKubeConfig, "member-kubeconfig", "", "Member cluster's kubeconfig which to deploy scheduler estimator")
|
||||||
flags.StringVar(&opts.MemberContext, "member-context", "", "Member cluster's context which to deploy scheduler estimator")
|
flags.StringVar(&opts.MemberContext, "member-context", "", "Member cluster's context which to deploy scheduler estimator")
|
||||||
flags.StringVar(&opts.HostClusterDomain, "host-cluster-domain", globaloptions.DefaultHostClusterDomain, "The cluster domain of karmada host cluster. (e.g. --host-cluster-domain=host.karmada)")
|
flags.StringVar(&opts.HostClusterDomain, "host-cluster-domain", globaloptions.DefaultHostClusterDomain, "The cluster domain of karmada host cluster. (e.g. --host-cluster-domain=host.karmada)")
|
||||||
|
// Karmada-descheduler config
|
||||||
|
flags.StringVar(&opts.KarmadaDeschedulerImage, "karmada-descheduler-image", addoninit.DefaultKarmadaDeschedulerImage, "karmada-descheduler image")
|
||||||
|
flags.Int32Var(&opts.KarmadaDeschedulerReplicas, "karmada-descheduler-replicas", 1, "karmada descheduler replica set")
|
||||||
|
flags.StringVar(&opts.KarmadaDeschedulerPriorityClass, "descheduler-priority-class", "system-node-critical", "The priority class name for the component karmada-descheduler.")
|
||||||
|
|
||||||
|
// Karmada-estimator config
|
||||||
|
flags.StringVar(&opts.KarmadaSchedulerEstimatorImage, "karmada-scheduler-estimator-image", addoninit.DefaultKarmadaSchedulerEstimatorImage, "karmada-scheduler-estimator image")
|
||||||
|
flags.Int32Var(&opts.KarmadaEstimatorReplicas, "karmada-estimator-replicas", 1, "karmada-scheduler-estimator replica set")
|
||||||
|
flags.StringVar(&opts.EstimatorPriorityClass, "estimator-priority-class", "system-node-critical", "The priority class name for the component karmada-scheduler-estimator.")
|
||||||
|
|
||||||
|
// Karmada-metrics-adapter config
|
||||||
|
flags.Int32Var(&opts.KarmadaMetricsAdapterReplicas, "karmada-metrics-adapter-replicas", 1, "karmada-metrics-adapter replica set")
|
||||||
|
flags.StringVar(&opts.KarmadaMetricsAdapterImage, "karmada-metrics-adapter-image", addoninit.DefaultKarmadaMetricsAdapterImage, "karmada-metrics-adapter image")
|
||||||
|
flags.StringVar(&opts.KarmadaMetricsAdapterPriorityClass, "metrics-adapter-priority-class", "system-node-critical", "The priority class name for the component karmada-metrics-adaptor.")
|
||||||
|
|
||||||
|
// Karmada-search config
|
||||||
|
flags.Int32Var(&opts.KarmadaSearchReplicas, "karmada-search-replicas", 1, "Karmada-search replica set")
|
||||||
|
flags.StringVar(&opts.KarmadaSearchImage, "karmada-search-image", addoninit.DefaultKarmadaSearchImage, "karmada-search image")
|
||||||
|
flags.StringVar(&opts.SearchPriorityClass, "search-priority-class", "system-node-critical", "The priority class name for the component karmada-search.")
|
||||||
|
|
||||||
return cmd
|
return cmd
|
||||||
}
|
}
|
||||||
|
|
|
@ -114,6 +114,7 @@ var enableEstimator = func(opts *addoninit.CommandAddonsEnableOption) error {
|
||||||
Replicas: &opts.KarmadaEstimatorReplicas,
|
Replicas: &opts.KarmadaEstimatorReplicas,
|
||||||
Image: addoninit.KarmadaSchedulerEstimatorImage(opts),
|
Image: addoninit.KarmadaSchedulerEstimatorImage(opts),
|
||||||
MemberClusterName: opts.Cluster,
|
MemberClusterName: opts.Cluster,
|
||||||
|
PriorityClassName: opts.EstimatorPriorityClass,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("error when parsing karmada scheduler estimator deployment template :%v", err)
|
return fmt.Errorf("error when parsing karmada scheduler estimator deployment template :%v", err)
|
||||||
|
|
|
@ -40,6 +40,7 @@ spec:
|
||||||
- key: node-role.kubernetes.io/master
|
- key: node-role.kubernetes.io/master
|
||||||
operator: Exists
|
operator: Exists
|
||||||
automountServiceAccountToken: false
|
automountServiceAccountToken: false
|
||||||
|
priorityClassName: {{ .PriorityClassName }}
|
||||||
containers:
|
containers:
|
||||||
- name: karmada-scheduler-estimator
|
- name: karmada-scheduler-estimator
|
||||||
image: {{ .Image }}
|
image: {{ .Image }}
|
||||||
|
@ -108,6 +109,7 @@ type DeploymentReplace struct {
|
||||||
Replicas *int32
|
Replicas *int32
|
||||||
Image string
|
Image string
|
||||||
MemberClusterName string
|
MemberClusterName string
|
||||||
|
PriorityClassName string
|
||||||
}
|
}
|
||||||
|
|
||||||
// ServiceReplace is a struct to help to concrete
|
// ServiceReplace is a struct to help to concrete
|
||||||
|
|
|
@ -36,21 +36,25 @@ import (
|
||||||
type CommandAddonsEnableOption struct {
|
type CommandAddonsEnableOption struct {
|
||||||
GlobalCommandOptions
|
GlobalCommandOptions
|
||||||
|
|
||||||
|
// Karmada-search config
|
||||||
KarmadaSearchImage string
|
KarmadaSearchImage string
|
||||||
|
|
||||||
KarmadaSearchReplicas int32
|
KarmadaSearchReplicas int32
|
||||||
|
SearchPriorityClass string
|
||||||
|
|
||||||
|
// Karmada-descheduler config
|
||||||
KarmadaDeschedulerImage string
|
KarmadaDeschedulerImage string
|
||||||
|
|
||||||
KarmadaDeschedulerReplicas int32
|
KarmadaDeschedulerReplicas int32
|
||||||
|
KarmadaDeschedulerPriorityClass string
|
||||||
|
|
||||||
|
// Karmada-metrics-adapter config
|
||||||
KarmadaMetricsAdapterImage string
|
KarmadaMetricsAdapterImage string
|
||||||
|
|
||||||
KarmadaMetricsAdapterReplicas int32
|
KarmadaMetricsAdapterReplicas int32
|
||||||
|
KarmadaMetricsAdapterPriorityClass string
|
||||||
|
|
||||||
|
// Karmada-estimator config
|
||||||
KarmadaSchedulerEstimatorImage string
|
KarmadaSchedulerEstimatorImage string
|
||||||
|
|
||||||
KarmadaEstimatorReplicas int32
|
KarmadaEstimatorReplicas int32
|
||||||
|
EstimatorPriorityClass string
|
||||||
|
|
||||||
KarmadaKubeClientSet *kubernetes.Clientset
|
KarmadaKubeClientSet *kubernetes.Clientset
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@ type GlobalCommandOptions struct {
|
||||||
KubeConfig string
|
KubeConfig string
|
||||||
Context string
|
Context string
|
||||||
|
|
||||||
// KubeConfig holds karmada control plane KUBECONFIG file path.
|
// KarmadaConfig holds karmada control plane KUBECONFIG file path.
|
||||||
KarmadaConfig string
|
KarmadaConfig string
|
||||||
KarmadaContext string
|
KarmadaContext string
|
||||||
|
|
||||||
|
|
|
@ -39,6 +39,7 @@ spec:
|
||||||
apiserver: "true"
|
apiserver: "true"
|
||||||
spec:
|
spec:
|
||||||
automountServiceAccountToken: false
|
automountServiceAccountToken: false
|
||||||
|
priorityClassName: {{ .PriorityClassName }}
|
||||||
containers:
|
containers:
|
||||||
- name: karmada-metrics-adapter
|
- name: karmada-metrics-adapter
|
||||||
image: {{ .Image }}
|
image: {{ .Image }}
|
||||||
|
@ -144,6 +145,7 @@ type DeploymentReplace struct {
|
||||||
Namespace string
|
Namespace string
|
||||||
Replicas *int32
|
Replicas *int32
|
||||||
Image string
|
Image string
|
||||||
|
PriorityClassName string
|
||||||
}
|
}
|
||||||
|
|
||||||
// ServiceReplace is a struct to help to concrete
|
// ServiceReplace is a struct to help to concrete
|
||||||
|
|
|
@ -157,6 +157,7 @@ func installComponentsOnHostCluster(opts *addoninit.CommandAddonsEnableOption) e
|
||||||
Namespace: opts.Namespace,
|
Namespace: opts.Namespace,
|
||||||
Replicas: &opts.KarmadaMetricsAdapterReplicas,
|
Replicas: &opts.KarmadaMetricsAdapterReplicas,
|
||||||
Image: addoninit.KarmadaMetricsAdapterImage(opts),
|
Image: addoninit.KarmadaMetricsAdapterImage(opts),
|
||||||
|
PriorityClassName: opts.KarmadaMetricsAdapterPriorityClass,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("error when parsing karmada metrics adapter deployment template :%v", err)
|
return fmt.Errorf("error when parsing karmada metrics adapter deployment template :%v", err)
|
||||||
|
|
|
@ -42,6 +42,7 @@ import (
|
||||||
func TestStatus(t *testing.T) {
|
func TestStatus(t *testing.T) {
|
||||||
name, namespace := names.KarmadaMetricsAdapterComponentName, "test"
|
name, namespace := names.KarmadaMetricsAdapterComponentName, "test"
|
||||||
var replicas int32 = 2
|
var replicas int32 = 2
|
||||||
|
var priorityClassName = "system-node-critical"
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
listOpts *addoninit.CommandAddonsListOption
|
listOpts *addoninit.CommandAddonsListOption
|
||||||
|
@ -83,7 +84,7 @@ func TestStatus(t *testing.T) {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
prep: func(listOpts *addoninit.CommandAddonsListOption) error {
|
prep: func(listOpts *addoninit.CommandAddonsListOption) error {
|
||||||
if err := createKarmadaMetricsDeployment(listOpts.KubeClientSet, replicas, listOpts.Namespace); err != nil {
|
if err := createKarmadaMetricsDeployment(listOpts.KubeClientSet, replicas, listOpts.Namespace, priorityClassName); err != nil {
|
||||||
return fmt.Errorf("failed to create karmada metrics deployment, got error: %v", err)
|
return fmt.Errorf("failed to create karmada metrics deployment, got error: %v", err)
|
||||||
}
|
}
|
||||||
return addonutils.SimulateDeploymentUnready(listOpts.KubeClientSet, name, listOpts.Namespace)
|
return addonutils.SimulateDeploymentUnready(listOpts.KubeClientSet, name, listOpts.Namespace)
|
||||||
|
@ -100,7 +101,7 @@ func TestStatus(t *testing.T) {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
prep: func(listOpts *addoninit.CommandAddonsListOption) error {
|
prep: func(listOpts *addoninit.CommandAddonsListOption) error {
|
||||||
return createKarmadaMetricsDeployment(listOpts.KubeClientSet, replicas, listOpts.Namespace)
|
return createKarmadaMetricsDeployment(listOpts.KubeClientSet, replicas, listOpts.Namespace, priorityClassName)
|
||||||
},
|
},
|
||||||
wantStatus: addoninit.AddonDisabledStatus,
|
wantStatus: addoninit.AddonDisabledStatus,
|
||||||
},
|
},
|
||||||
|
@ -114,7 +115,7 @@ func TestStatus(t *testing.T) {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
prep: func(listOpts *addoninit.CommandAddonsListOption) error {
|
prep: func(listOpts *addoninit.CommandAddonsListOption) error {
|
||||||
if err := createKarmadaMetricsDeployment(listOpts.KubeClientSet, replicas, listOpts.Namespace); err != nil {
|
if err := createKarmadaMetricsDeployment(listOpts.KubeClientSet, replicas, listOpts.Namespace, priorityClassName); err != nil {
|
||||||
return fmt.Errorf("failed to create karmada metrics deployment, got error: %v", err)
|
return fmt.Errorf("failed to create karmada metrics deployment, got error: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -136,7 +137,7 @@ func TestStatus(t *testing.T) {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
prep: func(listOpts *addoninit.CommandAddonsListOption) error {
|
prep: func(listOpts *addoninit.CommandAddonsListOption) error {
|
||||||
if err := createKarmadaMetricsDeployment(listOpts.KubeClientSet, replicas, listOpts.Namespace); err != nil {
|
if err := createKarmadaMetricsDeployment(listOpts.KubeClientSet, replicas, listOpts.Namespace, priorityClassName); err != nil {
|
||||||
return fmt.Errorf("failed to create karmada metrics deployment, got error: %v", err)
|
return fmt.Errorf("failed to create karmada metrics deployment, got error: %v", err)
|
||||||
}
|
}
|
||||||
return createAndMarkAAAPIServicesAvailable(listOpts.KarmadaAggregatorClientSet)
|
return createAndMarkAAAPIServicesAvailable(listOpts.KarmadaAggregatorClientSet)
|
||||||
|
@ -169,10 +170,11 @@ func TestStatus(t *testing.T) {
|
||||||
// createKarmadaMetricsDeployment creates or updates a Deployment for the Karmada metrics adapter
|
// createKarmadaMetricsDeployment creates or updates a Deployment for the Karmada metrics adapter
|
||||||
// in the specified namespace with the provided number of replicas.
|
// in the specified namespace with the provided number of replicas.
|
||||||
// It parses and decodes the template for the Deployment before applying it to the cluster.
|
// It parses and decodes the template for the Deployment before applying it to the cluster.
|
||||||
func createKarmadaMetricsDeployment(c clientset.Interface, replicas int32, namespace string) error {
|
func createKarmadaMetricsDeployment(c clientset.Interface, replicas int32, namespace, priorityClass string) error {
|
||||||
karmadaMetricsAdapterDeploymentBytes, err := addonutils.ParseTemplate(karmadaMetricsAdapterDeployment, DeploymentReplace{
|
karmadaMetricsAdapterDeploymentBytes, err := addonutils.ParseTemplate(karmadaMetricsAdapterDeployment, DeploymentReplace{
|
||||||
Namespace: namespace,
|
Namespace: namespace,
|
||||||
Replicas: ptr.To[int32](replicas),
|
Replicas: ptr.To[int32](replicas),
|
||||||
|
PriorityClassName: priorityClass,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("error when parsing karmada metrics adapter deployment template :%v", err)
|
return fmt.Errorf("error when parsing karmada metrics adapter deployment template :%v", err)
|
||||||
|
|
|
@ -38,6 +38,7 @@ spec:
|
||||||
app: karmada-search
|
app: karmada-search
|
||||||
apiserver: "true"
|
apiserver: "true"
|
||||||
spec:
|
spec:
|
||||||
|
priorityClassName: {{ .PriorityClassName }}
|
||||||
automountServiceAccountToken: false
|
automountServiceAccountToken: false
|
||||||
containers:
|
containers:
|
||||||
- name: karmada-search
|
- name: karmada-search
|
||||||
|
@ -143,6 +144,7 @@ type DeploymentReplace struct {
|
||||||
Image string
|
Image string
|
||||||
ETCDSevers string
|
ETCDSevers string
|
||||||
KeyPrefix string
|
KeyPrefix string
|
||||||
|
PriorityClassName string
|
||||||
}
|
}
|
||||||
|
|
||||||
// ServiceReplace is a struct to help to concrete
|
// ServiceReplace is a struct to help to concrete
|
||||||
|
|
|
@ -170,6 +170,7 @@ func installComponentsOnHostCluster(opts *addoninit.CommandAddonsEnableOption) e
|
||||||
ETCDSevers: etcdServers,
|
ETCDSevers: etcdServers,
|
||||||
KeyPrefix: keyPrefix,
|
KeyPrefix: keyPrefix,
|
||||||
Image: addoninit.KarmadaSearchImage(opts),
|
Image: addoninit.KarmadaSearchImage(opts),
|
||||||
|
PriorityClassName: opts.SearchPriorityClass,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("error when parsing karmada search deployment template :%v", err)
|
return fmt.Errorf("error when parsing karmada search deployment template :%v", err)
|
||||||
|
|
|
@ -41,6 +41,7 @@ import (
|
||||||
func TestKarmadaSearchAddonStatus(t *testing.T) {
|
func TestKarmadaSearchAddonStatus(t *testing.T) {
|
||||||
name, namespace := names.KarmadaSearchComponentName, "test"
|
name, namespace := names.KarmadaSearchComponentName, "test"
|
||||||
var replicas int32 = 2
|
var replicas int32 = 2
|
||||||
|
var priorityClass = "system-node-critical"
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
name string
|
name string
|
||||||
listOpts *addoninit.CommandAddonsListOption
|
listOpts *addoninit.CommandAddonsListOption
|
||||||
|
@ -82,7 +83,7 @@ func TestKarmadaSearchAddonStatus(t *testing.T) {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
prep: func(listOpts *addoninit.CommandAddonsListOption) error {
|
prep: func(listOpts *addoninit.CommandAddonsListOption) error {
|
||||||
if err := createKarmadaSearchDeployment(listOpts.KubeClientSet, replicas, listOpts.Namespace); err != nil {
|
if err := createKarmadaSearchDeployment(listOpts.KubeClientSet, replicas, listOpts.Namespace, priorityClass); err != nil {
|
||||||
return fmt.Errorf("failed to create karmada search deployment, got error: %v", err)
|
return fmt.Errorf("failed to create karmada search deployment, got error: %v", err)
|
||||||
}
|
}
|
||||||
return addonutils.SimulateDeploymentUnready(listOpts.KubeClientSet, name, listOpts.Namespace)
|
return addonutils.SimulateDeploymentUnready(listOpts.KubeClientSet, name, listOpts.Namespace)
|
||||||
|
@ -100,7 +101,7 @@ func TestKarmadaSearchAddonStatus(t *testing.T) {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
prep: func(listOpts *addoninit.CommandAddonsListOption) error {
|
prep: func(listOpts *addoninit.CommandAddonsListOption) error {
|
||||||
return createKarmadaSearchDeployment(listOpts.KubeClientSet, replicas, listOpts.Namespace)
|
return createKarmadaSearchDeployment(listOpts.KubeClientSet, replicas, listOpts.Namespace, priorityClass)
|
||||||
},
|
},
|
||||||
wantStatus: addoninit.AddonDisabledStatus,
|
wantStatus: addoninit.AddonDisabledStatus,
|
||||||
},
|
},
|
||||||
|
@ -114,7 +115,7 @@ func TestKarmadaSearchAddonStatus(t *testing.T) {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
prep: func(listOpts *addoninit.CommandAddonsListOption) error {
|
prep: func(listOpts *addoninit.CommandAddonsListOption) error {
|
||||||
if err := createKarmadaSearchDeployment(listOpts.KubeClientSet, replicas, listOpts.Namespace); err != nil {
|
if err := createKarmadaSearchDeployment(listOpts.KubeClientSet, replicas, listOpts.Namespace, priorityClass); err != nil {
|
||||||
return fmt.Errorf("failed to create karmada search deployment, got error: %v", err)
|
return fmt.Errorf("failed to create karmada search deployment, got error: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -136,7 +137,7 @@ func TestKarmadaSearchAddonStatus(t *testing.T) {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
prep: func(listOpts *addoninit.CommandAddonsListOption) error {
|
prep: func(listOpts *addoninit.CommandAddonsListOption) error {
|
||||||
if err := createKarmadaSearchDeployment(listOpts.KubeClientSet, replicas, listOpts.Namespace); err != nil {
|
if err := createKarmadaSearchDeployment(listOpts.KubeClientSet, replicas, listOpts.Namespace, priorityClass); err != nil {
|
||||||
return fmt.Errorf("failed to create karmada search deployment, got error: %v", err)
|
return fmt.Errorf("failed to create karmada search deployment, got error: %v", err)
|
||||||
}
|
}
|
||||||
return createAndMarkAAAPIServiceAvailable(listOpts.KarmadaAggregatorClientSet)
|
return createAndMarkAAAPIServiceAvailable(listOpts.KarmadaAggregatorClientSet)
|
||||||
|
@ -169,10 +170,11 @@ func TestKarmadaSearchAddonStatus(t *testing.T) {
|
||||||
// createKarmadaSearchDeployment creates or updates a Deployment for the Karmada search deployment
|
// createKarmadaSearchDeployment creates or updates a Deployment for the Karmada search deployment
|
||||||
// in the specified namespace with the provided number of replicas.
|
// in the specified namespace with the provided number of replicas.
|
||||||
// It parses and decodes the template for the Deployment before applying it to the cluster.
|
// It parses and decodes the template for the Deployment before applying it to the cluster.
|
||||||
func createKarmadaSearchDeployment(c clientset.Interface, replicas int32, namespace string) error {
|
func createKarmadaSearchDeployment(c clientset.Interface, replicas int32, namespace, priorityClass string) error {
|
||||||
karmadaSearchDeploymentBytes, err := addonutils.ParseTemplate(karmadaSearchDeployment, DeploymentReplace{
|
karmadaSearchDeploymentBytes, err := addonutils.ParseTemplate(karmadaSearchDeployment, DeploymentReplace{
|
||||||
Namespace: namespace,
|
Namespace: namespace,
|
||||||
Replicas: ptr.To(replicas),
|
Replicas: ptr.To(replicas),
|
||||||
|
PriorityClassName: priorityClass,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("error when parsing karmada search deployment template :%v", err)
|
return fmt.Errorf("error when parsing karmada search deployment template :%v", err)
|
||||||
|
|
Loading…
Reference in New Issue