|
@@ -51,10 +51,11 @@ const (
|
|
|
resyncPeriod = 5 * time.Minute
|
|
|
nodeControllerSyncTimeout = 10 * time.Minute
|
|
|
|
|
|
- subnetKubeManagedAnnotation = "flannel.alpha.coreos.com/kube-subnet-manager"
|
|
|
- backendDataAnnotation = "flannel.alpha.coreos.com/backend-data"
|
|
|
- backendTypeAnnotation = "flannel.alpha.coreos.com/backend-type"
|
|
|
- backendPublicIPAnnotation = "flannel.alpha.coreos.com/public-ip"
|
|
|
+ subnetKubeManagedAnnotation = "flannel.alpha.coreos.com/kube-subnet-manager"
|
|
|
+ backendDataAnnotation = "flannel.alpha.coreos.com/backend-data"
|
|
|
+ backendTypeAnnotation = "flannel.alpha.coreos.com/backend-type"
|
|
|
+ backendPublicIPAnnotation = "flannel.alpha.coreos.com/public-ip"
|
|
|
+ backendPublicIPOverwriteAnnotation = "flannel.alpha.coreos.com/public-ip-overwrite"
|
|
|
|
|
|
netConfPath = "/etc/kube-flannel/net-conf.json"
|
|
|
)
|
|
@@ -235,10 +236,15 @@ func (ksm *kubeSubnetManager) AcquireLease(ctx context.Context, attrs *subnet.Le
|
|
|
if n.Annotations[backendDataAnnotation] != string(bd) ||
|
|
|
n.Annotations[backendTypeAnnotation] != attrs.BackendType ||
|
|
|
n.Annotations[backendPublicIPAnnotation] != attrs.PublicIP.String() ||
|
|
|
- n.Annotations[subnetKubeManagedAnnotation] != "true" {
|
|
|
+ n.Annotations[subnetKubeManagedAnnotation] != "true" ||
|
|
|
+ (n.Annotations[backendPublicIPOverwriteAnnotation] != "" && n.Annotations[backendPublicIPOverwriteAnnotation] != attrs.PublicIP.String()) {
|
|
|
n.Annotations[backendTypeAnnotation] = attrs.BackendType
|
|
|
n.Annotations[backendDataAnnotation] = string(bd)
|
|
|
- n.Annotations[backendPublicIPAnnotation] = attrs.PublicIP.String()
|
|
|
+ if n.Annotations[backendPublicIPOverwriteAnnotation] != "" {
|
|
|
+ n.Annotations[backendPublicIPAnnotation] = n.Annotations[backendPublicIPOverwriteAnnotation]
|
|
|
+ } else {
|
|
|
+ n.Annotations[backendPublicIPAnnotation] = attrs.PublicIP.String()
|
|
|
+ }
|
|
|
n.Annotations[subnetKubeManagedAnnotation] = "true"
|
|
|
|
|
|
oldData, err := json.Marshal(cachedNode)
|