From e07cea5c11d792444676f904b843f9c61c4ee1a0 Mon Sep 17 00:00:00 2001 From: Alex ubuntu vm <alexdecb@yahoo.es> Date: Mon, 19 Feb 2024 14:56:34 +0100 Subject: [PATCH] deployment: updated operator to v2.3 --- .../custom-installation/deployOperator.yaml | 89 ++++++++++++++++--- deployments/l2sm-deployment.yaml | 89 ++++++++++++++++--- 2 files changed, 154 insertions(+), 24 deletions(-) diff --git a/deployments/custom-installation/deployOperator.yaml b/deployments/custom-installation/deployOperator.yaml index 3c1d99f..2e7aba8 100644 --- a/deployments/custom-installation/deployOperator.yaml +++ b/deployments/custom-installation/deployOperator.yaml @@ -28,33 +28,35 @@ spec: done; sleep 5; containers: - - image: alexdecb/l2sm-operator:2.2 + - image: alexdecb/l2sm-operator:2.3 name: l2sm-opt-pod env: - name: CONTROLLER_IP value: l2sm-controller-service #imagePullPolicy: Always - - image: mysql/mysql-server:5.7 - name: mysql - env: - - name: MYSQL_ROOT_PASSWORD - value: password - - name: MYSQL_DATABASE - value: L2SM - - name: MYSQL_USER - value: l2sm - - name: MYSQL_PASSWORD - value: l2sm; + - name: mysql + image: mysql:5.7 + envFrom: + - secretRef: + name: mysql-secret ports: - containerPort: 3306 name: mysql volumeMounts: - name: mysql-persistent-storage mountPath: /var/lib/mysql + - name: initdb-volume + mountPath: /docker-entrypoint-initdb.d volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pv-claim + - name: initdb-volume + configMap: + name: mysql-schema + items: + - key: init.sql + path: init.sql nodeSelector: dedicated: master tolerations: @@ -75,5 +77,68 @@ spec: targetPort: 8080 selector: l2sm-component: l2sm-opt +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: mysql-schema +data: + init.sql: | + + CREATE DATABASE IF NOT EXISTS l2sm; + USE l2sm; + + CREATE TABLE networks ( + id INT PRIMARY KEY AUTO_INCREMENT, + name VARCHAR(255) NOT NULL, + type ENUM('vlink', 'vnet', 'ext-vnet') NOT NULL, + UNIQUE KEY unique_network_name (name, type) + ); + + CREATE TABLE switches ( + id INT PRIMARY KEY AUTO_INCREMENT, + node_name VARCHAR(255) NOT NULL, + openflowId TEXT, + ip VARCHAR(15) + ); + + CREATE TABLE neds ( + id INT PRIMARY KEY AUTO_INCREMENT, + node_name VARCHAR(255) NOT NULL, + provider VARCHAR(255) NOT NULL, + openflowId TEXT, + ip VARCHAR(15) + ); + + CREATE TABLE interfaces ( + id INT PRIMARY KEY AUTO_INCREMENT, + name VARCHAR(255), + pod VARCHAR(255), + switch_id INT, + ned_id INT, + network_id INT, + FOREIGN KEY (switch_id) REFERENCES switches(id), + FOREIGN KEY (ned_id) REFERENCES neds(id), + FOREIGN KEY (network_id) REFERENCES networks(id) + ); + + -- Define the one-to-many relationship between switches and interfaces + ALTER TABLE interfaces + ADD CONSTRAINT fk_switch_interface + FOREIGN KEY (switch_id) + REFERENCES switches(id); + + -- Define the one-to-many relationship between neds and interfaces + ALTER TABLE interfaces + ADD CONSTRAINT fk_ned_interface + FOREIGN KEY (ned_id) + REFERENCES neds(id); + + -- Define the many-to-one relationship between networks and interfaces + ALTER TABLE interfaces + ADD CONSTRAINT fk_network_interface + FOREIGN KEY (network_id) + REFERENCES networks(id); + diff --git a/deployments/l2sm-deployment.yaml b/deployments/l2sm-deployment.yaml index 4955681..8511d72 100644 --- a/deployments/l2sm-deployment.yaml +++ b/deployments/l2sm-deployment.yaml @@ -250,33 +250,35 @@ spec: done; sleep 5; containers: - - image: alexdecb/l2sm-operator:2.2 + - image: alexdecb/l2sm-operator:2.3 name: l2sm-opt-pod env: - name: CONTROLLER_IP value: l2sm-controller-service #imagePullPolicy: Always - - image: mysql/mysql-server:5.7 - name: mysql - env: - - name: MYSQL_ROOT_PASSWORD - value: password - - name: MYSQL_DATABASE - value: L2SM - - name: MYSQL_USER - value: l2sm - - name: MYSQL_PASSWORD - value: l2sm; + - name: mysql + image: mysql:5.7 + envFrom: + - secretRef: + name: mysql-secret ports: - containerPort: 3306 name: mysql volumeMounts: - name: mysql-persistent-storage mountPath: /var/lib/mysql + - name: initdb-volume + mountPath: /docker-entrypoint-initdb.d volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pv-claim + - name: initdb-volume + configMap: + name: mysql-schema + items: + - key: init.sql + path: init.sql nodeSelector: dedicated: master tolerations: @@ -284,6 +286,7 @@ spec: operator: Equal value: master effect: NoSchedule + --- apiVersion: v1 kind: Service @@ -297,6 +300,68 @@ spec: selector: l2sm-component: l2sm-opt --- +apiVersion: v1 +kind: ConfigMap +metadata: + name: mysql-schema +data: + init.sql: | + + CREATE DATABASE IF NOT EXISTS l2sm; + USE l2sm; + + CREATE TABLE networks ( + id INT PRIMARY KEY AUTO_INCREMENT, + name VARCHAR(255) NOT NULL, + type ENUM('vlink', 'vnet', 'ext-vnet') NOT NULL, + UNIQUE KEY unique_network_name (name, type) + ); + + CREATE TABLE switches ( + id INT PRIMARY KEY AUTO_INCREMENT, + node_name VARCHAR(255) NOT NULL, + openflowId TEXT, + ip VARCHAR(15) + ); + + CREATE TABLE neds ( + id INT PRIMARY KEY AUTO_INCREMENT, + node_name VARCHAR(255) NOT NULL, + provider VARCHAR(255) NOT NULL, + openflowId TEXT, + ip VARCHAR(15) + ); + + CREATE TABLE interfaces ( + id INT PRIMARY KEY AUTO_INCREMENT, + name VARCHAR(255), + pod VARCHAR(255), + switch_id INT, + ned_id INT, + network_id INT, + FOREIGN KEY (switch_id) REFERENCES switches(id), + FOREIGN KEY (ned_id) REFERENCES neds(id), + FOREIGN KEY (network_id) REFERENCES networks(id) + ); + + -- Define the one-to-many relationship between switches and interfaces + ALTER TABLE interfaces + ADD CONSTRAINT fk_switch_interface + FOREIGN KEY (switch_id) + REFERENCES switches(id); + + -- Define the one-to-many relationship between neds and interfaces + ALTER TABLE interfaces + ADD CONSTRAINT fk_ned_interface + FOREIGN KEY (ned_id) + REFERENCES neds(id); + + -- Define the many-to-one relationship between networks and interfaces + ALTER TABLE interfaces + ADD CONSTRAINT fk_network_interface + FOREIGN KEY (network_id) + REFERENCES networks(id); +--- apiVersion: apps/v1 kind: DaemonSet metadata: -- GitLab