From c53f57d26387354fae9f36a113e98e51eae961ce Mon Sep 17 00:00:00 2001 From: chris-sun-star Date: Mon, 4 Nov 2024 12:56:04 +0000 Subject: [PATCH 1/2] set environment variable for obagent to overwrite host_ip --- internal/const/obagent/obagent.go | 5 ++++ internal/resource/observer/utils.go | 42 +++++++++++++++++++++++------ 2 files changed, 39 insertions(+), 8 deletions(-) diff --git a/internal/const/obagent/obagent.go b/internal/const/obagent/obagent.go index a46f88973..d37c48302 100644 --- a/internal/const/obagent/obagent.go +++ b/internal/const/obagent/obagent.go @@ -12,6 +12,10 @@ See the Mulan PSL v2 for more details. package monitor +const ( + LocalHostAddress = "127.0.0.1" +) + const ( HttpPort = 8088 PprofPort = 8089 @@ -42,6 +46,7 @@ const ( EnvMonitorUser = "MONITOR_USER" EnvMonitorPASSWORD = "MONITOR_PASSWORD" EnvOBMonitorStatus = "OB_MONITOR_STATUS" + EnvHostIp = "HOST_IP" ) const ( diff --git a/internal/resource/observer/utils.go b/internal/resource/observer/utils.go index 1d88dc304..23416d382 100644 --- a/internal/resource/observer/utils.go +++ b/internal/resource/observer/utils.go @@ -395,6 +395,33 @@ func (m *OBServerManager) createMonitorContainer(obcluster *v1alpha1.OBCluster) }, }, } + + mode, modeAnnoExist := resourceutils.GetAnnotationField(m.OBServer, oceanbaseconst.AnnotationsMode) + if modeAnnoExist { + switch mode { + case oceanbaseconst.ModeStandalone: + envMode := corev1.EnvVar{ + Name: "STANDALONE", + Value: oceanbaseconst.ModeStandalone, + } + env = append(env, envMode) + case oceanbaseconst.ModeService: + svc, err := m.getSvc() + if err != nil { + if kubeerrors.IsNotFound(err) { + m.Logger.Info("Svc not found") + } else { + m.Logger.Error(err, "Failed to get svc") + } + } else { + envSvcIp := corev1.EnvVar{ + Name: "SVC_IP", + Value: svc.Spec.ClusterIP, + } + env = append(env, envSvcIp) + } + } + } env = append(env, envOBModuleStatus) env = append(env, envClusterName) env = append(env, envClusterId) @@ -540,16 +567,15 @@ func (m *OBServerManager) createOBServerContainer(obcluster *v1alpha1.OBCluster) Name: "ZONE_NAME", Value: m.OBServer.Spec.Zone, } - mode, modeAnnoExist := resourceutils.GetAnnotationField(m.OBServer, oceanbaseconst.AnnotationsMode) if modeAnnoExist { switch mode { case oceanbaseconst.ModeStandalone: - envMode := corev1.EnvVar{ - Name: "STANDALONE", - Value: oceanbaseconst.ModeStandalone, + envHostIp := corev1.EnvVar{ + Name: obagentconst.EnvHostIp, + Value: obagentconst.LocalHostAddress, } - env = append(env, envMode) + env = append(env, envHostIp) case oceanbaseconst.ModeService: svc, err := m.getSvc() if err != nil { @@ -559,11 +585,11 @@ func (m *OBServerManager) createOBServerContainer(obcluster *v1alpha1.OBCluster) m.Logger.Error(err, "Failed to get svc") } } else { - envSvcIp := corev1.EnvVar{ - Name: "SVC_IP", + envHostIp := corev1.EnvVar{ + Name: obagentconst.EnvHostIp, Value: svc.Spec.ClusterIP, } - env = append(env, envSvcIp) + env = append(env, envHostIp) } } } From 0206eff99383986dc190f289c24be84509e91817 Mon Sep 17 00:00:00 2001 From: chris-sun-star Date: Mon, 4 Nov 2024 13:01:17 +0000 Subject: [PATCH 2/2] set env variables --- internal/resource/observer/utils.go | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/internal/resource/observer/utils.go b/internal/resource/observer/utils.go index 23416d382..1d5e0ecf3 100644 --- a/internal/resource/observer/utils.go +++ b/internal/resource/observer/utils.go @@ -400,11 +400,11 @@ func (m *OBServerManager) createMonitorContainer(obcluster *v1alpha1.OBCluster) if modeAnnoExist { switch mode { case oceanbaseconst.ModeStandalone: - envMode := corev1.EnvVar{ - Name: "STANDALONE", - Value: oceanbaseconst.ModeStandalone, + envHostIp := corev1.EnvVar{ + Name: obagentconst.EnvHostIp, + Value: obagentconst.LocalHostAddress, } - env = append(env, envMode) + env = append(env, envHostIp) case oceanbaseconst.ModeService: svc, err := m.getSvc() if err != nil { @@ -414,11 +414,11 @@ func (m *OBServerManager) createMonitorContainer(obcluster *v1alpha1.OBCluster) m.Logger.Error(err, "Failed to get svc") } } else { - envSvcIp := corev1.EnvVar{ - Name: "SVC_IP", + envHostIp := corev1.EnvVar{ + Name: obagentconst.EnvHostIp, Value: svc.Spec.ClusterIP, } - env = append(env, envSvcIp) + env = append(env, envHostIp) } } } @@ -571,11 +571,11 @@ func (m *OBServerManager) createOBServerContainer(obcluster *v1alpha1.OBCluster) if modeAnnoExist { switch mode { case oceanbaseconst.ModeStandalone: - envHostIp := corev1.EnvVar{ - Name: obagentconst.EnvHostIp, - Value: obagentconst.LocalHostAddress, + envMode := corev1.EnvVar{ + Name: "STANDALONE", + Value: oceanbaseconst.ModeStandalone, } - env = append(env, envHostIp) + env = append(env, envMode) case oceanbaseconst.ModeService: svc, err := m.getSvc() if err != nil { @@ -585,15 +585,14 @@ func (m *OBServerManager) createOBServerContainer(obcluster *v1alpha1.OBCluster) m.Logger.Error(err, "Failed to get svc") } } else { - envHostIp := corev1.EnvVar{ - Name: obagentconst.EnvHostIp, + envSvcIp := corev1.EnvVar{ + Name: "SVC_IP", Value: svc.Spec.ClusterIP, } - env = append(env, envHostIp) + env = append(env, envSvcIp) } } } - startupParameters := make([]string, 0) for _, parameter := range obcluster.Spec.Parameters { reserved := false