diff --git a/.gitlab/ci/.mk-docs-deploy.yml b/.gitlab/ci/.mk-docs-deploy.yml
index 344459fbb936856fce8b058ac0d856a409aeec51..9c23237cd0aeb91d467fafa041c647c6e329604a 100644
--- a/.gitlab/ci/.mk-docs-deploy.yml
+++ b/.gitlab/ci/.mk-docs-deploy.yml
@@ -1,5 +1,5 @@
 build-mkdocs:
-    image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/python:3.12.1-slim-bookworm
+    image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/python:3.12.2-slim-bookworm
     stage: build
     before_script:
         - pip install mkdocs-material
@@ -13,7 +13,7 @@ build-mkdocs:
         - if: $CI_COMMIT_REF_PROTECTED == "true"
 
 .pages-options: &pages-options
-    image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/python:3.12.1-slim-bookworm
+    image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/python:3.12.2-slim-bookworm
     stage: deploy
     script:
         - mv mkdocs-built public
diff --git a/applications/arista-routing-engine/arista-routing-engine.Dockerfile b/applications/arista-routing-engine/arista-routing-engine.Dockerfile
index 6df44a04b62256e1b589b559c40f70985e350c4c..7b62ff822127a4cc1a434111481b12966658b119 100644
--- a/applications/arista-routing-engine/arista-routing-engine.Dockerfile
+++ b/applications/arista-routing-engine/arista-routing-engine.Dockerfile
@@ -1,4 +1,4 @@
-ARG GOLANG_VERSION=1.21
+ARG GOLANG_VERSION=1.22
 ARG BUILDARGS
 ARG GITLAB_PROXY
 
diff --git a/applications/venv-manager/venv-manager.Dockerfile b/applications/venv-manager/venv-manager.Dockerfile
index 706555b00f69a8c7d9e53c435ad0d516bc03570e..30a844ed29db5ca590cfbdceb6fad6da5a1047c2 100644
--- a/applications/venv-manager/venv-manager.Dockerfile
+++ b/applications/venv-manager/venv-manager.Dockerfile
@@ -1,4 +1,4 @@
-ARG GOLANG_VERSION=1.21
+ARG GOLANG_VERSION=1.22
 ARG BUILDARGS
 ARG GITLAB_PROXY
 
diff --git a/applications/ws-events/ws-events.Dockerfile b/applications/ws-events/ws-events.Dockerfile
index 04223f4a48dde7aca88a3a792871b90461e19145..07b6dc89a16c5372ecee9f1a06fa704a83d6a925 100644
--- a/applications/ws-events/ws-events.Dockerfile
+++ b/applications/ws-events/ws-events.Dockerfile
@@ -1,4 +1,4 @@
-ARG GOLANG_VERSION=1.21
+ARG GOLANG_VERSION=1.22
 ARG BUILDARGS
 ARG GITLAB_PROXY
 
diff --git a/cli/adapter/PndAdapter.go b/cli/adapter/PndAdapter.go
index 99379d0a91f799ca651d7caa449ecd51b4a0d5f7..5797e250f13acd9555a5f6ab683f50846e2d0054 100644
--- a/cli/adapter/PndAdapter.go
+++ b/cli/adapter/PndAdapter.go
@@ -47,8 +47,8 @@ func (p *PndAdapter) RemoveSbi(uuid.UUID) error {
 
 // AddNetworkElement adds a new device to the controller. The device name is optional.
 // If no name is provided a name will be generated upon device creation.
-func (p *PndAdapter) AddNetworkElement(ctx context.Context, name string, opts *tpb.TransportOption, pluginId uuid.UUID, gNMISubscribePaths []string) (*mnepb.AddListResponse, error) {
-	return api.AddNetworkElement(ctx, p.endpoint, name, opts, pluginId, p.ID(), gNMISubscribePaths)
+func (p *PndAdapter) AddNetworkElement(ctx context.Context, name, mneUUID string, opts *tpb.TransportOption, pluginId uuid.UUID, gNMISubscribePaths []string) (*mnepb.AddListResponse, error) {
+	return api.AddNetworkElement(ctx, p.endpoint, name, mneUUID, opts, pluginId, p.ID(), gNMISubscribePaths)
 }
 
 // GetPluginSchemaTree requests a plugin schema tree.
diff --git a/cli/adapter/PndAdapter_test.go b/cli/adapter/PndAdapter_test.go
index 25686416fb2349e37e63118ae487c8c008e214f2..45fbf7145e181ba80708e9f27b6a5ed1f3d729dc 100644
--- a/cli/adapter/PndAdapter_test.go
+++ b/cli/adapter/PndAdapter_test.go
@@ -75,9 +75,10 @@ func TestPndAdapter_AddNetworkElement(t *testing.T) {
 		endpoint string
 	}
 	type args struct {
-		name string
-		opts *tpb.TransportOption
-		sid  uuid.UUID
+		name    string
+		opts    *tpb.TransportOption
+		sid     uuid.UUID
+		mneUUID string
 	}
 	tests := []struct {
 		name    string
@@ -93,7 +94,7 @@ func TestPndAdapter_AddNetworkElement(t *testing.T) {
 				id:       tt.fields.id,
 				endpoint: tt.fields.endpoint,
 			}
-			if _, err := p.AddNetworkElement(context.TODO(), tt.args.name, tt.args.opts, tt.args.sid, []string{}); (err != nil) != tt.wantErr {
+			if _, err := p.AddNetworkElement(context.TODO(), tt.args.name, tt.args.mneUUID, tt.args.opts, tt.args.sid, []string{}); (err != nil) != tt.wantErr {
 				t.Errorf("PndAdapter.AddNetworkElement() error = %v, wantErr %v", err, tt.wantErr)
 			}
 		})
diff --git a/cli/cli.Dockerfile b/cli/cli.Dockerfile
index 593b70655eacf06220e05c8b5d228ddb853c661f..e30f679c22d281098c666f2e15f3e84cf1ee7117 100644
--- a/cli/cli.Dockerfile
+++ b/cli/cli.Dockerfile
@@ -1,4 +1,4 @@
-ARG GOLANG_VERSION=1.21
+ARG GOLANG_VERSION=1.22
 ARG BUILDARGS
 ARG GITLAB_PROXY
 
diff --git a/cli/cmd/networkElementCreate.go b/cli/cmd/networkElementCreate.go
index 6811e0397c2276049947bce9d0f1cc4ed38abc10..4d0b4e5553a28aefb0606d193cd1dae8af203251 100644
--- a/cli/cmd/networkElementCreate.go
+++ b/cli/cmd/networkElementCreate.go
@@ -71,7 +71,7 @@ if they diverge from the default credentials (user:'admin' and pw:'arista').`,
 			return
 		}
 
-		resp, err := pndAdapter.AddNetworkElement(createContextWithAuthorization(), mneName, opt, pluginUUID, []string{"system/config/hostname", "system/config/domain-name"})
+		resp, err := pndAdapter.AddNetworkElement(createContextWithAuthorization(), mneName, mneUUID, opt, pluginUUID, []string{"system/config/hostname", "system/config/domain-name"})
 		if err != nil {
 			spinner.Fail(err)
 			return
@@ -85,12 +85,13 @@ if they diverge from the default credentials (user:'admin' and pw:'arista').`,
 		// Necessary for prompt mode. The flag variables have to be resetted,
 		// since in prompt mode the program keeps running.
 
-		mneName, pluginID, address, username, password = "", "", "", "", ""
+		mneName, mneUUID, pluginID, address, username, password = "", "", "", "", "", ""
 		tls = false
 	},
 }
 
 var mneName string
+var mneUUID string
 var pluginID string
 var tls bool
 
@@ -103,4 +104,5 @@ func init() {
 	networkElementCreateCmd.Flags().StringVarP(&username, "username", "u", "", "username for a gnmi resource")
 	networkElementCreateCmd.Flags().StringVarP(&password, "password", "p", "", "password for a gnmi resource")
 	networkElementCreateCmd.Flags().BoolVarP(&tls, "tls", "t", false, "use flag to enable the controller to send requests to network elements using tls")
+	networkElementCreateCmd.Flags().StringVar(&mneUUID, "uuid", "", "add a network element UUID (optional)")
 }
diff --git a/controller/Dockerfile.debug b/controller/Dockerfile.debug
index 019506180a1611506d899de87f39182476f07340..605fb09250878a60e106e27b55566b73946cccac 100644
--- a/controller/Dockerfile.debug
+++ b/controller/Dockerfile.debug
@@ -1,5 +1,5 @@
 # syntax = docker/dockerfile:1.2
-ARG GOLANG_VERSION=1.21
+ARG GOLANG_VERSION=1.22
 FROM golang:$GOLANG_VERSION-alpine AS builder
 ARG GITLAB_USER
 ARG GITLAB_TOKEN
diff --git a/controller/Makefile b/controller/Makefile
index 14fb43fefe7364094d0a3051d1f6f4af4b12093f..2dc2aa5a23d707a1ed3a081d219e7f39abaebb89 100644
--- a/controller/Makefile
+++ b/controller/Makefile
@@ -47,7 +47,7 @@ show-unit-test-coverage: unit-test
 	go tool cover -html=coverage.out
 
 ci-unit-test: ci-install-tools
-	ENVIRONMENT=testing gotestsum --junitfile report.xml --format testname -- -short -race $$( go list ./... | grep -v /forks/ | grep -v /mocks ) -v -trimpath -coverprofile=coverage.out -covermode atomic -timeout 30m
+	ENVIRONMENT=testing gotestsum --junitfile report.xml --format testname -- -short $$( go list ./... | grep -v /forks/ | grep -v /mocks ) -v -trimpath -coverprofile=coverage.out -covermode atomic -timeout 30m
 
 generate-mocks: install-tools
 	./$(TOOLS_DIR)/mockery --all --dir "./interfaces/"
diff --git a/controller/api/managedNetworkElement.go b/controller/api/managedNetworkElement.go
index 71d6dd0629cb010d5360360ccb030f91fd1ee2e7..b07ad58e0d8156ff079401f0a57813926b061d92 100644
--- a/controller/api/managedNetworkElement.go
+++ b/controller/api/managedNetworkElement.go
@@ -20,7 +20,7 @@ import (
 
 // AddNetworkElement adds a new network element to the controller. The network element name is optional.
 // If no name is provided a name will be generated upon network element creation.
-func AddNetworkElement(ctx context.Context, addr, mneName string, opt *tpb.TransportOption, pluginID, pid uuid.UUID, gNMISubscribePaths []string) (*mnepb.AddListResponse, error) {
+func AddNetworkElement(ctx context.Context, addr, mneName, mneUUID string, opt *tpb.TransportOption, pluginID, pid uuid.UUID, gNMISubscribePaths []string) (*mnepb.AddListResponse, error) {
 	client, err := nbi.NetworkElementClient(addr, dialOptions...)
 	if err != nil {
 		return nil, err
@@ -36,6 +36,7 @@ func AddNetworkElement(ctx context.Context, addr, mneName string, opt *tpb.Trans
 				Pid:                pid.String(),
 				TransportOption:    opt,
 				GnmiSubscribePaths: gNMISubscribePaths,
+				MneId:              mneUUID,
 			},
 		},
 		Pid: pid.String(),
diff --git a/controller/controller.Dockerfile b/controller/controller.Dockerfile
index 873e576ed1b969200c8dc140b8582c1c303c6aac..43368bc07eb880c0e8e27a80b7c74375fe103adf 100644
--- a/controller/controller.Dockerfile
+++ b/controller/controller.Dockerfile
@@ -1,4 +1,4 @@
-ARG GOLANG_VERSION=1.21
+ARG GOLANG_VERSION=1.22
 ARG BUILDARGS
 ARG GITLAB_PROXY
 
diff --git a/controller/northbound/server/networkElement.go b/controller/northbound/server/networkElement.go
index b037ffdeb67bc925ef26c581f7adf3b750ec4143..71efce7910ff2f4c3f66e9094e95201a44488154 100644
--- a/controller/northbound/server/networkElement.go
+++ b/controller/northbound/server/networkElement.go
@@ -133,6 +133,8 @@ func (n *NetworkElementServer) Get(ctx context.Context, request *mnepb.GetReques
 		return nil, status.Errorf(codes.Aborted, "%v", err)
 	}
 
+	mne.TransportAddress = networkElement.TransportAddress()
+
 	return &mnepb.GetResponse{
 		Timestamp: time.Now().UnixNano(),
 		Pnd: &ppb.PrincipalNetworkDomain{
diff --git a/csbi/gnmi-target/gnmitarget.Dockerfile b/csbi/gnmi-target/gnmitarget.Dockerfile
index b8e190f8db27d74f89cef311b1ca43190c3fa74e..63225a0bffc9758060425ace9752ad1cb3e208dc 100644
--- a/csbi/gnmi-target/gnmitarget.Dockerfile
+++ b/csbi/gnmi-target/gnmitarget.Dockerfile
@@ -1,4 +1,4 @@
-ARG GOLANG_VERSION=1.21
+ARG GOLANG_VERSION=1.22
 FROM golang:$GOLANG_VERSION-alpine
 RUN go install github.com/google/gnxi/gnmi_target@latest
 RUN wget https://raw.githubusercontent.com/google/gnxi/master/gnmi_target/openconfig-openflow.json
diff --git a/csbi/resources/Dockerfile b/csbi/resources/Dockerfile
index e18279aafd31dd06e0162334b0490b9710ce1717..169db470c4e15f20d5bb14eae397459544efc640 100644
--- a/csbi/resources/Dockerfile
+++ b/csbi/resources/Dockerfile
@@ -1,5 +1,5 @@
 # syntax = docker/dockerfile:1.2
-ARG GOLANG_VERSION=1.21
+ARG GOLANG_VERSION=1.22
 FROM golang:$GOLANG_VERSION-alpine AS installer
 ARG GITLAB_USER
 ARG GITLAB_TOKEN
diff --git a/go.mod b/go.mod
index 16ec0be5ac8c7316a0b9ed4ae48940908a45ced7..d866c16ab2609dd551f69d517e86dc26b55de050 100644
--- a/go.mod
+++ b/go.mod
@@ -1,6 +1,6 @@
 module code.fbi.h-da.de/danet/gosdn
 
-go 1.21
+go 1.22
 
 require (
 	github.com/aristanetworks/goarista v0.0.0-20240205212632-469910f40f00
@@ -14,7 +14,7 @@ require (
 	github.com/openconfig/goyang v1.4.5
 	github.com/openconfig/ygot v0.29.18
 	github.com/prometheus/client_golang v1.18.0
-	github.com/pterm/pterm v0.12.76
+	github.com/pterm/pterm v0.12.78
 	github.com/sethvargo/go-password v0.2.0
 	github.com/sirupsen/logrus v1.9.3
 	github.com/spf13/cobra v1.8.0
@@ -24,7 +24,7 @@ require (
 	github.com/stretchr/testify v1.8.4
 	go.mongodb.org/mongo-driver v1.13.1
 	golang.org/x/sync v0.6.0
-	google.golang.org/genproto v0.0.0-20240116215550-a9fa1716bcac // indirect
+	google.golang.org/genproto v0.0.0-20240125205218-1f4bbc51befe // indirect
 	google.golang.org/grpc v1.61.0
 	google.golang.org/protobuf v1.32.0
 	gopkg.in/yaml.v3 v3.0.1
@@ -92,7 +92,7 @@ require (
 	github.com/hashicorp/go-multierror v1.1.1
 	github.com/hashicorp/go-plugin v1.4.10
 	github.com/lesismal/nbio v1.3.21
-	google.golang.org/genproto/googleapis/api v0.0.0-20240125205218-1f4bbc51befe
+	google.golang.org/genproto/googleapis/api v0.0.0-20240205150955-31a09d347014
 )
 
 require (
@@ -120,5 +120,5 @@ require (
 	go.uber.org/atomic v1.9.0 // indirect
 	go.uber.org/multierr v1.9.0 // indirect
 	golang.org/x/exp v0.0.0-20231127185646-65229373498e // indirect
-	google.golang.org/genproto/googleapis/rpc v0.0.0-20240116215550-a9fa1716bcac // indirect
+	google.golang.org/genproto/googleapis/rpc v0.0.0-20240125205218-1f4bbc51befe // indirect
 )
diff --git a/go.sum b/go.sum
index cd395d6fb29b5ec800d86b13c4c66fadd661b5b9..eeb8936c485cc8c76d1984719d9bd6cd556fbd51 100644
--- a/go.sum
+++ b/go.sum
@@ -880,6 +880,8 @@ github.com/pterm/pterm v0.12.36/go.mod h1:NjiL09hFhT/vWjQHSj1athJpx6H8cjpHXNAK5b
 github.com/pterm/pterm v0.12.40/go.mod h1:ffwPLwlbXxP+rxT0GsgDTzS3y3rmpAO1NMjUkGTYf8s=
 github.com/pterm/pterm v0.12.76 h1:x1gbA2c7mJEd0PjJP3EYN04PR1DVrE3Z8sRDMP+qH6g=
 github.com/pterm/pterm v0.12.76/go.mod h1:1v/gzOF1N0FsjbgTHZ1wVycRkKiatFvJSJC4IGaQAAo=
+github.com/pterm/pterm v0.12.78 h1:QTWKaIAa4B32GKwqVXtu9m1DUMgWw3VRljMkMevX+b8=
+github.com/pterm/pterm v0.12.78/go.mod h1:1v/gzOF1N0FsjbgTHZ1wVycRkKiatFvJSJC4IGaQAAo=
 github.com/rabbitmq/amqp091-go v1.9.0 h1:qrQtyzB4H8BQgEuJwhmVQqVHB9O4+MNDJCCAcpc3Aoo=
 github.com/rabbitmq/amqp091-go v1.9.0/go.mod h1:+jPrT9iY2eLjRaMSRHUhc3z14E/l85kv/f+6luSD3pc=
 github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
@@ -1545,8 +1547,26 @@ google.golang.org/genproto v0.0.0-20240116215550-a9fa1716bcac h1:ZL/Teoy/ZGnzyrq
 google.golang.org/genproto v0.0.0-20240116215550-a9fa1716bcac/go.mod h1:+Rvu7ElI+aLzyDQhpHMFMMltsD6m7nqpuWDd2CwJw3k=
 google.golang.org/genproto/googleapis/api v0.0.0-20240125205218-1f4bbc51befe h1:0poefMBYvYbs7g5UkjS6HcxBPaTRAmznle9jnxYoAI8=
 google.golang.org/genproto/googleapis/api v0.0.0-20240125205218-1f4bbc51befe/go.mod h1:4jWUdICTdgc3Ibxmr8nAJiiLHwQBY0UI0XZcEMaFKaA=
+google.golang.org/genproto v0.0.0-20240125205218-1f4bbc51befe h1:USL2DhxfgRchafRvt/wYyyQNzwgL7ZiURcozOE/Pkvo=
+google.golang.org/genproto v0.0.0-20240125205218-1f4bbc51befe/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro=
+google.golang.org/genproto/googleapis/api v0.0.0-20240108191215-35c7eff3a6b1 h1:OPXtXn7fNMaXwO3JvOmF1QyTc00jsSFFz1vXXBOdCDo=
+google.golang.org/genproto/googleapis/api v0.0.0-20240108191215-35c7eff3a6b1/go.mod h1:B5xPO//w8qmBDjGReYLpR6UJPnkldGkCSMoH/2vxJeg=
+google.golang.org/genproto/googleapis/api v0.0.0-20240116215550-a9fa1716bcac h1:OZkkudMUu9LVQMCoRUbI/1p5VCo9BOrlvkqMvWtqa6s=
+google.golang.org/genproto/googleapis/api v0.0.0-20240116215550-a9fa1716bcac/go.mod h1:B5xPO//w8qmBDjGReYLpR6UJPnkldGkCSMoH/2vxJeg=
+google.golang.org/genproto/googleapis/api v0.0.0-20240122161410-6c6643bf1457 h1:KHBtwE+eQc3+NxpjmRFlQ3pJQ2FNnhhgB9xOV8kyBuU=
+google.golang.org/genproto/googleapis/api v0.0.0-20240122161410-6c6643bf1457/go.mod h1:4jWUdICTdgc3Ibxmr8nAJiiLHwQBY0UI0XZcEMaFKaA=
+google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80 h1:Lj5rbfG876hIAYFjqiJnPHfhXbv+nzTWfm04Fg/XSVU=
+google.golang.org/genproto/googleapis/api v0.0.0-20240123012728-ef4313101c80/go.mod h1:4jWUdICTdgc3Ibxmr8nAJiiLHwQBY0UI0XZcEMaFKaA=
+google.golang.org/genproto/googleapis/api v0.0.0-20240125205218-1f4bbc51befe h1:0poefMBYvYbs7g5UkjS6HcxBPaTRAmznle9jnxYoAI8=
+google.golang.org/genproto/googleapis/api v0.0.0-20240125205218-1f4bbc51befe/go.mod h1:4jWUdICTdgc3Ibxmr8nAJiiLHwQBY0UI0XZcEMaFKaA=
+google.golang.org/genproto/googleapis/api v0.0.0-20240205150955-31a09d347014 h1:x9PwdEgd11LgK+orcck69WVRo7DezSO4VUMPI4xpc8A=
+google.golang.org/genproto/googleapis/api v0.0.0-20240205150955-31a09d347014/go.mod h1:rbHMSEDyoYX62nRVLOCc4Qt1HbsdytAYoVwgjiOhF3I=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20240102182953-50ed04b92917 h1:6G8oQ016D88m1xAKljMlBOOGWDZkes4kMhgGFlf8WcQ=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20240102182953-50ed04b92917/go.mod h1:xtjpI3tXFPP051KaWnhvxkiubL/6dJ18vLVf7q2pTOU=
 google.golang.org/genproto/googleapis/rpc v0.0.0-20240116215550-a9fa1716bcac h1:nUQEQmH/csSvFECKYRv6HWEyypysidKl2I6Qpsglq/0=
 google.golang.org/genproto/googleapis/rpc v0.0.0-20240116215550-a9fa1716bcac/go.mod h1:daQN87bsDqDoe316QbbvX60nMoJQa4r6Ds0ZuoAe5yA=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20240125205218-1f4bbc51befe h1:bQnxqljG/wqi4NTXu2+DJ3n7APcEA882QZ1JvhQAq9o=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20240125205218-1f4bbc51befe/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s=
 google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw=
 google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
 google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
diff --git a/lab-vm/vm-with-packer/scripts/setup.sh b/lab-vm/vm-with-packer/scripts/setup.sh
index 38cea0299ec91d47fa89bd7a69ae9617c1126e95..b9c990d1f03d5a4d2281d7bdaa3b4e6de40fef4b 100644
--- a/lab-vm/vm-with-packer/scripts/setup.sh
+++ b/lab-vm/vm-with-packer/scripts/setup.sh
@@ -5,9 +5,9 @@ sudo apt update
 sudo apt upgrade -y
 
 # Install go
-wget https://go.dev/dl/go1.21.5.linux-amd64.tar.gz
-rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.21.5.linux-amd64.tar.gz
-rm go1.21.5.linux-amd64.tar.gz
+wget https://go.dev/dl/go1.22.0.linux-amd64.tar.gz
+rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz
+rm go1.22.0.linux-amd64.tar.gz
 echo "export PATH=$PATH:/usr/local/go/bin" >>/home/gosdn/.profile
 echo "export GOPATH=$HOME/go " >>/home/gosdn/.profile
 source /home/gosdn/.profile
diff --git a/lab-vm/vm-with-vagrant/Vagrantfile b/lab-vm/vm-with-vagrant/Vagrantfile
index e3e3883f1ec78fa6b2775814f4bf8703f20263b0..4a32d445e0d512caf2b77d470a0d4e353668953f 100644
--- a/lab-vm/vm-with-vagrant/Vagrantfile
+++ b/lab-vm/vm-with-vagrant/Vagrantfile
@@ -37,9 +37,9 @@ Vagrant.configure(2) do |config|
     zip
     apt-get autoremove -y
     ####### installing go #######
-    wget https://go.dev/dl/go1.21.5.linux-amd64.tar.gz
-    rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.21.5.linux-amd64.tar.gz
-    rm go1.21.5.linux-amd64.tar.gz
+    wget https://go.dev/dl/go1.22.0.linux-amd64.tar.gz
+    rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz
+    rm go1.22.0.linux-amd64.tar.gz
     echo 'export PATH=$PATH:/usr/local/go/bin' >> /home/vagrant/.profile
     echo 'export GOPATH=$HOME/go' >> /home/vagrant/.profile
     source /home/vagrant/.profile
diff --git a/plugin-registry/plugin-registry.Dockerfile b/plugin-registry/plugin-registry.Dockerfile
index 9b568ff16609bbacacb9c2b53c700d2ec169c36b..a0a70dedc7110bfdbd21ddc75356e92a0735980f 100644
--- a/plugin-registry/plugin-registry.Dockerfile
+++ b/plugin-registry/plugin-registry.Dockerfile
@@ -1,4 +1,4 @@
-ARG GOLANG_VERSION=1.21
+ARG GOLANG_VERSION=1.22
 ARG BUILDARGS
 ARG GITLAB_PROXY
 
diff --git a/plugin-registry/plugin-registry.debug.Dockerfile b/plugin-registry/plugin-registry.debug.Dockerfile
index 827ec93033117838e9538899dcd9ab6d746c062d..9248a716cf930b1d3c351c9aaabd536762f69f6c 100644
--- a/plugin-registry/plugin-registry.debug.Dockerfile
+++ b/plugin-registry/plugin-registry.debug.Dockerfile
@@ -1,4 +1,4 @@
-ARG GOLANG_VERSION=1.21
+ARG GOLANG_VERSION=1.22
 ARG BUILDARGS
 ARG $GITLAB_PROXY