diff --git a/charts/yurt-manager/crds/raven.openyurt.io_gateways.yaml b/charts/yurt-manager/crds/raven.openyurt.io_gateways.yaml index ea4da1c65ab..0578f269616 100644 --- a/charts/yurt-manager/crds/raven.openyurt.io_gateways.yaml +++ b/charts/yurt-manager/crds/raven.openyurt.io_gateways.yaml @@ -123,6 +123,9 @@ spec: type: string privateIP: type: string + publicIP: + description: 'Node PublicIP: satellite nodes need to build vxlan connctions using their public IPs;' + type: string subnets: items: type: string diff --git a/charts/yurt-manager/values.yaml b/charts/yurt-manager/values.yaml index 79cd0ec40bc..a5da8d8aee3 100644 --- a/charts/yurt-manager/values.yaml +++ b/charts/yurt-manager/values.yaml @@ -14,7 +14,7 @@ image: registry: openyurt repository: yurt-manager tag: v1.3.4 - pullPolicy: always + pullPolicy: Always ports: metrics: 10271 diff --git a/pkg/apis/raven/v1alpha1/gateway_conversion.go b/pkg/apis/raven/v1alpha1/gateway_conversion.go index 6192bfc4a21..388ff1df141 100644 --- a/pkg/apis/raven/v1alpha1/gateway_conversion.go +++ b/pkg/apis/raven/v1alpha1/gateway_conversion.go @@ -62,6 +62,7 @@ func (src *Gateway) ConvertTo(dstRaw conversion.Hub) error { NodeName: node.NodeName, PrivateIP: node.PrivateIP, Subnets: node.Subnets, + PublicIP: node.PublicIP, }) } if src.Status.ActiveEndpoint != nil { @@ -102,6 +103,7 @@ func (dst *Gateway) ConvertFrom(srcRaw conversion.Hub) error { NodeName: node.NodeName, PrivateIP: node.PrivateIP, Subnets: node.Subnets, + PublicIP: node.PublicIP, }) } if src.Status.ActiveEndpoints == nil { diff --git a/pkg/apis/raven/v1alpha1/gateway_types.go b/pkg/apis/raven/v1alpha1/gateway_types.go index 551254e8bb0..9b6c4d717e6 100644 --- a/pkg/apis/raven/v1alpha1/gateway_types.go +++ b/pkg/apis/raven/v1alpha1/gateway_types.go @@ -70,6 +70,9 @@ type NodeInfo struct { NodeName string `json:"nodeName"` PrivateIP string `json:"privateIP"` Subnets []string `json:"subnets"` + // Node PublicIP: satellite nodes need to build vxlan connctions + // using their public IPs; + PublicIP string `json:"publicIP,omitempty"` } // GatewayStatus defines the observed state of Gateway diff --git a/pkg/yurtmanager/controller/raven/gatewaypickup/gateway_pickup_controller.go b/pkg/yurtmanager/controller/raven/gatewaypickup/gateway_pickup_controller.go index 4cb4df7d2e3..d685572dc72 100644 --- a/pkg/yurtmanager/controller/raven/gatewaypickup/gateway_pickup_controller.go +++ b/pkg/yurtmanager/controller/raven/gatewaypickup/gateway_pickup_controller.go @@ -193,7 +193,7 @@ func (r *ReconcileGateway) Reconcile(ctx context.Context, req reconcile.Request) return reconcile.Result{}, err } publicIP := "" - publicIP, err = utils.GetEdgeeNodePublicIP(v) + publicIP, err = utils.GetEdgeNodePublicIP(&v) if err != nil { klog.InfoS("unable to get node public IP, expecting nodes to communicate via private IPs: " + err.Error()) } diff --git a/pkg/yurtmanager/controller/raven/utils/utils.go b/pkg/yurtmanager/controller/raven/utils/utils.go index 01611809984..b44b36c2afa 100644 --- a/pkg/yurtmanager/controller/raven/utils/utils.go +++ b/pkg/yurtmanager/controller/raven/utils/utils.go @@ -40,7 +40,7 @@ const ( WorkingNamespace = "kube-system" RavenGlobalConfig = "raven-cfg" LabelCurrentGatewayEndpoints = "raven.openyurt.io/endpoints-name" - LabelLeptonSatellitePublicIP = "raven.openyurt.io/provider-public-ip" + LabelNodeProviderPublicIP = "raven.openyurt.io/provider-public-ip" GatewayProxyInternalService = "x-raven-proxy-internal-svc" GatewayProxyServiceNamePrefix = "x-raven-proxy-svc" GatewayTunnelServiceNamePrefix = "x-raven-tunnel-svc" @@ -70,13 +70,13 @@ func GetNodeInternalIP(node corev1.Node) string { return ip } -func GetEdgeeNodePublicIP(node corev1.Node) (string, error) { - ip, ok := node.Labels[LabelLeptonSatellitePublicIP] +func GetEdgeNodePublicIP(node *corev1.Node) (string, error) { + ip, ok := node.Labels[LabelNodeProviderPublicIP] if !ok { - return "", fmt.Errorf("failed to get public ip, no label %s on node %s", LabelLeptonSatellitePublicIP, node.Name) + return "", fmt.Errorf("failed to get public ip, no label %s on node %s", LabelNodeProviderPublicIP, node.Name) } if net.ParseIP(ip) == nil { - return "", fmt.Errorf("failed to get public ip, invalid public IP label %s, %s on node %s", LabelLeptonSatellitePublicIP, ip, node.Name) + return "", fmt.Errorf("failed to get public ip, invalid public IP label %s, %s on node %s", LabelNodeProviderPublicIP, ip, node.Name) } return ip, nil }