skupperproject / skupper

Skupper is an implementation of a Virtual Application Network, enabling rich hybrid cloud communication.
http://skupper.io
Apache License 2.0
579 stars 70 forks source link

deleting services from 'other' ns #1061

Open pwright opened 1 year ago

pwright commented 1 year ago

Not sure if this is a documentation issue or if more information needs to be given to user thru cli?

After performing 'hello-world':

bash-5.2$ skupper service delete backend -n west
bash-5.2$ skupper service status -n west
Services exposed through Skupper:
╰─ backend (tcp port 8080)

ie As a user I expect the delete command to remove the service or give me a message saying why that is not possible

Could be documented as:

If you want to delete a service, make sure that either 'service-sync' is disabled or service status returns the underlying target(s).

ajssmith commented 1 year ago

I was not able to re-create this issue. I am seeing the service get remove correctly with service-sync enabled. I tried with/without namespace specifier. If you have any additional context to re-create, please pass along...

pwright commented 1 year ago

relates to deleting services from 'other ns', leaving open for review

lynnemorrison commented 4 months ago

I was working on this a bit, and from creating skupper using the CLI, I don't see any way to turn off service-sync? Only option in the CLI is --enable-service-sync, but it already defaults to true. So, if you add this option or not service-sync is always true. Am I missing config option here? Should the option be --disable-service-sync?

If you are using the hello-world example and try to delete backend service on east router it is not deleted. If you delete the backend service on the west router it is deleted, or at least no longer exposed.

Do you expect that you can delete the backend service when issuing the command on the east router? skupper service delete backend -n west

Or you just want a warning saying the backend service doesn't exist on local router?

on west router:

skupper service delete backend

skupper unexpose deployment/backend

both remove the backend from being exposed to other skupper routers.

if you try to unexpose backend on the east router you do see a warning message

skupper unexpose deployment/backend -n west
Error: Unable to unbind skupper service: Could not find target backend for service interface backend

So is this what you are looking for on the east router if you issue theskupper service delete backend -n west?

lynnemorrison commented 4 months ago

I also have a question on service-sync I ran with service-sync false on both west and east routers.
I was still able to expose the backend deployment on the west router. Is that expected behavior?

on east router

skupper expose deployment/backend --port 8080
deployment backend exposed as backend

kubectl get configmaps skupper-site -o yaml | grep service-sync
service-snc: "false"

on west router

kubectl get configmaps skupper-site -o yaml | grep service-sync
service-snc: "false"

skupper service status
Services exposed through Skupper:
╰─backend:8080 (tcp)
pwright commented 4 months ago

@lynnemorrison thanks I've reproduced your findings with skupper 1.7.0

skupper init --enable-service-sync=false on east/west

east: skupper expose deployment/backend --port 8080

west: skupper service status Services exposed through Skupper: ╰─ backend:8080 (tcp)

However, I don't think the west service is working as expected.

pwright commented 4 months ago

@nluaces I've created https://github.com/skupperproject/skupper/issues/1466 as requested.