diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 0ab1ee498a10c348b289f792ea6e0cfcb229fb30..5e130bc25859f1a9f8243e173fb01fdd616c3c3a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -22,4 +22,5 @@ include:
   - local: '/build/ci/.build-container.yml'
   - local: '/build/ci/.test.yml'
   - local: '/build/ci/.terraform-ci.yml'
-  - local: '/build/ci/.deploy-k8s.yml'
\ No newline at end of file
+  - local: '/build/ci/.deploy-k8s.yml'
+  - local: '/build/ci/.uml-autogen-ci.yml'
diff --git a/build/ci/.uml-autogen-ci.yml b/build/ci/.uml-autogen-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..54feeaabeaf954606acc53ea11e5a8114f1b5c88
--- /dev/null
+++ b/build/ci/.uml-autogen-ci.yml
@@ -0,0 +1,14 @@
+goplantuml:
+    image: golang:1.14-alpine
+    stage: .post
+    when: manual
+    variables:
+        FILENAME: "ClassDiagram.puml"
+
+    script:
+    # install git
+    - apk update && apk add git
+    # install goplantuml
+    - go get github.com/jfeliu007/goplantuml/cmd/goplantuml
+    # run goplantuml
+    - goplantuml "${CI_PROJECT_DIR}/nucleus" >> "$FILENAME"