Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • eclipse-research-labs/nemo-project/nemo-infrastructure-management/federated-meta-network-cluster-controller/multi-domain-l2s-m
1 result
Show changes
Commits on Source (22)
Showing
with 109 additions and 210 deletions
CONTROLLER_IP=10.152.183.155 CONTROLLER_IP=localhost
CONTROLLER_PORT=8181 CONTROLLER_PORT=30000
SWITCHES_NAMESPACE=l2sm-system
# Copyright 2024 Universidad Carlos III de Madrid
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: Sync to GitLab name: Sync to GitLab
on: on:
......
.vscode .vscode
tls.b64 tls.b64
bin/ bin/
\ No newline at end of file plugins/
.env
examples2/
\ No newline at end of file
# Image URL to use all building/pushing image targets # Image URL to use all building/pushing image targets
IMG ?= alexdecb/l2sm-controller-manager:2.7.1 IMG ?= alexdecb/l2sm-controller-manager:2.7.2
# ENVTEST_K8S_VERSION refers to the version of kubebuilder assets to be downloaded by envtest binary. # ENVTEST_K8S_VERSION refers to the version of kubebuilder assets to be downloaded by envtest binary.
ENVTEST_K8S_VERSION = 1.29.0 ENVTEST_K8S_VERSION = 1.29.0
DEV_IP = 163.117.139.220
# Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set) # Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set)
ifeq (,$(shell go env GOBIN)) ifeq (,$(shell go env GOBIN))
GOBIN=$(shell go env GOPATH)/bin GOBIN=$(shell go env GOPATH)/bin
...@@ -15,7 +16,7 @@ endif ...@@ -15,7 +16,7 @@ endif
# Be aware that the target commands are only tested with Docker which is # Be aware that the target commands are only tested with Docker which is
# scaffolded by default. However, you might want to replace it to use other # scaffolded by default. However, you might want to replace it to use other
# tools. (i.e. podman) # tools. (i.e. podman)
CONTAINER_TOOL ?= sudo docker CONTAINER_TOOL ?= docker
# Setting SHELL to bash allows bash commands to be executed by recipes. # Setting SHELL to bash allows bash commands to be executed by recipes.
# Options are set to exit when a recipe line exits non-zero or a piped command fails. # Options are set to exit when a recipe line exits non-zero or a piped command fails.
...@@ -125,8 +126,6 @@ build-installer: manifests generate kustomize ## Generate a consolidated YAML wi ...@@ -125,8 +126,6 @@ build-installer: manifests generate kustomize ## Generate a consolidated YAML wi
echo "---" >> deployments/l2sm-deployment.yaml # Add a document separator before appending echo "---" >> deployments/l2sm-deployment.yaml # Add a document separator before appending
cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG} cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG}
$(KUSTOMIZE) build config/default >> deployments/l2sm-deployment.yaml $(KUSTOMIZE) build config/default >> deployments/l2sm-deployment.yaml
echo "---" >> deployments/l2sm-deployment.yaml # Add a document separator before appending
$(KUSTOMIZE) build config/tmp >> deployments/l2sm-deployment.yaml
##@ Deployment ##@ Deployment
...@@ -147,39 +146,40 @@ uninstall: manifests kustomize ## Uninstall CRDs from the K8s cluster specified ...@@ -147,39 +146,40 @@ uninstall: manifests kustomize ## Uninstall CRDs from the K8s cluster specified
deploy: manifests kustomize ## Deploy controller to the K8s cluster specified in ~/.kube/config. deploy: manifests kustomize ## Deploy controller to the K8s cluster specified in ~/.kube/config.
cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG} cd config/manager && $(KUSTOMIZE) edit set image controller=${IMG}
$(KUSTOMIZE) build config/default | $(KUBECTL) apply -f - $(KUSTOMIZE) build config/default | $(KUBECTL) apply -f -
$(KUSTOMIZE) build config/tmp | $(KUBECTL) apply -f -
.PHONY: undeploy .PHONY: undeploy
undeploy: kustomize ## Undeploy controller from the K8s cluster specified in ~/.kube/config. Call with ignore-not-found=true to ignore resource not found errors during deletion. undeploy: kustomize ## Undeploy controller from the K8s cluster specified in ~/.kube/config. Call with ignore-not-found=true to ignore resource not found errors during deletion.
$(KUSTOMIZE) build config/tmp | $(KUBECTL) delete --ignore-not-found=$(ignore-not-found) -f -
$(KUSTOMIZE) build config/default | $(KUBECTL) delete --ignore-not-found=$(ignore-not-found) -f - $(KUSTOMIZE) build config/default | $(KUBECTL) delete --ignore-not-found=$(ignore-not-found) -f -
.PHONY: webhook-certs .PHONY: webhook-certs
webhook-certs: ## generate self-signed cert and key for local webhook development webhook-certs: ## generate self-signed cert and key for local webhook development
mkdir -p /tmp/k8s-webhook-server/serving-certs mkdir -p /tmp/k8s-webhook-server/serving-certs
openssl req -x509 -newkey rsa:2048 -nodes -keyout /tmp/k8s-webhook-server/serving-certs/tls.key -out /tmp/k8s-webhook-server/serving-certs/tls.crt -days 365 -config ./config/dev/openssl.cnf -batch -subj '/CN=local-webhook' sed -e 's/{{IP_2}}/$(DEV_IP)/' ./config/dev/openssl.cnf > /tmp/openssl.cnf
openssl req -x509 -newkey rsa:2048 -nodes -keyout /tmp/k8s-webhook-server/serving-certs/tls.key -out /tmp/k8s-webhook-server/serving-certs/tls.crt -days 365 -config /tmp/openssl.cnf -batch -subj '/CN=local-webhook'
cat /tmp/k8s-webhook-server/serving-certs/tls.crt | base64 -w0 > /tmp/k8s-webhook-server/tls.b64 cat /tmp/k8s-webhook-server/serving-certs/tls.crt | base64 -w0 > /tmp/k8s-webhook-server/tls.b64
# $(eval B64_CERT := $(shell cat /tmp/k8s-webhook-server/tls.b64))
# echo $(B64_CERT)
# cat /tmp/k8s-webhook-server/tls.b64
# openssl req -x509 \
# -newkey rsa:2048 \
# -nodes \
# -keyout /tmp/k8s-webhook-server/serving-certs/tls.key \
# -out /tmp/k8s-webhook-server/serving-certs/tls.crt \
# -days 365 \
# -subj '/CN=local-webhook'
##@ Webhook
.PHONY: create-cluster
create-cluster:
kind create cluster --config ./examples/quickstart/kind-cluster.yaml
./hack/install_dependencies.sh
.PHONY: delete-cluster
delete-cluster:
kind delete cluster --name l2sm-test
sudo rm -r ./plugins/
.PHONY: deploy-dev .PHONY: deploy-dev
deploy-dev: webhook-certs manifests kustomize ## Deploy validating and mutating webhooks to the K8s cluster specified in ~/.kube/config. deploy-dev: webhook-certs install manifests kustomize ## Deploy validating and mutating webhooks to the K8s cluster specified in ~/.kube/config.
sed -i'' -e 's/caBundle: .*/caBundle: $(shell cat /tmp/k8s-webhook-server/tls.b64)/' ./config/dev/webhookcainjection_patch.yaml sed -i'' -e 's/caBundle: .*/caBundle: $(shell cat /tmp/k8s-webhook-server/tls.b64)/' ./config/dev/webhookcainjection_patch.yaml
sed -i'' -e 's|url: .*|url: https://$(DEV_IP):9443/mutate-v1-pod|' ./config/dev/webhookcainjection_patch.yaml
$(KUSTOMIZE) build config/dev | $(KUBECTL) apply -f - $(KUSTOMIZE) build config/dev | $(KUBECTL) apply -f -
echo -e "CONTROLLER_IP=localhost\nCONTROLLER_PORT=30000" > .env
.PHONY: undeploy-dev .PHONY: undeploy-dev
undeploy-dev: kustomize ## Undeploy validating and mutating webhooks from the K8s cluster specified in ~/.kube/config. undeploy-dev: kustomize ## Undeploy validating and mutating webhooks from the K8s cluster specified in ~/.kube/config.
$(KUSTOMIZE) build config/dev | $(KUBECTL) delete --ignore-not-found=$(ignore-not-found) -f - $(KUSTOMIZE) build config/dev | $(KUBECTL) delete --ignore-not-found=$(ignore-not-found) -f -
...@@ -191,7 +191,7 @@ FILES := $(shell find . -type f \( -name "*.go" -o -name "*.json" -o -name "*.ya ...@@ -191,7 +191,7 @@ FILES := $(shell find . -type f \( -name "*.go" -o -name "*.json" -o -name "*.ya
# Install the addlicense tool if not installed # Install the addlicense tool if not installed
.PHONY: install-tools .PHONY: install-tools
install-tools: install-tools:
@go install github.com/google/addlicense@latest GOBIN=$(LOCALBIN) go install github.com/google/addlicense@latest
# Add license headers to the files # Add license headers to the files
.PHONY: add-license .PHONY: add-license
...@@ -216,7 +216,7 @@ ENVTEST ?= $(LOCALBIN)/setup-envtest-$(ENVTEST_VERSION) ...@@ -216,7 +216,7 @@ ENVTEST ?= $(LOCALBIN)/setup-envtest-$(ENVTEST_VERSION)
GOLANGCI_LINT = $(LOCALBIN)/golangci-lint-$(GOLANGCI_LINT_VERSION) GOLANGCI_LINT = $(LOCALBIN)/golangci-lint-$(GOLANGCI_LINT_VERSION)
## Tool Versions ## Tool Versions
KUSTOMIZE_VERSION ?= v5.3.0 KUSTOMIZE_VERSION ?= v5.5.0
CONTROLLER_TOOLS_VERSION ?= v0.14.0 CONTROLLER_TOOLS_VERSION ?= v0.14.0
ENVTEST_VERSION ?= latest ENVTEST_VERSION ?= latest
GOLANGCI_LINT_VERSION ?= v1.54.2 GOLANGCI_LINT_VERSION ?= v1.54.2
......
...@@ -45,11 +45,12 @@ type OverlaySpec struct { ...@@ -45,11 +45,12 @@ type OverlaySpec struct {
// selecting the nodes that are going to be linked. // selecting the nodes that are going to be linked.
Topology *TopologySpec `json:"topology,omitempty"` Topology *TopologySpec `json:"topology,omitempty"`
// Field exclusive to the multi-domain overlay type. If specified in other types of overlays, the reosurce will launch an error and won't be created.
Neighbors []NeighborSpec `json:"neighbors,omitempty"`
// Template describes the virtual switch pod that will be created. // Template describes the virtual switch pod that will be created.
SwitchTemplate *SwitchTemplateSpec `json:"switchTemplate"` SwitchTemplate *SwitchTemplateSpec `json:"switchTemplate"`
// Interface number specifies how many interfaces the switch should have predefined (if used with multus)
//+kubebuilder:default:value=10
InterfaceNumber int `json:"interfaceNumber,omitempty"`
} }
// OverlayStatus defines the observed state of Overlay // OverlayStatus defines the observed state of Overlay
......
...@@ -388,11 +388,6 @@ func (in *OverlaySpec) DeepCopyInto(out *OverlaySpec) { ...@@ -388,11 +388,6 @@ func (in *OverlaySpec) DeepCopyInto(out *OverlaySpec) {
*out = new(TopologySpec) *out = new(TopologySpec)
(*in).DeepCopyInto(*out) (*in).DeepCopyInto(*out)
} }
if in.Neighbors != nil {
in, out := &in.Neighbors, &out.Neighbors
*out = make([]NeighborSpec, len(*in))
copy(*out, *in)
}
if in.SwitchTemplate != nil { if in.SwitchTemplate != nil {
in, out := &in.SwitchTemplate, &out.SwitchTemplate in, out := &in.SwitchTemplate, &out.SwitchTemplate
*out = new(SwitchTemplateSpec) *out = new(SwitchTemplateSpec)
......
...@@ -54,6 +54,7 @@ func init() { ...@@ -54,6 +54,7 @@ func init() {
} }
func main() { func main() {
var metricsAddr string var metricsAddr string
var enableLeaderElection bool var enableLeaderElection bool
var probeAddr string var probeAddr string
......
...@@ -53,26 +53,11 @@ spec: ...@@ -53,26 +53,11 @@ spec:
spec: spec:
description: OverlaySpec defines the desired state of Overlay description: OverlaySpec defines the desired state of Overlay
properties: properties:
neighbors: interfaceNumber:
description: Field exclusive to the multi-domain overlay type. If default: 10
specified in other types of overlays, the reosurce will launch description: Interface number specifies how many interfaces the switch
an error and won't be created. should have predefined (if used with multus)
items: type: integer
properties:
domain:
description: |-
Domain where the neighbor's NED switch can be reached at. Must be a valid IP Address or Domain name, reachable from the node the NED
is going to be deployed at.
type: string
node:
description: Name of the cluster the link is going to be made
upon.
type: string
required:
- domain
- node
type: object
type: array
networkController: networkController:
description: The SDN Controller that manages the overlay network. description: The SDN Controller that manages the overlay network.
Must specify a domain and a name. Must specify a domain and a name.
......
...@@ -27,7 +27,8 @@ resources: ...@@ -27,7 +27,8 @@ resources:
# crd/kustomization.yaml # crd/kustomization.yaml
- ../webhook - ../webhook
- ../sdncontroller - ../sdncontroller
- ../tmp # - ../tmp
patches: patches:
- path: webhookcainjection_patch.yaml - path: webhookcainjection_patch.yaml
- path: sdncontroller_patch.yaml
...@@ -28,6 +28,6 @@ extendedKeyUsage = serverAuth ...@@ -28,6 +28,6 @@ extendedKeyUsage = serverAuth
[ alt_names ] [ alt_names ]
IP.1 = 127.0.0.1 IP.1 = 127.0.0.1
IP.2 = 192.168.122.60 IP.2 = {{IP_2}}
DNS.1 = localhost DNS.1 = localhost
DNS.2 = webhook-server.local DNS.2 = webhook-server.local
...@@ -12,15 +12,15 @@ ...@@ -12,15 +12,15 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
namespace: l2sm-system apiVersion: v1
resources: kind: Service
- vhost1.yaml metadata:
- vhost2.yaml name: controller-service
- vhost3.yaml spec:
- vhost4.yaml type: NodePort
- vhost5.yaml ports:
- vhost6.yaml - name: http-port
- vhost7.yaml protocol: TCP
- vhost8.yaml port: 8181
- vhost9.yaml targetPort: 8181
- vhost10.yaml nodePort: 30000
\ No newline at end of file
...@@ -26,8 +26,8 @@ metadata: ...@@ -26,8 +26,8 @@ metadata:
webhooks: webhooks:
- name: mpod.kb.io - name: mpod.kb.io
clientConfig: clientConfig:
url: https://192.168.122.60:9443/mutate-v1-pod url: https://163.117.139.220:9443/mutate-v1-pod
caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURIVENDQWdXZ0F3SUJBZ0lVS1B3bFFOc0RrOTc2Uk5NMGRVQ2l4c2dxNk5Fd0RRWUpLb1pJaHZjTkFRRUwKQlFBd0dERVdNQlFHQTFVRUF3d05iRzlqWVd3dGQyVmlhRzl2YXpBZUZ3MHlOREV3TURNd05ESXdOREJhRncweQpOVEV3TURNd05ESXdOREJhTUJneEZqQVVCZ05WQkFNTURXeHZZMkZzTFhkbFltaHZiMnN3Z2dFaU1BMEdDU3FHClNJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUUM4aDQ5S0Y0Y0hvS1dDVVU2ZmdJdXdvWXNvVm1mZkFSRjYKYVF1ZHlCektZaVRaNUxlYUZjUlp6dmg0U2RLZllhQmI5ZW9RU1hsUUhWU3lXVjN2MWFrRWRpcWxiWXJpRzhRLwp0UWFIZHpZT05rcEc0aHQyRW04cDN5Q08vTkhlRHNtZ3JBQ1pYWEFxNDFuai9qcHFQd2xDUkdwQk9Sa3dTeXZZCjJmUWM3Z1pKbFY3ZmUzbE9LcTA1UzFYSElqdU9zbnArMHdqa1I1VnIyQ1J3a0ZGYkIvTnBRRnZtbWhwQWJQNEIKYmJlT0Q5Y1FCakVPWjN5aVlJQWZ5RVp0MEIyZUo5S1EzUlcrbTFlSHFYSnFEakhrVXlpZUZuRE5hdzdCMXpjTwo1bGcxVGxZQWRxNWZoV21KTlBZbjNjdWtvS0tKL2xiQk80Z2pjL3AzY2tnY3VMWGMydlRYQWdNQkFBR2pYekJkCk1EWUdBMVVkRVFRdk1DMkhCSDhBQUFHSEJNQ29lanlDQ1d4dlkyRnNhRzl6ZElJVWQyVmlhRzl2YXkxelpYSjIKWlhJdWJHOWpZV3d3RGdZRFZSMFBBUUgvQkFRREFnV2dNQk1HQTFVZEpRUU1NQW9HQ0NzR0FRVUZCd01CTUEwRwpDU3FHU0liM0RRRUJDd1VBQTRJQkFRQ3kwNlZGOEgzMG5vVVpwSW9STWQwSG5NRzA3aHdpNzZOU1hvZFZjN1E4CndHR09qR3h5czZ6M0NJQmEySEp2M0VRUWhzajEvN0VrM1EyVUorRWlweDNpNTlocDNRYWw2SzFvdzFXRlowNEEKTHh0Mm03eCs4Nmh3Q2NaWGpDNmVNdnhORTFEUmJuRnJTRElaR044akNtZHN2WjdqOXUrSUV0cVEwSWNML3AzWgpIdHJoc0ZzTU5BdnU2MDRZSmhPdTlid1NoOVNNQlo1bHcwOTRJU2Z4NDdFVXQzM1F2UXZWMkVncDNoa2lWR1A2Ci91YnhXWWpJQzd3Zk9wZ0dsc2tEZ1RUSnlZTWM1WEI2UlAwaWdZdGhoWlpNVWhtV1g1VEpKZWV5c2RLa0oyMkEKRkptZ1c5em1kNHVlb05IM0JPcjZlK3YyVlhHcUxuME54RlFXaUl2NUsyRFMKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo= caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURIVENDQWdXZ0F3SUJBZ0lVVEJSVEJESVY0QmRWcGZVTjJLa1ZwUFFpK0U0d0RRWUpLb1pJaHZjTkFRRUwKQlFBd0dERVdNQlFHQTFVRUF3d05iRzlqWVd3dGQyVmlhRzl2YXpBZUZ3MHlOREV4TVRVd09ESXpNRE5hRncweQpOVEV4TVRVd09ESXpNRE5hTUJneEZqQVVCZ05WQkFNTURXeHZZMkZzTFhkbFltaHZiMnN3Z2dFaU1BMEdDU3FHClNJYjNEUUVCQVFVQUE0SUJEd0F3Z2dFS0FvSUJBUUMvQXJmY3g1bk5rN3VWSzJ5UktyenNRaFRpYmNlN0JTZkwKY05KVUloT3BuSFQzZ3c1VHNoVkhkQloxdkNzRWJCSUpQR0dEcHNyZk9URFFIQ0FKYm5kRFdjVU1NZ2U1VE1tUQpvb2dEZ042T2JDM3NNT1BleEdKcXhobjRoL1dsd3l6Q0s0Qkgyc2Z6NkdmaWRyYloyTUZxbi9TQ09DS25OYSsrCnBZZFR3bEF4emJONEJsM0V5TGdnekJHckRTSnpYdEZkbGw1dG1ZSEx4TVhjdlpGZDNqaENoSnllTy90aVVSdVMKbDdRR3AvOFFKYzRUNThTQkdVUm01R05VVklWQXdsQzNHK3RIc210V0tFL3lZQVlhbG5QcHFZaHVRTUZ0TjVCdwpyUDJTWVlqVDRMRUo1YmFsV0ZCeWFEZllsdWcrZzI3SVdXbXgwM1RwazNzNEpseHdUelQ5QWdNQkFBR2pYekJkCk1EWUdBMVVkRVFRdk1DMkhCSDhBQUFHSEJLTjFpOXlDQ1d4dlkyRnNhRzl6ZElJVWQyVmlhRzl2YXkxelpYSjIKWlhJdWJHOWpZV3d3RGdZRFZSMFBBUUgvQkFRREFnV2dNQk1HQTFVZEpRUU1NQW9HQ0NzR0FRVUZCd01CTUEwRwpDU3FHU0liM0RRRUJDd1VBQTRJQkFRQ3hLZndCMXBlclNOK3JDSE1qeTAxZjg3b3Uvb2NmdVlyQy9lbUwyb0hjCm5LUFRqZE1iMlhoYm80TUxXOUp0SjIxcHZoL2daS0hKUWZRdDZySW54TmR2UW9aTTFNUW1oR1NodUVxMWt2eU8KZ0ltZDA1UkZqZVVyUHk1ZFlQdGdaZmE1VWh6eWIybmZHN2NodzZlRTFkWlg4eDBYVWJTZGNkVkVHY2pJV1pmMQpUbEZiSnk2cWo1OG5BTWJ0TzdPaEd6RHRQK3lhUnA4d0VwTHJlVlZIajFhOHNJQzRRQjRrQ3JmWjBYbXdqTWR2CjdjSjZDVll4UkhzTllCYktmM2pRUEx2TnJEWmM0L215cXNoK29kWU1KRlg1c09SbExwTmE5aHpVK2NkZnJScC8KVktHZjh2QzhGS2dkdTljNEJ4WStralZwbEgyV01EdzVLbVVOS2czdkxtdzYKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
rules: rules:
- operations: [ "CREATE", "UPDATE" ] - operations: [ "CREATE", "UPDATE" ]
apiGroups: [""] apiGroups: [""]
......
...@@ -19,4 +19,4 @@ kind: Kustomization ...@@ -19,4 +19,4 @@ kind: Kustomization
images: images:
- name: controller - name: controller
newName: alexdecb/l2sm-controller-manager newName: alexdecb/l2sm-controller-manager
newTag: 2.7.1 newTag: 2.7.2
...@@ -89,8 +89,8 @@ spec: ...@@ -89,8 +89,8 @@ spec:
value: l2sm-controller-service.l2sm-system.svc.cluster.local value: l2sm-controller-service.l2sm-system.svc.cluster.local
- name: CONTROLLER_PORT - name: CONTROLLER_PORT
value: "8181" value: "8181"
- name: SWITCHES_NAMESPACE # - name: SWITCHES_NAMESPACE
value: "l2sm-system" # value: "l2sm-system"
image: controller:latest image: controller:latest
name: manager name: manager
securityContext: securityContext:
......
...@@ -30,6 +30,18 @@ rules: ...@@ -30,6 +30,18 @@ rules:
- patch - patch
- update - update
- watch - watch
- apiGroups:
- ""
resources:
- configmaps
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups: - apiGroups:
- "" - ""
resources: resources:
...@@ -56,6 +68,30 @@ rules: ...@@ -56,6 +68,30 @@ rules:
- get - get
- patch - patch
- update - update
- apiGroups:
- ""
resources:
- services
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- k8s.cni.cncf.io
resources:
- network-attachment-definitions
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups: - apiGroups:
- l2sm.l2sm.k8s.local - l2sm.l2sm.k8s.local
resources: resources:
......
...@@ -44,14 +44,6 @@ spec: ...@@ -44,14 +44,6 @@ spec:
valueFrom: valueFrom:
fieldRef: fieldRef:
fieldPath: spec.nodeName fieldPath: spec.nodeName
- name: NVETHS
value: "10"
- name: CONTROLLERIP
value: "l2sm-controller-service"
- name: PODNAME
valueFrom:
fieldRef:
fieldPath: metadata.name
imagePullPolicy: Always imagePullPolicy: Always
securityContext: securityContext:
capabilities: capabilities:
......
# Copyright 2024 Universidad Carlos III de Madrid
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
name: veth1
labels:
app: l2sm
spec:
config: '{
"cniVersion": "0.3.0",
"type": "bridge",
"bridge": "br1",
"mtu": 1400,
"device": "veth1",
"ipam": {
"type":"static"
}
}'
# Copyright 2024 Universidad Carlos III de Madrid
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
name: veth10
labels:
app: l2sm
spec:
config: '{
"cniVersion": "0.3.0",
"type": "bridge",
"bridge": "br10",
"mtu": 1400,
"device": "veth10",
"ipam": {
"type":"static"
}
}'
# Copyright 2024 Universidad Carlos III de Madrid
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
name: veth2
labels:
app: l2sm
spec:
config: '{
"cniVersion": "0.3.0",
"type": "bridge",
"bridge": "br2",
"mtu": 1400,
"device": "veth2",
"ipam": {
"type":"static"
}
}'
# Copyright 2024 Universidad Carlos III de Madrid
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: "k8s.cni.cncf.io/v1"
kind: NetworkAttachmentDefinition
metadata:
name: veth4
labels:
app: l2sm
spec:
config: '{
"cniVersion": "0.3.0",
"type": "bridge",
"bridge": "br4",
"mtu": 1400,
"device": "veth4",
"ipam": {
"type":"static"
}
}'