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

nsm v1.2rc1 uplift #157

Merged
merged 1 commit into from
Feb 10, 2022
Merged

nsm v1.2rc1 uplift #157

merged 1 commit into from
Feb 10, 2022

Conversation

zolug
Copy link
Collaborator

@zolug zolug commented Feb 8, 2022

closes: #140

xcluster install:

>xc mkcdrom private-reg meridio; xc starts --nets_vm=0,1,2 --nvm=2 --mem=4096 --smp=4

For Identity Template Based Workload Registration:
>kubectl apply -k https://github.com/networkservicemesh/deployments-k8s/examples/spire?ref=v1.2.0-rc.1
To allow Service Account Based Workload Registration (deprecated):
>kubectl apply -k Meridio/docs/demo/deployments/spire

>helm install Meridio/docs/demo/deployments/xcluster/ovl/meridio/helm/gateway --generate-name --set masterItf=eth1,tgMasterItf=eth2 --create-namespace --namespace tg-trench-a
>helm install Meridio/docs/demo/deployments/nsm --generate-name --create-namespace --namespace nsm
>helm install Meridio/deployments/helm/ --generate-name --set trench.name=trench-a --set vlan.interface=eth1,vlan.id=100 --set ipFamily=dualstack \
--set nsm.namespace=nsm,nsm.registryService=nsm-registry-svc
(change gateway settings: >kc edit cm meridio-configuration-trench-a)
>helm install Meridio/examples/target/helm/ --generate-name --namespace default --set applicationName=target-a --set default.trench.name=trench-a

Notes:
-https://github.com/Nordix/nsm-test/tree/master/ovl/nsm-ovs#the-virtio-cksum-problem
(ovl/meridio makes the kernel calculate checksum on workers running gateways e.g. vm-201,202)
-Through ovl/meridio promisc mode is enabled for interfaces on the worker nodes used
by vpp-forwarder (including VLAN master interfaces) to allow proper L2 address resolution
-The device selector for vpp-forwarder has interface -> label mapping configured for eth0,
eth1, eth2, eth3 (to be used by VLAN NSE). (Refer to ConfigMap device-selector)
-VLAN NSE must be able to connect NSM registry directly to provide the remote VLAN functionality:
        -VLAN NSE listens on TCP rather than Unix socket (probing is affected)
        -K8s namespace where NSM is running must be provided as part of the config
-VLAN NSC and NSE images must be compatible with the deployed NSM version.
-VLAN NSE image must contain grpc_health_probe binary for probing.
-NSM interface names:
        -Name of the external VLAN interface in FE is "ext-vlan.[vlan-id]"
        -Target NSC interface name is "nsc"
        -Rest of the NSM interfaces are named by NSM based on the NSM Service Name
        and NSM Connection ID
        (https://github.com/networkservicemesh/sdk/blob/129dfffd3ca917dc3d0e10abf490a39408d05755/pkg/networkservice/common/mechanisms/kernel/utils.go#L29)

@zolug zolug force-pushed the nsm-1-2-uplift branch 2 times, most recently from 9c30e13 to 06db7da Compare February 9, 2022 14:19
@zolug
Copy link
Collaborator Author

zolug commented Feb 10, 2022

/reverify

@zolug zolug requested a review from LionelJouin February 10, 2022 10:10
Copy link
Member

@LionelJouin LionelJouin left a comment

Choose a reason for hiding this comment

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

If no longer needed, maybe "docs/demo/deployments/nsm-vlan" could be removed

@@ -44,6 +44,10 @@ Set IP Family
{{- printf "%s.%s.%s" .Values.vlan.networkServiceName .Values.trench.name .Release.Namespace -}}
{{- end -}}

{{- define "meridio.vlan.extInterfaceName" -}}
{{- printf "ext-vlan.%d" .Values.vlan.id -}}
Copy link
Member

Choose a reason for hiding this comment

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

I get this error with Helm 3.7.0:

2022-02-10T13:15:08.797528164Z stderr F Feb 10 13:15:08.797�[31m [FATA] [cmd:[/bin/app]] �[0merror processing rootConf from env: envconfig.Process: assigning NSM_NETWORK_SERVICES to NetworkServices: converting 'kernel://external-vlan.trench-a.red/ext-vlan.%!s(float64=100)' to type []url.URL. details: parse "kernel://external-vlan.trench-a.red/ext-vlan.%!s(float64=100)": invalid URL escape "%!s"

To fix it, replace .Values.vlan.id with (.Values.vlan.id | int)


if !expirationTimeIsNull(networkServiceEndpoint.ExpirationTime) {
networkServiceEndpoint := resp.NetworkServiceEndpoint
if !expirationTimeIsNull(networkServiceEndpoint.ExpirationTime) && !resp.Deleted {
Copy link
Member

Choose a reason for hiding this comment

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

might be possible to remove the check if expiration time is nil, since it has been introduced when the deleted property was not part of the API.
networkservicemesh/api#81

xcluster install:

>xc mkcdrom private-reg meridio; xc starts --nets_vm=0,1,2 --nvm=2 --mem=4096 --smp=4

For Identity Template Based Workload Registration:
>kubectl apply -k https://github.com/networkservicemesh/deployments-k8s/examples/spire?ref=v1.2.0-rc.1
To allow Service Account Based Workload Registration (deprecated):
>kubectl apply -k Meridio/docs/demo/deployments/spire

>helm install Meridio/docs/demo/deployments/xcluster/ovl/meridio/helm/gateway --generate-name --set masterItf=eth1,tgMasterItf=eth2 --create-namespace --namespace tg-trench-a
>helm install Meridio/docs/demo/deployments/nsm --generate-name --create-namespace --namespace nsm
>helm install Meridio/deployments/helm/ --generate-name --set trench.name=trench-a --set vlan.interface=eth1,vlan.id=100 --set ipFamily=dualstack \
--set nsm.namespace=nsm,nsm.registryService=nsm-registry-svc
(change gateway settings: >kc edit cm meridio-configuration-trench-a)
>helm install Meridio/examples/target/helm/ --generate-name --namespace default --set applicationName=target-a --set default.trench.name=trench-a

Notes:
-https://github.com/Nordix/nsm-test/tree/master/ovl/nsm-ovs#the-virtio-cksum-problem
(ovl/meridio makes the kernel calculate checksum on workers running gateways e.g. vm-201,202)
-Through ovl/meridio promisc mode is enabled for interfaces on the worker nodes used
by vpp-forwarder (including VLAN master interfaces) to allow proper L2 address resolution
-The device selector for vpp-forwarder has interface -> label mapping configured for eth0,
eth1, eth2, eth3 (to be used by VLAN NSE). (Refer to ConfigMap device-selector)
-VLAN NSE must be able to connect NSM registry directly to provide the remote VLAN functionality:
	-VLAN NSE listens on TCP rather than Unix socket (probing is affected)
	-K8s namespace where NSM is running must be provided as part of the config
-VLAN NSC and NSE images must be compatible with the deployed NSM version.
-VLAN NSE image must contain grpc_health_probe binary for probing.
-NSM interface names:
	-Name of the external VLAN interface in FE is "ext-vlan.[vlan-id]"
	-Target NSC interface name is "nsc"
	-Rest of the NSM interfaces are named by NSM based on the NSM Service Name
	and NSM Connection ID
	(https://github.com/networkservicemesh/sdk/blob/129dfffd3ca917dc3d0e10abf490a39408d05755/pkg/networkservice/common/mechanisms/kernel/utils.go#L29)
@zolug zolug merged commit 854d16c into master Feb 10, 2022
Copy link
Collaborator

@estinfra estinfra left a comment

Choose a reason for hiding this comment

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

FOSS Introduction is done. Please check the logs.

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.

uplift to NSM 1.2 rc
3 participants