Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Preserve nodePort support with --preserve-nodeports flag #3095

Merged
merged 6 commits into from
Dec 9, 2020

Conversation

yusufgungor
Copy link
Contributor

We are planning to use Velero in case of disaster for restore the whole cluster. (All namespaces, deployments, services etc)

Unfortunately our k8s services exposed with auto assigned nodePorts. There exist hundreds of k8s clusters and it is not easy and possible to set predefined nodePorts for our Services. These nodeports also defined on lots of nginx load balancers and in case of disaster, changing all these nodePorts will cause a lot of issue for us. We always restore to a new cluster so nodePort conflict is not a case for us.

We respect the nodePort restore logic of Velero which uses annotations but this not help us. (#354)

We have added a flag to restore command ("--preserve-nodeports") which prevents removing nodePorts from services when restoring.

We hope you merge this PR to velero. (If not then we have to make a velero docker image and let it up to date)

Thanks.

Yusuf Güngör added 2 commits November 18, 2020 11:59
@yusufgungor yusufgungor changed the title Preserve nodePort support with "--preserve-nodeports flag Preserve nodePort support with --preserve-nodeports flag Nov 18, 2020
Copy link
Member

@ashish-amarnath ashish-amarnath left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change is reasonable to me.
However, I am curious to know why https://github.com/vmware-tanzu/velero/blob/main/pkg/restore/service_action.go#L75-L79 doesn't work in this case.

@yusufgungor
Copy link
Contributor Author

yusufgungor commented Nov 19, 2020

This change is reasonable to me.
However, I am curious to know why https://github.com/vmware-tanzu/velero/blob/main/pkg/restore/service_action.go#L75-L79 doesn't work in this case.

Hi @ashish-amarnath thanks for review. It does not work because in our case NodePorts values were not explicitly specified, all NodePorts values are auto-assigned. It is very hard for us to explicitly specify NodePorts for all Services. There exist too many k8s clusters for too many teams so it is a big operation for us to convert auto-assigned NodePorts to explicitly specify NodePorts.

-> Using boolptr.IsSetToTrue for bool ptr check.

Signed-off-by: Yusuf Güngör <[email protected]>
@nrb
Copy link
Contributor

nrb commented Nov 19, 2020

@yusufgungor What happens when the node ports are preserved in the backup, but are already allocated in the target cluster on restore with this change? Does the service just fail to restore? My understanding is that is what would happen.

I've researched this before and it's hard to get correct behavior due to how Kubernetes handles the error cases around port numbers. We're definitely open to addressing this, though, as you're right that this is a problem for services not managed directly by a human.

@carlisia carlisia added the Needs info Waiting for information label Nov 19, 2020
@yusufgungor
Copy link
Contributor Author

yusufgungor commented Nov 20, 2020

Hi @nrb , thanks for your explanation. Now, I have tested with 3 Services which named: hello-service, test-service-1, test-service-2

When these 3 services already exist in target cluster, tried to backup and then restore with "--preserve-nodeports" flag. (ports already allocated on target cluster by these services)

As you said, we got error for a service and than Velero continue with next Service. In my 1st test case, all 3 services were exist on target cluster, so we got errors for all 3 services.

time="2020-11-20T06:38:56Z" level=info msg="Executing item action for services" logSource="pkg/restore/restore.go:1002" restore=velero/test-with-3-svc-20201120093856
time="2020-11-20T06:38:56Z" level=info msg="Restoring Services with original NodePort(s)" cmd=/velero logSource="pkg/restore/service_action.go:61" pluginName=velero restore=velero/test-with-3-svc-20201120093856
time="2020-11-20T06:38:56Z" level=info msg="Attempting to restore Service: hello-service" logSource="pkg/restore/restore.go:1107" restore=velero/test-with-3-svc-20201120093856
time="2020-11-20T06:38:56Z" level=info msg="error restoring hello-service: Service \"hello-service\" is invalid: spec.ports[0].nodePort: Invalid value: 31536: provided port is already allocated" logSource="pkg/restore/restore.go:1170" restore=velero/test-with-3-svc-20201120093856
time="2020-11-20T06:38:56Z" level=info msg="Executing item action for services" logSource="pkg/restore/restore.go:1002" restore=velero/test-with-3-svc-20201120093856
time="2020-11-20T06:38:56Z" level=info msg="Restoring Services with original NodePort(s)" cmd=/velero logSource="pkg/restore/service_action.go:61" pluginName=velero restore=velero/test-with-3-svc-20201120093856
time="2020-11-20T06:38:56Z" level=info msg="Attempting to restore Service: test-service-1" logSource="pkg/restore/restore.go:1107" restore=velero/test-with-3-svc-20201120093856
time="2020-11-20T06:38:56Z" level=info msg="error restoring test-service-1: Service \"test-service-1\" is invalid: spec.ports[0].nodePort: Invalid value: 31692: provided port is already allocated" logSource="pkg/restore/restore.go:1170" restore=velero/test-with-3-svc-20201120093856
time="2020-11-20T06:38:56Z" level=info msg="Executing item action for services" logSource="pkg/restore/restore.go:1002" restore=velero/test-with-3-svc-20201120093856
time="2020-11-20T06:38:56Z" level=info msg="Restoring Services with original NodePort(s)" cmd=/velero logSource="pkg/restore/service_action.go:61" pluginName=velero restore=velero/test-with-3-svc-20201120093856
time="2020-11-20T06:38:56Z" level=info msg="Attempting to restore Service: test-service-2" logSource="pkg/restore/restore.go:1107" restore=velero/test-with-3-svc-20201120093856
time="2020-11-20T06:38:56Z" level=info msg="error restoring test-service-2: Service \"test-service-2\" is invalid: spec.ports[0].nodePort: Invalid value: 31192: provided port is already allocated" logSource="pkg/restore/restore.go:1170" restore=velero/test-with-3-svc-20201120093856

On my 2nd test case, I have removed the "test-service-1" before restoring the backup and then we are not getting error for that service but still getting errors for other 2 services.

time="2020-11-20T06:46:07Z" level=info msg="Executing item action for services" logSource="pkg/restore/restore.go:1002" restore=velero/test-with-3-svc-20201120094607
time="2020-11-20T06:46:07Z" level=info msg="Restoring Services with original NodePort(s)" cmd=/velero logSource="pkg/restore/service_action.go:61" pluginName=velero restore=velero/test-with-3-svc-20201120094607
time="2020-11-20T06:46:07Z" level=info msg="Attempting to restore Service: hello-service" logSource="pkg/restore/restore.go:1107" restore=velero/test-with-3-svc-20201120094607
time="2020-11-20T06:46:07Z" level=info msg="error restoring hello-service: Service \"hello-service\" is invalid: spec.ports[0].nodePort: Invalid value: 31536: provided port is already allocated" logSource="pkg/restore/restore.go:1170" restore=velero/test-with-3-svc-20201120094607
time="2020-11-20T06:46:07Z" level=info msg="Executing item action for services" logSource="pkg/restore/restore.go:1002" restore=velero/test-with-3-svc-20201120094607
time="2020-11-20T06:46:07Z" level=info msg="Restoring Services with original NodePort(s)" cmd=/velero logSource="pkg/restore/service_action.go:61" pluginName=velero restore=velero/test-with-3-svc-20201120094607
time="2020-11-20T06:46:07Z" level=info msg="Attempting to restore Service: test-service-1" logSource="pkg/restore/restore.go:1107" restore=velero/test-with-3-svc-20201120094607
time="2020-11-20T06:46:07Z" level=info msg="Executing item action for services" logSource="pkg/restore/restore.go:1002" restore=velero/test-with-3-svc-20201120094607
time="2020-11-20T06:46:07Z" level=info msg="Restoring Services with original NodePort(s)" cmd=/velero logSource="pkg/restore/service_action.go:61" pluginName=velero restore=velero/test-with-3-svc-20201120094607
time="2020-11-20T06:46:07Z" level=info msg="Attempting to restore Service: test-service-2" logSource="pkg/restore/restore.go:1107" restore=velero/test-with-3-svc-20201120094607
time="2020-11-20T06:46:07Z" level=info msg="error restoring test-service-2: Service \"test-service-2\" is invalid: spec.ports[0].nodePort: Invalid value: 31192: provided port is already allocated" logSource="pkg/restore/restore.go:1170" restore=velero/test-with-3-svc-20201120094607

When these 3 services already exist in target cluster, tried to restore without "--preserve-nodeports" flag. Then we got no errors on logs.

time="2020-11-20T06:54:32Z" level=info msg="Executing item action for services" logSource="pkg/restore/restore.go:1002" restore=velero/test-with-3-svc-20201120095431
time="2020-11-20T06:54:32Z" level=info msg="Attempting to restore Service: hello-service" logSource="pkg/restore/restore.go:1107" restore=velero/test-with-3-svc-20201120095431
time="2020-11-20T06:54:32Z" level=info msg="Executing item action for services" logSource="pkg/restore/restore.go:1002" restore=velero/test-with-3-svc-20201120095431
time="2020-11-20T06:54:32Z" level=info msg="Attempting to restore Service: test-service-1" logSource="pkg/restore/restore.go:1107" restore=velero/test-with-3-svc-20201120095431
time="2020-11-20T06:54:32Z" level=info msg="Executing item action for services" logSource="pkg/restore/restore.go:1002" restore=velero/test-with-3-svc-20201120095431
time="2020-11-20T06:54:32Z" level=info msg="Attempting to restore Service: test-service-2" logSource="pkg/restore/restore.go:1107" restore=velero/test-with-3-svc-20201120095431

Using the "--preserve-nodeports" flag does not break the restore operation even "provided port is already allocated" error occures.

@carlisia carlisia removed the Needs info Waiting for information label Nov 20, 2020
Copy link
Contributor

@nrb nrb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for confirming. I think my only issue with the code as is right now, then, is that these lines should definitely be flagged as error or warning level, not info. This is so users can easily find what wasn't restored.

time="2020-11-20T06:38:56Z" level=info msg="error restoring test-service-2: Service \"test-service-2\" is invalid: spec.ports[0].nodePort: Invalid value: 31192: provided port is already allocated" logSource="pkg/restore/restore.go:1170" restore=velero/test-with-3-svc-20201120093856

One more question to consider - what happens if the services are restored into a cluster with a completely different port range? Have you tried? I think a similar allocator error would occur, specifically this error.

I think these things can be addressed via documentation, and using the flag gives users the control over whether or not they want to migrate their Services, though, so overall I'm in favor of the idea that this PR puts forward.

Could you please also add documentation for use and these caveats to https://github.com/vmware-tanzu/velero/blob/main/site/content/docs/v1.5/restore-reference.md and https://github.com/vmware-tanzu/velero/blob/main/site/content/docs/main/restore-reference.md?

Yusuf Güngör added 3 commits November 23, 2020 17:22
-> Using boolptr.IsSetToTrue for bool ptr check.

Signed-off-by: Yusuf Güngör <[email protected]>
-> Documentation updated about Velero nodePort restore logic and preservation of them.

Signed-off-by: Yusuf Güngör <[email protected]>
@github-actions github-actions bot requested a review from nrb November 23, 2020 14:35
@yusufgungor
Copy link
Contributor Author

yusufgungor commented Nov 23, 2020

Hi @nrb , thanks for your review.

"Error was something other than an AlreadyExists" now logged as Error instead of Info.

time="2020-11-23T12:58:31+03:00" level=info msg="Executing item action for services" logSource="pkg/restore/restore.go:1002" restore=velero/test-with-3-svc-20201123125825
time="2020-11-23T12:58:31+03:00" level=info msg="Restoring Services with original NodePort(s)" cmd=_output/bin/linux/amd64/velero logSource="pkg/restore/service_action.go:61" pluginName=velero restore=velero/test-with-3-svc-20201123125825
time="2020-11-23T12:58:31+03:00" level=info msg="Attempting to restore Service: hello-service" logSource="pkg/restore/restore.go:1107" restore=velero/test-with-3-svc-20201123125825
time="2020-11-23T12:58:31+03:00" level=error msg="error restoring hello-service: Service \"hello-service\" is invalid: spec.ports[0].nodePort: Invalid value: 31536: provided port is already allocated" logSource="pkg/restore/restore.go:1170" restore=velero/test-with-3-svc-20201123125825
time="2020-11-23T12:58:31+03:00" level=info msg="Executing item action for services" logSource="pkg/restore/restore.go:1002" restore=velero/test-with-3-svc-20201123125825
time="2020-11-23T12:58:31+03:00" level=info msg="Restoring Services with original NodePort(s)" cmd=_output/bin/linux/amd64/velero logSource="pkg/restore/service_action.go:61" pluginName=velero restore=velero/test-with-3-svc-20201123125825
time="2020-11-23T12:58:31+03:00" level=info msg="Attempting to restore Service: test-service-1" logSource="pkg/restore/restore.go:1107" restore=velero/test-with-3-svc-20201123125825
time="2020-11-23T12:58:31+03:00" level=error msg="error restoring test-service-1: Service \"test-service-1\" is invalid: spec.ports[0].nodePort: Invalid value: 31692: provided port is already allocated" logSource="pkg/restore/restore.go:1170" restore=velero/test-with-3-svc-20201123125825
time="2020-11-23T12:58:31+03:00" level=info msg="Executing item action for services" logSource="pkg/restore/restore.go:1002" restore=velero/test-with-3-svc-20201123125825
time="2020-11-23T12:58:31+03:00" level=info msg="Restoring Services with original NodePort(s)" cmd=_output/bin/linux/amd64/velero logSource="pkg/restore/service_action.go:61" pluginName=velero restore=velero/test-with-3-svc-20201123125825
time="2020-11-23T12:58:31+03:00" level=info msg="Attempting to restore Service: test-service-2" logSource="pkg/restore/restore.go:1107" restore=velero/test-with-3-svc-20201123125825
time="2020-11-23T12:58:31+03:00" level=error msg="error restoring test-service-2: Service \"test-service-2\" is invalid: spec.ports[0].nodePort: Invalid value: 31192: provided port is already allocated" logSource="pkg/restore/restore.go:1170" restore=velero/test-with-3-svc-20201123125825

After you pointed it out, tested the case if the services are restored into a cluster with a completely different port range and you are exactly right. I got the error which you guessed. (that error)

Backup has 3 services with NodePorts as shown below:

NAME PORT(S)
hello-service 80:31536/TCP
test-service-1 80:31692/TCP
test-service-2 80:31192/TCP

Then updated a k8s cluster to serve NodePorts from range 20000-22767 using this doc

    vim /etc/kubernetes/manifests/kube-apiserver.yaml
            -  - --service-node-port-range=30000-32767
            + - --service-node-port-range=20000-22767

    "As the directory is monitored by kubelet for any changes, there is no need to do anything more. The kube-apiserver will be recreated with the new settings."

Removed the services and tried to restore and got the error logs as shown below.

time="2020-11-23T13:09:17+03:00" level=info msg="Executing item action for services" logSource="pkg/restore/restore.go:1002" restore=velero/test-with-3-svc-20201123130915
time="2020-11-23T13:09:17+03:00" level=info msg="Restoring Services with original NodePort(s)" cmd=_output/bin/linux/amd64/velero logSource="pkg/restore/service_action.go:61" pluginName=velero restore=velero/test-with-3-svc-20201123130915
time="2020-11-23T13:09:17+03:00" level=info msg="Attempting to restore Service: hello-service" logSource="pkg/restore/restore.go:1107" restore=velero/test-with-3-svc-20201123130915
time="2020-11-23T13:09:17+03:00" level=error msg="error restoring hello-service: Service \"hello-service\" is invalid: spec.ports[0].nodePort: Invalid value: 31536: provided port is not in the valid range. The range of valid ports is 20000-22767" logSource="pkg/restore/restore.go:1170" restore=velero/test-with-3-svc-20201123130915
time="2020-11-23T13:09:17+03:00" level=info msg="Executing item action for services" logSource="pkg/restore/restore.go:1002" restore=velero/test-with-3-svc-20201123130915
time="2020-11-23T13:09:17+03:00" level=info msg="Restoring Services with original NodePort(s)" cmd=_output/bin/linux/amd64/velero logSource="pkg/restore/service_action.go:61" pluginName=velero restore=velero/test-with-3-svc-20201123130915
time="2020-11-23T13:09:17+03:00" level=info msg="Attempting to restore Service: test-service-1" logSource="pkg/restore/restore.go:1107" restore=velero/test-with-3-svc-20201123130915
time="2020-11-23T13:09:17+03:00" level=error msg="error restoring test-service-1: Service \"test-service-1\" is invalid: spec.ports[0].nodePort: Invalid value: 31692: provided port is not in the valid range. The range of valid ports is 20000-22767" logSource="pkg/restore/restore.go:1170" restore=velero/test-with-3-svc-20201123130915
time="2020-11-23T13:09:17+03:00" level=info msg="Executing item action for services" logSource="pkg/restore/restore.go:1002" restore=velero/test-with-3-svc-20201123130915
time="2020-11-23T13:09:17+03:00" level=info msg="Restoring Services with original NodePort(s)" cmd=_output/bin/linux/amd64/velero logSource="pkg/restore/service_action.go:61" pluginName=velero restore=velero/test-with-3-svc-20201123130915
time="2020-11-23T13:09:17+03:00" level=info msg="Attempting to restore Service: test-service-2" logSource="pkg/restore/restore.go:1107" restore=velero/test-with-3-svc-20201123130915
time="2020-11-23T13:09:17+03:00" level=error msg="error restoring test-service-2: Service \"test-service-2\" is invalid: spec.ports[0].nodePort: Invalid value: 31192: provided port is not in the valid range. The range of valid ports is 20000-22767" logSource="pkg/restore/restore.go:1170" restore=velero/test-with-3-svc-20201123130915

Velero printed error logs and restore operation was not interrupted.


I also documented this flag and the Velero's nodePort restore logic on the files which you have pointed out as below.


What happens to NodePorts when restoring Services

Auto assigned NodePorts deleted by default and Services get new auto assigned nodePorts after restore.

Explicitly specified NodePorts auto detected using last-applied-config annotation and preserved after restore. NodePorts can be explicitly specified as .spec.ports[*].nodePort field on Service definition.

Always Preserve NodePorts

It is not always possible to set nodePorts explicitly on some big clusters because of operation complexity. Official Kubernetes documents states that preventing port collisions is responsibility of the user when explicitly specifying nodePorts:

If you want a specific port number, you can specify a value in the `nodePort` field. The control plane will either allocate you that port or report that the API transaction failed. This means that you need to take care of possible port collisions yourself. You also have to use a valid port number, one that's inside the range configured for NodePort use.

https://kubernetes.io/docs/concepts/services-networking/service/#nodeport

The clusters which are not explicitly specifying nodePorts still may need to restore original NodePorts in case of disaster. Auto assigned nodePorts most probably defined on Load Balancers which located front side of cluster. Changing all these nodePorts on Load Balancers is another operation complexity after disaster if nodePorts are changed.

Velero has a flag to let user deciding the preservation of nodePorts. velero restore create sub command has --preserve-nodeports flag to preserve Service nodePorts always regardless of nodePorts explicitly specified or not. This flag used for preserving the original nodePorts from backup and can be used as --preserve-nodeports or --preserve-nodeports=true

If this flag given and/or set to true, Velero does not remove the nodePorts when restoring Service and tries to use the nodePorts which written on backup.

Trying to preserve nodePorts may cause port conflicts when restoring on situations below:

  • If the nodePort from the backup already allocated on the target cluster then Velero prints error log as shown below and continue to restore operation.

    time="2020-11-23T12:58:31+03:00" level=info msg="Executing item action for services" logSource="pkg/restore/restore.go:1002" restore=velero/test-with-3-svc-20201123125825
    
    time="2020-11-23T12:58:31+03:00" level=info msg="Restoring Services with original NodePort(s)" cmd=_output/bin/linux/amd64/velero logSource="pkg/restore/service_action.go:61" pluginName=velero restore=velero/test-with-3-svc-20201123125825
    
    time="2020-11-23T12:58:31+03:00" level=info msg="Attempting to restore Service: hello-service" logSource="pkg/restore/restore.go:1107" restore=velero/test-with-3-svc-20201123125825
    
    time="2020-11-23T12:58:31+03:00" level=error msg="error restoring hello-service: Service \"hello-service\" is invalid: spec.ports[0].nodePort: Invalid value: 31536: provided port is already allocated" logSource="pkg/restore/restore.go:1170" restore=velero/test-with-3-svc-20201123125825
    
  • If the nodePort from the backup is not in the nodePort range of target cluster then Velero prints error log as below and continue to restore operation. Kubernetes default nodePort range is 30000-32767 but on the example cluster nodePort range is 20000-22767 and tried to restore Service with nodePort 31536

    time="2020-11-23T13:09:17+03:00" level=info msg="Executing item action for services" logSource="pkg/restore/restore.go:1002" restore=velero/test-with-3-svc-20201123130915
    
    time="2020-11-23T13:09:17+03:00" level=info msg="Restoring Services with original NodePort(s)" cmd=_output/bin/linux/amd64/velero logSource="pkg/restore/service_action.go:61" pluginName=velero restore=velero/test-with-3-svc-20201123130915
    
    time="2020-11-23T13:09:17+03:00" level=info msg="Attempting to restore Service: hello-service" logSource="pkg/restore/restore.go:1107" restore=velero/test-with-3-svc-20201123130915
    
    time="2020-11-23T13:09:17+03:00" level=error msg="error restoring hello-service: Service \"hello-service\" is invalid: spec.ports[0].nodePort: Invalid value: 31536: provided port is not in the valid range. The range of valid ports is 20000-22767" logSource="pkg/restore/restore.go:1170" restore=velero/test-with-3-svc-20201123130915
    

@yusufgungor
Copy link
Contributor Author

Hi @dsu-igeek is there anything I should do?

Copy link
Contributor

@nrb nrb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@yusufgungor Thanks for your thorough changes and documentation! I appreciate it. Sorry for the delay in updating my review.

@ashish-amarnath When you have time, please revisit as well.

@nrb nrb added this to the v1.6.0 milestone Nov 30, 2020
Copy link
Member

@ashish-amarnath ashish-amarnath left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR @yusufgungor

@ashish-amarnath ashish-amarnath merged commit 3b2e903 into vmware-tanzu:main Dec 9, 2020
@yusufgungor
Copy link
Contributor Author

It is my pleasure to contribute this great project. I am looking forward to see the release 1.6.0. Thanks for your reviews and helps @nrb @ashish-amarnath

georgettica pushed a commit to georgettica/velero that referenced this pull request Dec 23, 2020
…u#3095)

* -> Preserve nodePort support when restoring via "--preserve-nodeports" flag

Signed-off-by: Yusuf Güngör <[email protected]>

* -> Added changelog.

Signed-off-by: Yusuf Güngör <[email protected]>

* -> Unit test added.
-> Using boolptr.IsSetToTrue for bool ptr check.

Signed-off-by: Yusuf Güngör <[email protected]>

* -> Unit test added.
-> Using boolptr.IsSetToTrue for bool ptr check.

Signed-off-by: Yusuf Güngör <[email protected]>

* -> Other restore errors log level changed from info to error.
-> Documentation updated about Velero nodePort restore logic and preservation of them.

Signed-off-by: Yusuf Güngör <[email protected]>

Co-authored-by: Yusuf Güngör <[email protected]>
georgettica pushed a commit to georgettica/velero that referenced this pull request Jan 26, 2021
…u#3095)

* -> Preserve nodePort support when restoring via "--preserve-nodeports" flag

Signed-off-by: Yusuf Güngör <[email protected]>

* -> Added changelog.

Signed-off-by: Yusuf Güngör <[email protected]>

* -> Unit test added.
-> Using boolptr.IsSetToTrue for bool ptr check.

Signed-off-by: Yusuf Güngör <[email protected]>

* -> Unit test added.
-> Using boolptr.IsSetToTrue for bool ptr check.

Signed-off-by: Yusuf Güngör <[email protected]>

* -> Other restore errors log level changed from info to error.
-> Documentation updated about Velero nodePort restore logic and preservation of them.

Signed-off-by: Yusuf Güngör <[email protected]>

Co-authored-by: Yusuf Güngör <[email protected]>
@rjshrjndrn
Copy link

Thanks for this PR @yusufgungor. When will this be GA ?

vadasambar pushed a commit to vadasambar/velero that referenced this pull request Feb 3, 2021
…u#3095)

* -> Preserve nodePort support when restoring via "--preserve-nodeports" flag

Signed-off-by: Yusuf Güngör <[email protected]>

* -> Added changelog.

Signed-off-by: Yusuf Güngör <[email protected]>

* -> Unit test added.
-> Using boolptr.IsSetToTrue for bool ptr check.

Signed-off-by: Yusuf Güngör <[email protected]>

* -> Unit test added.
-> Using boolptr.IsSetToTrue for bool ptr check.

Signed-off-by: Yusuf Güngör <[email protected]>

* -> Other restore errors log level changed from info to error.
-> Documentation updated about Velero nodePort restore logic and preservation of them.

Signed-off-by: Yusuf Güngör <[email protected]>

Co-authored-by: Yusuf Güngör <[email protected]>
dharmab pushed a commit to dharmab/velero that referenced this pull request May 25, 2021
…u#3095)

* -> Preserve nodePort support when restoring via "--preserve-nodeports" flag

Signed-off-by: Yusuf Güngör <[email protected]>

* -> Added changelog.

Signed-off-by: Yusuf Güngör <[email protected]>

* -> Unit test added.
-> Using boolptr.IsSetToTrue for bool ptr check.

Signed-off-by: Yusuf Güngör <[email protected]>

* -> Unit test added.
-> Using boolptr.IsSetToTrue for bool ptr check.

Signed-off-by: Yusuf Güngör <[email protected]>

* -> Other restore errors log level changed from info to error.
-> Documentation updated about Velero nodePort restore logic and preservation of them.

Signed-off-by: Yusuf Güngör <[email protected]>

Co-authored-by: Yusuf Güngör <[email protected]>
ywk253100 pushed a commit to ywk253100/velero that referenced this pull request Jun 29, 2021
…u#3095)

* -> Preserve nodePort support when restoring via "--preserve-nodeports" flag

Signed-off-by: Yusuf Güngör <[email protected]>

* -> Added changelog.

Signed-off-by: Yusuf Güngör <[email protected]>

* -> Unit test added.
-> Using boolptr.IsSetToTrue for bool ptr check.

Signed-off-by: Yusuf Güngör <[email protected]>

* -> Unit test added.
-> Using boolptr.IsSetToTrue for bool ptr check.

Signed-off-by: Yusuf Güngör <[email protected]>

* -> Other restore errors log level changed from info to error.
-> Documentation updated about Velero nodePort restore logic and preservation of them.

Signed-off-by: Yusuf Güngör <[email protected]>

Co-authored-by: Yusuf Güngör <[email protected]>
gyaozhou pushed a commit to gyaozhou/velero-read that referenced this pull request May 14, 2022
…u#3095)

* -> Preserve nodePort support when restoring via "--preserve-nodeports" flag

Signed-off-by: Yusuf Güngör <[email protected]>

* -> Added changelog.

Signed-off-by: Yusuf Güngör <[email protected]>

* -> Unit test added.
-> Using boolptr.IsSetToTrue for bool ptr check.

Signed-off-by: Yusuf Güngör <[email protected]>

* -> Unit test added.
-> Using boolptr.IsSetToTrue for bool ptr check.

Signed-off-by: Yusuf Güngör <[email protected]>

* -> Other restore errors log level changed from info to error.
-> Documentation updated about Velero nodePort restore logic and preservation of them.

Signed-off-by: Yusuf Güngör <[email protected]>

Co-authored-by: Yusuf Güngör <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants