Merge pull request #6111 from zhzhuang-zju/priorityclass-addon
Add Support for Component Priority Class Configuration in karmadactl addon
This commit is contained in:
commit
b763c681d8
|
@ -60,9 +60,10 @@ var status = func(opts *addoninit.CommandAddonsListOption) (string, error) {
|
|||
var enableDescheduler = func(opts *addoninit.CommandAddonsEnableOption) error {
|
||||
// install karmada descheduler deployment on host cluster
|
||||
karmadaDeschedulerDeploymentBytes, err := addonutils.ParseTemplate(karmadaDeschedulerDeployment, DeploymentReplace{
|
||||
Namespace: opts.Namespace,
|
||||
Replicas: &opts.KarmadaDeschedulerReplicas,
|
||||
Image: addoninit.KarmadaDeschedulerImage(opts),
|
||||
Namespace: opts.Namespace,
|
||||
Replicas: &opts.KarmadaDeschedulerReplicas,
|
||||
Image: addoninit.KarmadaDeschedulerImage(opts),
|
||||
PriorityClassName: opts.KarmadaDeschedulerPriorityClass,
|
||||
})
|
||||
if err != nil {
|
||||
return fmt.Errorf("error when parsing karmada descheduler deployment template :%v", err)
|
||||
|
|
|
@ -39,6 +39,7 @@ import (
|
|||
func TestStatus(t *testing.T) {
|
||||
name, namespace := names.KarmadaDeschedulerComponentName, "test"
|
||||
var replicas int32 = 2
|
||||
var priorityClass = "system-node-critical"
|
||||
tests := []struct {
|
||||
name string
|
||||
listOpts *addoninit.CommandAddonsListOption
|
||||
|
@ -80,7 +81,7 @@ func TestStatus(t *testing.T) {
|
|||
},
|
||||
},
|
||||
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 addonutils.SimulateDeploymentUnready(listOpts.KubeClientSet, name, listOpts.Namespace)
|
||||
|
@ -96,7 +97,7 @@ func TestStatus(t *testing.T) {
|
|||
},
|
||||
},
|
||||
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 nil
|
||||
|
@ -246,10 +247,11 @@ func TestDisableDescheduler(t *testing.T) {
|
|||
// createKarmadaDeschedulerDeployment creates or updates a Deployment for the Karmada descheduler
|
||||
// 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.
|
||||
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{
|
||||
Namespace: namespace,
|
||||
Replicas: ptr.To[int32](replicas),
|
||||
Namespace: namespace,
|
||||
Replicas: ptr.To[int32](replicas),
|
||||
PriorityClassName: priorityClass,
|
||||
})
|
||||
if err != nil {
|
||||
return fmt.Errorf("error when parsing karmada descheduler deployment template: %v", err)
|
||||
|
|
|
@ -38,6 +38,7 @@ spec:
|
|||
- key: node-role.kubernetes.io/master
|
||||
operator: Exists
|
||||
automountServiceAccountToken: false
|
||||
priorityClassName: {{ .PriorityClassName }}
|
||||
containers:
|
||||
- name: karmada-descheduler
|
||||
image: {{ .Image }}
|
||||
|
@ -83,7 +84,8 @@ spec:
|
|||
// DeploymentReplace is a struct to help to concrete
|
||||
// the karmada-descheduler deployment bytes with the deployment template
|
||||
type DeploymentReplace struct {
|
||||
Namespace string
|
||||
Replicas *int32
|
||||
Image string
|
||||
Namespace string
|
||||
Replicas *int32
|
||||
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.IntVar(&opts.WaitComponentReadyTimeout, "pod-timeout", options.WaitComponentReadyTimeout, "Wait pod 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.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)")
|
||||
// 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
|
||||
}
|
||||
|
|
|
@ -114,6 +114,7 @@ var enableEstimator = func(opts *addoninit.CommandAddonsEnableOption) error {
|
|||
Replicas: &opts.KarmadaEstimatorReplicas,
|
||||
Image: addoninit.KarmadaSchedulerEstimatorImage(opts),
|
||||
MemberClusterName: opts.Cluster,
|
||||
PriorityClassName: opts.EstimatorPriorityClass,
|
||||
})
|
||||
if err != nil {
|
||||
return fmt.Errorf("error when parsing karmada scheduler estimator deployment template :%v", err)
|
||||
|
|
|
@ -40,6 +40,7 @@ spec:
|
|||
- key: node-role.kubernetes.io/master
|
||||
operator: Exists
|
||||
automountServiceAccountToken: false
|
||||
priorityClassName: {{ .PriorityClassName }}
|
||||
containers:
|
||||
- name: karmada-scheduler-estimator
|
||||
image: {{ .Image }}
|
||||
|
@ -108,6 +109,7 @@ type DeploymentReplace struct {
|
|||
Replicas *int32
|
||||
Image string
|
||||
MemberClusterName string
|
||||
PriorityClassName string
|
||||
}
|
||||
|
||||
// ServiceReplace is a struct to help to concrete
|
||||
|
|
|
@ -36,21 +36,25 @@ import (
|
|||
type CommandAddonsEnableOption struct {
|
||||
GlobalCommandOptions
|
||||
|
||||
KarmadaSearchImage string
|
||||
|
||||
// Karmada-search config
|
||||
KarmadaSearchImage string
|
||||
KarmadaSearchReplicas int32
|
||||
SearchPriorityClass string
|
||||
|
||||
KarmadaDeschedulerImage string
|
||||
// Karmada-descheduler config
|
||||
KarmadaDeschedulerImage string
|
||||
KarmadaDeschedulerReplicas int32
|
||||
KarmadaDeschedulerPriorityClass string
|
||||
|
||||
KarmadaDeschedulerReplicas int32
|
||||
|
||||
KarmadaMetricsAdapterImage string
|
||||
|
||||
KarmadaMetricsAdapterReplicas int32
|
||||
// Karmada-metrics-adapter config
|
||||
KarmadaMetricsAdapterImage string
|
||||
KarmadaMetricsAdapterReplicas int32
|
||||
KarmadaMetricsAdapterPriorityClass string
|
||||
|
||||
// Karmada-estimator config
|
||||
KarmadaSchedulerEstimatorImage string
|
||||
|
||||
KarmadaEstimatorReplicas int32
|
||||
KarmadaEstimatorReplicas int32
|
||||
EstimatorPriorityClass string
|
||||
|
||||
KarmadaKubeClientSet *kubernetes.Clientset
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ type GlobalCommandOptions struct {
|
|||
KubeConfig string
|
||||
Context string
|
||||
|
||||
// KubeConfig holds karmada control plane KUBECONFIG file path.
|
||||
// KarmadaConfig holds karmada control plane KUBECONFIG file path.
|
||||
KarmadaConfig string
|
||||
KarmadaContext string
|
||||
|
||||
|
|
|
@ -39,6 +39,7 @@ spec:
|
|||
apiserver: "true"
|
||||
spec:
|
||||
automountServiceAccountToken: false
|
||||
priorityClassName: {{ .PriorityClassName }}
|
||||
containers:
|
||||
- name: karmada-metrics-adapter
|
||||
image: {{ .Image }}
|
||||
|
@ -141,9 +142,10 @@ spec:
|
|||
// DeploymentReplace is a struct to help to concrete
|
||||
// the karmada-metrics-adapter deployment bytes with the deployment template
|
||||
type DeploymentReplace struct {
|
||||
Namespace string
|
||||
Replicas *int32
|
||||
Image string
|
||||
Namespace string
|
||||
Replicas *int32
|
||||
Image string
|
||||
PriorityClassName string
|
||||
}
|
||||
|
||||
// ServiceReplace is a struct to help to concrete
|
||||
|
|
|
@ -154,9 +154,10 @@ func installComponentsOnHostCluster(opts *addoninit.CommandAddonsEnableOption) e
|
|||
|
||||
// install karmada metrics adapter deployment on host clusters
|
||||
karmadaMetricsAdapterDeploymentBytes, err := addonutils.ParseTemplate(karmadaMetricsAdapterDeployment, DeploymentReplace{
|
||||
Namespace: opts.Namespace,
|
||||
Replicas: &opts.KarmadaMetricsAdapterReplicas,
|
||||
Image: addoninit.KarmadaMetricsAdapterImage(opts),
|
||||
Namespace: opts.Namespace,
|
||||
Replicas: &opts.KarmadaMetricsAdapterReplicas,
|
||||
Image: addoninit.KarmadaMetricsAdapterImage(opts),
|
||||
PriorityClassName: opts.KarmadaMetricsAdapterPriorityClass,
|
||||
})
|
||||
if err != nil {
|
||||
return fmt.Errorf("error when parsing karmada metrics adapter deployment template :%v", err)
|
||||
|
|
|
@ -42,6 +42,7 @@ import (
|
|||
func TestStatus(t *testing.T) {
|
||||
name, namespace := names.KarmadaMetricsAdapterComponentName, "test"
|
||||
var replicas int32 = 2
|
||||
var priorityClassName = "system-node-critical"
|
||||
tests := []struct {
|
||||
name string
|
||||
listOpts *addoninit.CommandAddonsListOption
|
||||
|
@ -83,7 +84,7 @@ func TestStatus(t *testing.T) {
|
|||
},
|
||||
},
|
||||
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 addonutils.SimulateDeploymentUnready(listOpts.KubeClientSet, name, listOpts.Namespace)
|
||||
|
@ -100,7 +101,7 @@ func TestStatus(t *testing.T) {
|
|||
},
|
||||
},
|
||||
prep: func(listOpts *addoninit.CommandAddonsListOption) error {
|
||||
return createKarmadaMetricsDeployment(listOpts.KubeClientSet, replicas, listOpts.Namespace)
|
||||
return createKarmadaMetricsDeployment(listOpts.KubeClientSet, replicas, listOpts.Namespace, priorityClassName)
|
||||
},
|
||||
wantStatus: addoninit.AddonDisabledStatus,
|
||||
},
|
||||
|
@ -114,7 +115,7 @@ func TestStatus(t *testing.T) {
|
|||
},
|
||||
},
|
||||
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)
|
||||
}
|
||||
|
||||
|
@ -136,7 +137,7 @@ func TestStatus(t *testing.T) {
|
|||
},
|
||||
},
|
||||
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 createAndMarkAAAPIServicesAvailable(listOpts.KarmadaAggregatorClientSet)
|
||||
|
@ -169,10 +170,11 @@ func TestStatus(t *testing.T) {
|
|||
// createKarmadaMetricsDeployment creates or updates a Deployment for the Karmada metrics adapter
|
||||
// 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.
|
||||
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{
|
||||
Namespace: namespace,
|
||||
Replicas: ptr.To[int32](replicas),
|
||||
Namespace: namespace,
|
||||
Replicas: ptr.To[int32](replicas),
|
||||
PriorityClassName: priorityClass,
|
||||
})
|
||||
if err != nil {
|
||||
return fmt.Errorf("error when parsing karmada metrics adapter deployment template :%v", err)
|
||||
|
|
|
@ -38,6 +38,7 @@ spec:
|
|||
app: karmada-search
|
||||
apiserver: "true"
|
||||
spec:
|
||||
priorityClassName: {{ .PriorityClassName }}
|
||||
automountServiceAccountToken: false
|
||||
containers:
|
||||
- name: karmada-search
|
||||
|
@ -138,11 +139,12 @@ spec:
|
|||
// DeploymentReplace is a struct to help to concrete
|
||||
// the karmada-search deployment bytes with the deployment template
|
||||
type DeploymentReplace struct {
|
||||
Namespace string
|
||||
Replicas *int32
|
||||
Image string
|
||||
ETCDSevers string
|
||||
KeyPrefix string
|
||||
Namespace string
|
||||
Replicas *int32
|
||||
Image string
|
||||
ETCDSevers string
|
||||
KeyPrefix string
|
||||
PriorityClassName string
|
||||
}
|
||||
|
||||
// ServiceReplace is a struct to help to concrete
|
||||
|
|
|
@ -165,11 +165,12 @@ func installComponentsOnHostCluster(opts *addoninit.CommandAddonsEnableOption) e
|
|||
|
||||
// install karmada search deployment on host clusters
|
||||
karmadaSearchDeploymentBytes, err := addonutils.ParseTemplate(karmadaSearchDeployment, DeploymentReplace{
|
||||
Namespace: opts.Namespace,
|
||||
Replicas: &opts.KarmadaSearchReplicas,
|
||||
ETCDSevers: etcdServers,
|
||||
KeyPrefix: keyPrefix,
|
||||
Image: addoninit.KarmadaSearchImage(opts),
|
||||
Namespace: opts.Namespace,
|
||||
Replicas: &opts.KarmadaSearchReplicas,
|
||||
ETCDSevers: etcdServers,
|
||||
KeyPrefix: keyPrefix,
|
||||
Image: addoninit.KarmadaSearchImage(opts),
|
||||
PriorityClassName: opts.SearchPriorityClass,
|
||||
})
|
||||
if err != nil {
|
||||
return fmt.Errorf("error when parsing karmada search deployment template :%v", err)
|
||||
|
|
|
@ -41,6 +41,7 @@ import (
|
|||
func TestKarmadaSearchAddonStatus(t *testing.T) {
|
||||
name, namespace := names.KarmadaSearchComponentName, "test"
|
||||
var replicas int32 = 2
|
||||
var priorityClass = "system-node-critical"
|
||||
tests := []struct {
|
||||
name string
|
||||
listOpts *addoninit.CommandAddonsListOption
|
||||
|
@ -82,7 +83,7 @@ func TestKarmadaSearchAddonStatus(t *testing.T) {
|
|||
},
|
||||
},
|
||||
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 addonutils.SimulateDeploymentUnready(listOpts.KubeClientSet, name, listOpts.Namespace)
|
||||
|
@ -100,7 +101,7 @@ func TestKarmadaSearchAddonStatus(t *testing.T) {
|
|||
},
|
||||
},
|
||||
prep: func(listOpts *addoninit.CommandAddonsListOption) error {
|
||||
return createKarmadaSearchDeployment(listOpts.KubeClientSet, replicas, listOpts.Namespace)
|
||||
return createKarmadaSearchDeployment(listOpts.KubeClientSet, replicas, listOpts.Namespace, priorityClass)
|
||||
},
|
||||
wantStatus: addoninit.AddonDisabledStatus,
|
||||
},
|
||||
|
@ -114,7 +115,7 @@ func TestKarmadaSearchAddonStatus(t *testing.T) {
|
|||
},
|
||||
},
|
||||
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)
|
||||
}
|
||||
|
||||
|
@ -136,7 +137,7 @@ func TestKarmadaSearchAddonStatus(t *testing.T) {
|
|||
},
|
||||
},
|
||||
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 createAndMarkAAAPIServiceAvailable(listOpts.KarmadaAggregatorClientSet)
|
||||
|
@ -169,10 +170,11 @@ func TestKarmadaSearchAddonStatus(t *testing.T) {
|
|||
// createKarmadaSearchDeployment creates or updates a Deployment for the Karmada search deployment
|
||||
// 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.
|
||||
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{
|
||||
Namespace: namespace,
|
||||
Replicas: ptr.To(replicas),
|
||||
Namespace: namespace,
|
||||
Replicas: ptr.To(replicas),
|
||||
PriorityClassName: priorityClass,
|
||||
})
|
||||
if err != nil {
|
||||
return fmt.Errorf("error when parsing karmada search deployment template :%v", err)
|
||||
|
|
Loading…
Reference in New Issue