diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000000000000000000000000000000000000..f06320a00e38b84747b50888b1c6520162b28462
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,5 @@
+**/*.md
+**/Dockerfile
+**/*.yml
+**/*.yaml
+.*
diff --git a/provider/partition-gcp/bootstrap/Dockerfile b/provider/partition-gcp/bootstrap/Dockerfile
index 550d9891b5f78d6122bce917b2b1617649b07e04..282aa2aeb9072658049465dd8f6b5d9345243af8 100644
--- a/provider/partition-gcp/bootstrap/Dockerfile
+++ b/provider/partition-gcp/bootstrap/Dockerfile
@@ -1,9 +1,11 @@
 FROM google/cloud-sdk:slim
 
-COPY ./provider/partition-gcp/bootstrap/bootstrap_partition.sh ./opt
+WORKDIR /opt
+
+COPY ./provider/partition-gcp/bootstrap/ /opt/
 
 ENV PREFIX=$(pwd)
 
-RUN chmod 775 /opt/bootstrap_partition.sh
+RUN chmod 775 bootstrap_partition.sh
 
-CMD ["/bin/bash", "-c", "/opt/bootstrap_partition.sh && sleep 365d"]
+CMD ["/bin/bash", "-c", "./bootstrap_partition.sh && sleep 365d"]
diff --git a/provider/partition-gcp/bootstrap/bootstrap_partition.sh b/provider/partition-gcp/bootstrap/bootstrap_partition.sh
index 7f34736dd8a0efcde8012606619d03a168a7a61c..3423ae084cb47521486ec7e6e363b42509bd373c 100644
--- a/provider/partition-gcp/bootstrap/bootstrap_partition.sh
+++ b/provider/partition-gcp/bootstrap/bootstrap_partition.sh
@@ -2,148 +2,10 @@
 
 set -ex
 
-DATA_PARTITION_ID_UPPER=${DATA_PARTITION_ID^^}
-
-generate_post_data() {
-  cat <<EOF
-{
-  "properties": {
-    "projectId": {
-      "sensitive": false,
-      "value": "${PROJECT_ID}"
-    },
-    "serviceAccount": {
-      "sensitive": false,
-      "value": "${SERVICE_ACCOUNT}"
-    },
-    "complianceRuleSet": {
-      "sensitive": false,
-      "value": "shared"
-    },
-    "dataPartitionId": {
-      "sensitive": false,
-      "value": "${DATA_PARTITION_ID}"
-    },
-    "name": {
-      "sensitive": false,
-      "value": "${DATA_PARTITION_ID}"
-    },
-    "policy-service-enabled": {
-      "sensitive": false,
-      "value": "false"
-    },
-    "bucket": {
-      "sensitive": false,
-      "value": "${PROJECT_ID}-${DATA_PARTITION_ID}-records"
-    },
-    "crmAccountID": {
-      "sensitive": false,
-      "value": "[${DATA_PARTITION_ID},${DATA_PARTITION_ID}]"
-    },
-    "osm.postgres.datasource.url": {
-      "sensitive": true,
-      "value": "POSTGRES_DATASOURCE_URL_${DATA_PARTITION_ID_UPPER}"
-    },
-    "osm.postgres.datasource.username": {
-      "sensitive": true,
-      "value": "POSTGRES_DB_USERNAME_${DATA_PARTITION_ID_UPPER}"
-    },
-    "osm.postgres.datasource.password": {
-      "sensitive": true,
-      "value": "POSTGRES_DB_PASSWORD_${DATA_PARTITION_ID_UPPER}"
-    },
-    "file.minio.endpoint": {
-      "sensitive": false,
-      "value": "https://s3.${DOMAIN}"
-    },
-    "file.minio.accessKey": {
-      "sensitive": true,
-      "value": "MINIO_ACCESS_KEY"
-    },
-    "file.minio.secretKey": {
-      "sensitive": true,
-      "value": "MINIO_SECRET_KEY"
-    },
-    "obm.minio.endpoint": {
-      "sensitive": false,
-      "value": "http://minio:9000"
-    },
-    "obm.minio.accessKey": {
-      "sensitive": true,
-      "value": "MINIO_ACCESS_KEY"
-    },
-    "obm.minio.secretKey": {
-      "sensitive": true,
-      "value": "MINIO_SECRET_KEY"
-    },
-    "oqm.rabbitmq.amqp.host": {
-      "sensitive": false,
-      "value": "rabbitmq"
-    },
-    "oqm.rabbitmq.amqp.port": {
-      "sensitive": false,
-      "value": "5672"
-    },
-    "oqm.rabbitmq.amqp.path": {
-      "sensitive": false,
-      "value": ""
-    },
-    "oqm.rabbitmq.amqp.username": {
-      "sensitive": true,
-      "value": "RABBITMQ_ADMIN_USERNAME"
-    },
-    "oqm.rabbitmq.amqp.password": {
-      "sensitive": true,
-      "value": "RABBITMQ_ADMIN_PASSWORD"
-    },
-    "oqm.rabbitmq.admin.schema": {
-      "sensitive": false,
-      "value": "http"
-    },
-    "oqm.rabbitmq.admin.host": {
-      "sensitive": false,
-      "value": "rabbitmq"
-    },
-    "oqm.rabbitmq.admin.port": {
-      "sensitive": false,
-      "value": "15672"
-    },
-    "oqm.rabbitmq.admin.path": {
-      "sensitive": false,
-      "value": "/api"
-    },
-    "oqm.rabbitmq.admin.username": {
-      "sensitive": true,
-      "value": "RABBITMQ_ADMIN_USERNAME"
-    },
-    "oqm.rabbitmq.admin.password": {
-      "sensitive": true,
-      "value": "RABBITMQ_ADMIN_PASSWORD"
-    },
-    "elasticsearch.host": {
-      "sensitive": true,
-      "value": "ELASTIC_HOST_${DATA_PARTITION_ID_UPPER}"
-    },
-    "elasticsearch.port": {
-      "sensitive": true,
-      "value": "ELASTIC_PORT_${DATA_PARTITION_ID_UPPER}"
-    },
-    "elasticsearch.user": {
-      "sensitive": true,
-      "value": "ELASTIC_USER_${DATA_PARTITION_ID_UPPER}"
-    },
-    "elasticsearch.password": {
-      "sensitive": true,
-      "value": "ELASTIC_PASS_${DATA_PARTITION_ID_UPPER}"
-    }
-  }
-}
-EOF
-}
-
-if [ "$ENVIRONMENT" == "anthos" ]
-then
+source ./data_anthos.sh
+source ./data_gcp.sh
 
+bootstrap_anthos() {
   if [ "$PARTITION_CLEAN_UP_ENABLED" == "true" ]
   then
     echo "Partition cleanup enabled, will delete partition ${DATA_PARTITION_ID}"
@@ -153,9 +15,9 @@ then
 
       if [ "$delete_status_code" == 204 ] || [ "$delete_status_code" == 404 ]
       then
-        echo "Partition deletion was successful, with status code : ${delete_status_code}"
+        echo "Partition deletion was successful, with status code: ${delete_status_code}"
       else
-        echo "Not able to delete partition, response status code is : ${delete_status_code}"
+        echo "Not able to delete partition, status code is: ${delete_status_code}"
         exit 1
       fi
   else
@@ -165,25 +27,26 @@ then
   status_code=$(curl -X POST \
     --url "http://${PARTITION_NAME}/api/partition/v1/partitions/${DATA_PARTITION_ID}" --write-out "%{http_code}" --silent --output "/dev/null" \
     -H "Content-Type: application/json" \
-    --data-raw "$(generate_post_data)")
+    --data-raw "$(generate_post_data_anthos)")
 
+  # shellcheck disable=SC2002
   if [ "$status_code" == 201 ]
   then
     echo "Partition bootstrap finished successfully!"
   elif [ "$status_code" == 409 ]
   then
-    curl -X PATCH \
+    patch_status_code=$(curl -X PATCH \
     --url "http://${PARTITION_NAME}/api/partition/v1/partitions/${DATA_PARTITION_ID}" --write-out "%{http_code}" --silent --output "/dev/null" \
     -H "Content-Type: application/json" \
-    --data-raw "$(generate_post_data)"
-    echo "Partition was patched because Postgres Database had already had entities!"
+    --data-raw "$(generate_post_data_anthos)")
+    echo "Partition was patched because Postgres Database had already had entities! Status code of patching: $patch_status_code"
   else
+    echo "Exiting with status code: $status_code"
     exit 1
   fi
+}
 
-elif [ "$ENVIRONMENT" == "gcp" ]
-then
-
+bootstrap_gcp() {
   echo "sleep to prevent 500 response from the Partition service, due to timeout of creation for Workload Identity"
   sleep 20
 
@@ -198,9 +61,9 @@ then
 
       if [ "$delete_status_code" == 204 ] || [ "$delete_status_code" == 404 ]
       then
-        echo "Partition deletion was successful, with status code : ${delete_status_code}"
+        echo "Partition deletion was successful, with status code: ${delete_status_code}"
       else
-        echo "Not able to delete partition, response status code is : ${delete_status_code}"
+        echo "Not able to delete partition, status code is: ${delete_status_code}"
         exit 1
       fi
   else
@@ -211,22 +74,32 @@ then
      --url "http://${PARTITION_NAME}/api/partition/v1/partitions/${DATA_PARTITION_ID}" --write-out "%{http_code}" --silent --output "/dev/null" \
      -H "Authorization: Bearer ${IDENTITY_TOKEN}" \
      -H "Content-Type: application/json" \
-     --data-raw "$(generate_post_data)")
+     --data-raw "$(generate_post_data_gcp)")
 
+  # shellcheck disable=SC2002
   if [ "$status_code" == 201 ]
   then
     echo "Partition bootstrap finished successfully!"
   elif [ "$status_code" == 409 ]
   then
-    curl -X PATCH \
+    patch_status_code=$(curl -X PATCH \
     --url "http://${PARTITION_NAME}/api/partition/v1/partitions/${DATA_PARTITION_ID}" --write-out "%{http_code}" --silent --output "/dev/null" \
     -H "Authorization: Bearer ${IDENTITY_TOKEN}" \
     -H "Content-Type: application/json" \
-    --data-raw "$(generate_post_data)"
-    echo "Partition was patched because Datastore had already had entities!"
+    --data-raw "$(generate_post_data_gcp)")
+    echo "Partition was patched because Datastore had already had entities! Status code of patching: $patch_status_code"
   else
+    echo "Exiting with status code: $status_code"
     exit 1
   fi
+}
+
+if [ "$ENVIRONMENT" == "anthos" ]
+then
+  bootstrap_anthos
+elif [ "$ENVIRONMENT" == "gcp" ]
+then
+  bootstrap_gcp
 fi
 
 touch /tmp/bootstrap_ready
diff --git a/provider/partition-gcp/bootstrap/data_anthos.sh b/provider/partition-gcp/bootstrap/data_anthos.sh
new file mode 100644
index 0000000000000000000000000000000000000000..34e6c11f5641e5323a17e6f128cb23dba69dc4ec
--- /dev/null
+++ b/provider/partition-gcp/bootstrap/data_anthos.sh
@@ -0,0 +1,140 @@
+#!/usr/bin/env bash
+
+DATA_PARTITION_ID_UPPER=${DATA_PARTITION_ID^^}
+
+generate_post_data_anthos() {
+  cat <<EOF
+{
+  "properties": {
+    "projectId": {
+      "sensitive": false,
+      "value": "${PROJECT_ID}"
+    },
+    "serviceAccount": {
+      "sensitive": false,
+      "value": "${SERVICE_ACCOUNT}"
+    },
+    "complianceRuleSet": {
+      "sensitive": false,
+      "value": "shared"
+    },
+    "dataPartitionId": {
+      "sensitive": false,
+      "value": "${DATA_PARTITION_ID}"
+    },
+    "name": {
+      "sensitive": false,
+      "value": "${DATA_PARTITION_ID}"
+    },
+    "policy-service-enabled": {
+      "sensitive": false,
+      "value": "false"
+    },
+    "bucket": {
+      "sensitive": false,
+      "value": "${PROJECT_ID}-${DATA_PARTITION_ID}-records"
+    },
+    "crmAccountID": {
+      "sensitive": false,
+      "value": "[${DATA_PARTITION_ID},${DATA_PARTITION_ID}]"
+    },
+    "osm.postgres.datasource.url": {
+      "sensitive": true,
+      "value": "POSTGRES_DATASOURCE_URL_${DATA_PARTITION_ID_UPPER}"
+    },
+    "osm.postgres.datasource.username": {
+      "sensitive": true,
+      "value": "POSTGRES_DB_USERNAME_${DATA_PARTITION_ID_UPPER}"
+    },
+    "osm.postgres.datasource.password": {
+      "sensitive": true,
+      "value": "POSTGRES_DB_PASSWORD_${DATA_PARTITION_ID_UPPER}"
+    },
+    "file.minio.endpoint": {
+      "sensitive": false,
+      "value": "https://s3.${DOMAIN}"
+    },
+    "file.minio.accessKey": {
+      "sensitive": true,
+      "value": "MINIO_ACCESS_KEY"
+    },
+    "file.minio.secretKey": {
+      "sensitive": true,
+      "value": "MINIO_SECRET_KEY"
+    },
+    "obm.minio.endpoint": {
+      "sensitive": false,
+      "value": "http://minio:9000"
+    },
+    "obm.minio.accessKey": {
+      "sensitive": true,
+      "value": "MINIO_ACCESS_KEY"
+    },
+    "obm.minio.secretKey": {
+      "sensitive": true,
+      "value": "MINIO_SECRET_KEY"
+    },
+    "oqm.rabbitmq.amqp.host": {
+      "sensitive": false,
+      "value": "rabbitmq"
+    },
+    "oqm.rabbitmq.amqp.port": {
+      "sensitive": false,
+      "value": "5672"
+    },
+    "oqm.rabbitmq.amqp.path": {
+      "sensitive": false,
+      "value": ""
+    },
+    "oqm.rabbitmq.amqp.username": {
+      "sensitive": true,
+      "value": "RABBITMQ_ADMIN_USERNAME"
+    },
+    "oqm.rabbitmq.amqp.password": {
+      "sensitive": true,
+      "value": "RABBITMQ_ADMIN_PASSWORD"
+    },
+    "oqm.rabbitmq.admin.schema": {
+      "sensitive": false,
+      "value": "http"
+    },
+    "oqm.rabbitmq.admin.host": {
+      "sensitive": false,
+      "value": "rabbitmq"
+    },
+    "oqm.rabbitmq.admin.port": {
+      "sensitive": false,
+      "value": "15672"
+    },
+    "oqm.rabbitmq.admin.path": {
+      "sensitive": false,
+      "value": "/api"
+    },
+    "oqm.rabbitmq.admin.username": {
+      "sensitive": true,
+      "value": "RABBITMQ_ADMIN_USERNAME"
+    },
+    "oqm.rabbitmq.admin.password": {
+      "sensitive": true,
+      "value": "RABBITMQ_ADMIN_PASSWORD"
+    },
+    "elasticsearch.host": {
+      "sensitive": true,
+      "value": "ELASTIC_HOST_${DATA_PARTITION_ID_UPPER}"
+    },
+    "elasticsearch.port": {
+      "sensitive": true,
+      "value": "ELASTIC_PORT_${DATA_PARTITION_ID_UPPER}"
+    },
+    "elasticsearch.user": {
+      "sensitive": true,
+      "value": "ELASTIC_USER_${DATA_PARTITION_ID_UPPER}"
+    },
+    "elasticsearch.password": {
+      "sensitive": true,
+      "value": "ELASTIC_PASS_${DATA_PARTITION_ID_UPPER}"
+    }
+  }
+}
+EOF
+}
diff --git a/provider/partition-gcp/bootstrap/data_gcp.sh b/provider/partition-gcp/bootstrap/data_gcp.sh
new file mode 100644
index 0000000000000000000000000000000000000000..7f78a10cfcc9b394f369cf1674de9cce9646f626
--- /dev/null
+++ b/provider/partition-gcp/bootstrap/data_gcp.sh
@@ -0,0 +1,60 @@
+#!/usr/bin/env bash
+
+DATA_PARTITION_ID_UPPER=${DATA_PARTITION_ID^^}
+
+generate_post_data_gcp() {
+  cat <<EOF
+{
+  "properties": {
+    "projectId": {
+      "sensitive": false,
+      "value": "${PROJECT_ID}"
+    },
+    "serviceAccount": {
+      "sensitive": false,
+      "value": "${SERVICE_ACCOUNT}"
+    },
+    "complianceRuleSet": {
+      "sensitive": false,
+      "value": "shared"
+    },
+    "dataPartitionId": {
+      "sensitive": false,
+      "value": "${DATA_PARTITION_ID}"
+    },
+    "name": {
+      "sensitive": false,
+      "value": "${DATA_PARTITION_ID}"
+    },
+    "policy-service-enabled": {
+      "sensitive": false,
+      "value": "false"
+    },
+    "bucket": {
+      "sensitive": false,
+      "value": "${PROJECT_ID}-${DATA_PARTITION_ID}-records"
+    },
+    "crmAccountID": {
+      "sensitive": false,
+      "value": "[${DATA_PARTITION_ID},${DATA_PARTITION_ID}]"
+    },
+    "elasticsearch.host": {
+      "sensitive": true,
+      "value": "ELASTIC_HOST_${DATA_PARTITION_ID_UPPER}"
+    },
+    "elasticsearch.port": {
+      "sensitive": true,
+      "value": "ELASTIC_PORT_${DATA_PARTITION_ID_UPPER}"
+    },
+    "elasticsearch.user": {
+      "sensitive": true,
+      "value": "ELASTIC_USER_${DATA_PARTITION_ID_UPPER}"
+    },
+    "elasticsearch.password": {
+      "sensitive": true,
+      "value": "ELASTIC_PASS_${DATA_PARTITION_ID_UPPER}"
+    }
+  }
+}
+EOF
+}