Merge pull request #4210 from wawa0210/master
fix karmada instance aggregated service externalName error
This commit is contained in:
commit
fd03daa313
|
@ -30,22 +30,22 @@ func init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// EnsureAggregatedAPIService creates aggregated APIService and a service
|
// EnsureAggregatedAPIService creates aggregated APIService and a service
|
||||||
func EnsureAggregatedAPIService(aggregatorClient *aggregator.Clientset, client clientset.Interface, name, namespace, caBundle string) error {
|
func EnsureAggregatedAPIService(aggregatorClient *aggregator.Clientset, client clientset.Interface, karmadaControlPlaneServiceName, karmadaControlPlaneNamespace, hostClusterServiceName, hostClusterNamespace, caBundle string) error {
|
||||||
if err := aggregatedApiserverService(client, name, namespace); err != nil {
|
if err := aggregatedApiserverService(client, karmadaControlPlaneServiceName, karmadaControlPlaneNamespace, hostClusterServiceName, hostClusterNamespace); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
return aggregatedAPIService(aggregatorClient, name, namespace, caBundle)
|
return aggregatedAPIService(aggregatorClient, karmadaControlPlaneServiceName, karmadaControlPlaneNamespace, caBundle)
|
||||||
}
|
}
|
||||||
|
|
||||||
func aggregatedAPIService(client *aggregator.Clientset, name, namespace, caBundle string) error {
|
func aggregatedAPIService(client *aggregator.Clientset, karmadaControlPlaneServiceName, karmadaControlPlaneNamespace, caBundle string) error {
|
||||||
apiServiceBytes, err := util.ParseTemplate(KarmadaAggregatedAPIService, struct {
|
apiServiceBytes, err := util.ParseTemplate(KarmadaAggregatedAPIService, struct {
|
||||||
Namespace string
|
Namespace string
|
||||||
ServiceName string
|
ServiceName string
|
||||||
CABundle string
|
CABundle string
|
||||||
}{
|
}{
|
||||||
Namespace: namespace,
|
Namespace: karmadaControlPlaneNamespace,
|
||||||
ServiceName: util.KarmadaAggregatedAPIServerName(name),
|
ServiceName: util.KarmadaAggregatedAPIServerName(karmadaControlPlaneServiceName),
|
||||||
CABundle: caBundle,
|
CABundle: caBundle,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -60,13 +60,17 @@ func aggregatedAPIService(client *aggregator.Clientset, name, namespace, caBundl
|
||||||
return apiclient.CreateOrUpdateAPIService(client, apiService)
|
return apiclient.CreateOrUpdateAPIService(client, apiService)
|
||||||
}
|
}
|
||||||
|
|
||||||
func aggregatedApiserverService(client clientset.Interface, name, namespace string) error {
|
func aggregatedApiserverService(client clientset.Interface, karmadaControlPlaneServiceName, karmadaControlPlaneNamespace, hostClusterServiceName, hostClusterNamespace string) error {
|
||||||
aggregatedApiserverServiceBytes, err := util.ParseTemplate(KarmadaAggregatedApiserverService, struct {
|
aggregatedApiserverServiceBytes, err := util.ParseTemplate(KarmadaAggregatedApiserverService, struct {
|
||||||
Namespace string
|
Namespace string
|
||||||
ServiceName string
|
ServiceName string
|
||||||
|
HostClusterServiceName string
|
||||||
|
HostClusterNamespace string
|
||||||
}{
|
}{
|
||||||
Namespace: namespace,
|
Namespace: karmadaControlPlaneNamespace,
|
||||||
ServiceName: util.KarmadaAggregatedAPIServerName(name),
|
ServiceName: util.KarmadaAggregatedAPIServerName(karmadaControlPlaneServiceName),
|
||||||
|
HostClusterServiceName: util.KarmadaAggregatedAPIServerName(hostClusterServiceName),
|
||||||
|
HostClusterNamespace: hostClusterNamespace,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("error when parsing AggregatedApiserver Service template: %w", err)
|
return fmt.Errorf("error when parsing AggregatedApiserver Service template: %w", err)
|
||||||
|
@ -81,15 +85,15 @@ func aggregatedApiserverService(client clientset.Interface, name, namespace stri
|
||||||
}
|
}
|
||||||
|
|
||||||
// EnsureMetricsAdapterAPIService creates APIService and a service for karmada-metrics-adapter
|
// EnsureMetricsAdapterAPIService creates APIService and a service for karmada-metrics-adapter
|
||||||
func EnsureMetricsAdapterAPIService(aggregatorClient *aggregator.Clientset, client clientset.Interface, name, namespace, caBundle string) error {
|
func EnsureMetricsAdapterAPIService(aggregatorClient *aggregator.Clientset, client clientset.Interface, karmadaControlPlaneServiceName, karmadaControlPlaneNamespace, hostClusterServiceName, hostClusterNamespace, caBundle string) error {
|
||||||
if err := karmadaMetricsAdapterService(client, name, namespace); err != nil {
|
if err := karmadaMetricsAdapterService(client, karmadaControlPlaneServiceName, karmadaControlPlaneNamespace, hostClusterServiceName, hostClusterNamespace); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
return karmadaMetricsAdapterAPIService(aggregatorClient, name, namespace, caBundle)
|
return karmadaMetricsAdapterAPIService(aggregatorClient, karmadaControlPlaneServiceName, karmadaControlPlaneNamespace, caBundle)
|
||||||
}
|
}
|
||||||
|
|
||||||
func karmadaMetricsAdapterAPIService(client *aggregator.Clientset, name, namespace, caBundle string) error {
|
func karmadaMetricsAdapterAPIService(client *aggregator.Clientset, karmadaControlPlaneServiceName, karmadaControlPlaneNamespace, caBundle string) error {
|
||||||
for _, gv := range constants.KarmadaMetricsAdapterAPIServices {
|
for _, gv := range constants.KarmadaMetricsAdapterAPIServices {
|
||||||
// The APIService name to metrics adapter is "$version.$group"
|
// The APIService name to metrics adapter is "$version.$group"
|
||||||
apiServiceName := fmt.Sprintf("%s.%s", gv.Version, gv.Group)
|
apiServiceName := fmt.Sprintf("%s.%s", gv.Version, gv.Group)
|
||||||
|
@ -100,10 +104,10 @@ func karmadaMetricsAdapterAPIService(client *aggregator.Clientset, name, namespa
|
||||||
CABundle string
|
CABundle string
|
||||||
}{
|
}{
|
||||||
Name: apiServiceName,
|
Name: apiServiceName,
|
||||||
Namespace: namespace,
|
Namespace: karmadaControlPlaneNamespace,
|
||||||
Group: gv.Group,
|
Group: gv.Group,
|
||||||
Version: gv.Version,
|
Version: gv.Version,
|
||||||
ServiceName: util.KarmadaMetricsAdapterName(name),
|
ServiceName: util.KarmadaMetricsAdapterName(karmadaControlPlaneServiceName),
|
||||||
CABundle: caBundle,
|
CABundle: caBundle,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -123,13 +127,17 @@ func karmadaMetricsAdapterAPIService(client *aggregator.Clientset, name, namespa
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func karmadaMetricsAdapterService(client clientset.Interface, name, namespace string) error {
|
func karmadaMetricsAdapterService(client clientset.Interface, karmadaControlPlaneServiceName, karmadaControlPlaneNamespace, hostClusterServiceName, hostClusterNamespace string) error {
|
||||||
aggregatedApiserverServiceBytes, err := util.ParseTemplate(KarmadaMetricsAdapterService, struct {
|
aggregatedApiserverServiceBytes, err := util.ParseTemplate(KarmadaMetricsAdapterService, struct {
|
||||||
Namespace string
|
Namespace string
|
||||||
ServiceName string
|
ServiceName string
|
||||||
|
HostClusterServiceName string
|
||||||
|
HostClusterNamespace string
|
||||||
}{
|
}{
|
||||||
Namespace: namespace,
|
Namespace: karmadaControlPlaneNamespace,
|
||||||
ServiceName: util.KarmadaMetricsAdapterName(name),
|
ServiceName: util.KarmadaMetricsAdapterName(karmadaControlPlaneServiceName),
|
||||||
|
HostClusterServiceName: util.KarmadaMetricsAdapterName(hostClusterServiceName),
|
||||||
|
HostClusterNamespace: hostClusterNamespace,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("error when parsing KarmadaMetricsAdapter Service template: %w", err)
|
return fmt.Errorf("error when parsing KarmadaMetricsAdapter Service template: %w", err)
|
||||||
|
|
|
@ -30,7 +30,7 @@ metadata:
|
||||||
namespace: {{ .Namespace }}
|
namespace: {{ .Namespace }}
|
||||||
spec:
|
spec:
|
||||||
type: ExternalName
|
type: ExternalName
|
||||||
externalName: {{ .ServiceName }}.{{ .Namespace }}.svc
|
externalName: {{ .HostClusterServiceName }}.{{ .HostClusterNamespace }}.svc
|
||||||
`
|
`
|
||||||
|
|
||||||
// KarmadaMetricsAdapterAPIService is karmada-metrics-adapter APIService manifest
|
// KarmadaMetricsAdapterAPIService is karmada-metrics-adapter APIService manifest
|
||||||
|
@ -59,6 +59,6 @@ metadata:
|
||||||
namespace: {{ .Namespace }}
|
namespace: {{ .Namespace }}
|
||||||
spec:
|
spec:
|
||||||
type: ExternalName
|
type: ExternalName
|
||||||
externalName: {{ .ServiceName }}.{{ .Namespace }}.svc
|
externalName: {{ .HostClusterServiceName }}.{{ .HostClusterNamespace }}.svc
|
||||||
`
|
`
|
||||||
)
|
)
|
||||||
|
|
|
@ -192,7 +192,7 @@ func runDeployMetricAdapterAPIService(r workflow.RunData) error {
|
||||||
}
|
}
|
||||||
caBase64 := base64.StdEncoding.EncodeToString(cert.CertData())
|
caBase64 := base64.StdEncoding.EncodeToString(cert.CertData())
|
||||||
|
|
||||||
err = apiservice.EnsureMetricsAdapterAPIService(client, data.KarmadaClient(), data.GetName(), data.GetNamespace(), caBase64)
|
err = apiservice.EnsureMetricsAdapterAPIService(client, data.KarmadaClient(), data.GetName(), constants.KarmadaSystemNamespace, data.GetName(), data.GetNamespace(), caBase64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to apply karmada-metrics-adapter APIService resource to karmada controlplane, err: %w", err)
|
return fmt.Errorf("failed to apply karmada-metrics-adapter APIService resource to karmada controlplane, err: %w", err)
|
||||||
}
|
}
|
||||||
|
|
|
@ -191,7 +191,7 @@ func runAPIService(r workflow.RunData) error {
|
||||||
}
|
}
|
||||||
caBase64 := base64.StdEncoding.EncodeToString(cert.CertData())
|
caBase64 := base64.StdEncoding.EncodeToString(cert.CertData())
|
||||||
|
|
||||||
err = apiservice.EnsureAggregatedAPIService(client, data.KarmadaClient(), data.GetName(), data.GetNamespace(), caBase64)
|
err = apiservice.EnsureAggregatedAPIService(client, data.KarmadaClient(), data.GetName(), constants.KarmadaSystemNamespace, data.GetName(), data.GetNamespace(), caBase64)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("failed to apply aggregated APIService resource to karmada controlplane, err: %w", err)
|
return fmt.Errorf("failed to apply aggregated APIService resource to karmada controlplane, err: %w", err)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue