Open glazychev-art opened 2 years ago
@denis-tingaikin @edwarnicke Any thoughts?
@glazychev-art Could you provide concrete examples of things we might do with them?
@edwarnicke Imagine the case when external client wants set Mutually Aware Group
@LionelJouin Do you anticipate using the annotations for cases where you need to set a Mutually Aware Group?
@edwarnicke no, I don't think so, we are not using the webhook.
@glazychev-art @denis-tingaikin Do we have someone using Webhooks for more complex cases? Do we have a need ourselves there... or are we trying to get ahead of needs?
@edwarnicke This could be useful for invariant testing. Moreover, I think this is actual question. What if external client wants to tune up nsc configuration?
@edwarnicke
I think we might be inrested in support next syntax:
networkservicemesh.io: | {{. mechanism }}://{{ .serviceName}}/{{ .interfaceName }}?{{. labels }}
{{.envConfig}
Example:
networkservicemesh.io: | kernel://ns-1/nsm-1
NSM_DIAL_TIMEOUT=5s
NSM_MAX_TOKEN_LIFE_TIME=30s
...
Thoughts?
What if we have multiple Network Services to which a Pod wishes to connect?
What if we have multiple Network Services to which a Pod wishes to connect?
Thats an intresting question.
For this case we need change syntax to this
networkservicemesh.io: |
{{.envConfig}
{{. mechanism1 }}://{{ .serviceName1}}/{{ .interfaceName1 }}?{{. labels1}}
{{. mechanism2 }}://{{ .serviceName2}}/{{ .interfaceName2 }}?{{. labels2}}
...
{{. mechanismN }}://{{ .serviceNameN}}/{{ .interfaceNameN }}?{{. labelsN}}
Or we could simply add a new annotation
networkservicemesh.io/env.config: |
{{.envConfig}
I am concerned here are that all the use cases we have so far involve us wanting to tweak our test cases. Introducing complex parameter tweaking into our test cases makes it less likely that things just 'work' out of the box with a simple single line annotation.
We don't want to use this for testing.
We need this for users who want to enable Mutually Aware Group
, or disable heal, or tune something for the specific cluster,.
@edwarnicke Makes sense?
@denis-tingaikin Do we have users currently?
At this moment we dont get any requests.
I also saw that, for local datapath debug could be super useful to disable data path to avoid ton of icmp requests in traces.
Description
We have a many NSM envs that allow us to configure the NSC in the best possible way: https://github.com/networkservicemesh/cmd-nsc/blob/main/internal/config/config.go#L31-L43
And we definitely can do it when we use a bare NSC, without any actual client application.
But this is not the main use case for NSM - users can add
networkservicemesh
annotations:NetworkServices
orMechanism
- we can take it from the annotation. But what about others? What if the user wants to addAwarenessGroups
and so on?Possible solutions:
NSM_
prefixed envs that are passed by user and inject them into NSM-containersnetworkservicemesh.io
annotation and add new parameters