From 06b018e2132184fc64f5f93ed5c6cc5539a1e013 Mon Sep 17 00:00:00 2001
From: Administrator <admin@example.com>
Date: Wed, 5 Mar 2025 00:59:55 +0000
Subject: [PATCH] Add ability to deploy custom images

---
 deploy_custom_images.yml.tmpl |  9 +++++++++
 generate-deploy-ops-stages.sh | 22 +++++++++++++++++-----
 2 files changed, 26 insertions(+), 5 deletions(-)
 create mode 100644 deploy_custom_images.yml.tmpl

diff --git a/deploy_custom_images.yml.tmpl b/deploy_custom_images.yml.tmpl
new file mode 100644
index 0000000..77303c3
--- /dev/null
+++ b/deploy_custom_images.yml.tmpl
@@ -0,0 +1,9 @@
+${CUSTOM_IMAGE_TYPE}:
+  script:
+    - docker login -u gitlab-ci-token -p "$CI_JOB_TOKEN" $CI_REGISTRY
+    - docker pull $UAT_REGISTRY/custom_images/${CUSTOM_IMAGE_TYPE}:main
+    - docker tag $UAT_REGISTRY/custom_images/${CUSTOM_IMAGE_TYPE}:main $CI_REGISTRY/root/maap-workspaces/custom_images/${CUSTOM_IMAGE_TYPE}:${TAG}
+    - docker push $CI_REGISTRY/root/maap-workspaces/custom_images/${CUSTOM_IMAGE_TYPE}:${TAG}
+
+  tags:
+    - shell
\ No newline at end of file
diff --git a/generate-deploy-ops-stages.sh b/generate-deploy-ops-stages.sh
index 3788d23..e56ff1e 100644
--- a/generate-deploy-ops-stages.sh
+++ b/generate-deploy-ops-stages.sh
@@ -7,17 +7,29 @@ if [[ ! -z "${TAG}" ]]; then
   pushd maap-workspaces
   # List paths containing dockerfiles
   find base_images -name "Dockerfile" -type f > ${basedir}/images.txt
+  find custom_images -name "Dockerfile" -type f >> ${basedir}/images.txt
   popd
   cat ${basedir}/images.txt
   template="${basedir}/deploy.yml.tmpl"
   cat ${basedir}/images.txt | while read image
   do
-    second_dir=$(echo "$image" | cut -d'/' -f2)
-    export BASE_IMAGE_TYPE=${second_dir}
-    export TAG=${TAG}
-    export DIT_REGISTRY=${DIT_REGISTRY}
-    cat ${template} | CI_JOB_TOKEN='$CI_JOB_TOKEN' envsubst >> deploy.yml
+    if [[ "$image" == base_images/*/* ]]; then
+      template="${basedir}/deploy.yml.tmpl"
+      second_dir=$(echo "$image" | cut -d'/' -f2)
+      export BASE_IMAGE_TYPE=${second_dir}
+      export TAG=${TAG}
+      export DIT_REGISTRY=${DIT_REGISTRY}
+      cat ${template} | CI_JOB_TOKEN='$CI_JOB_TOKEN' envsubst >> deploy.yml
+    elif [[ "$image" == custom_images/*/* ]]; then
+      template="${basedir}/deploy_custom_images.yml.tmpl"
+      second_dir=$(echo "$image" | cut -d'/' -f2)
+      export CUSTOM_IMAGE_TYPE=${second_dir}
+      export TAG=${TAG}
+      export DIT_REGISTRY=${DIT_REGISTRY}
+      cat ${template} | CI_JOB_TOKEN='$CI_JOB_TOKEN' envsubst >> deploy.yml
+    fi
   done
+
 fi
 
 echo "Generate stages.yaml"
-- 
GitLab