From 74590026efbceeb49e9bbe1411bcc833cb2bad55 Mon Sep 17 00:00:00 2001
From: "Mikhail Piatliou (EPAM)" <mikhail_piatliou@epam.com>
Date: Wed, 13 Apr 2022 11:12:21 +0000
Subject: [PATCH] Helms for Anthos on-prem [GONRG-4427]

---
 .gitlab-ci.yml                                | 17 +++++++++---
 .../configmap/templates/indexer-variables.yml | 23 ----------------
 devops/gcp/configmap/templates/variables.yaml | 21 +++++++++++++++
 devops/gcp/configmap/values.yaml              | 27 +++++++++----------
 .../{indexer-deploy.yml => deployment.yaml}   |  6 +++++
 .../gcp/deploy/templates/service-account.yaml |  7 +++++
 .../{indexer-service.yml => service.yaml}     |  7 +++--
 ...rtual-service.yml => virtual-service.yaml} |  0
 devops/gcp/deploy/values.yaml                 | 10 ++++---
 .../src/main/resources/application.properties |  4 ++-
 10 files changed, 71 insertions(+), 51 deletions(-)
 delete mode 100644 devops/gcp/configmap/templates/indexer-variables.yml
 create mode 100644 devops/gcp/configmap/templates/variables.yaml
 rename devops/gcp/deploy/templates/{indexer-deploy.yml => deployment.yaml} (84%)
 create mode 100644 devops/gcp/deploy/templates/service-account.yaml
 rename devops/gcp/deploy/templates/{indexer-service.yml => service.yaml} (77%)
 rename devops/gcp/deploy/templates/{indexer-virtual-service.yml => virtual-service.yaml} (100%)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 00baf4db0..6cc0bdb43 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -18,10 +18,19 @@ variables:
 
   OSDU_GCP_SERVICE: indexer
   OSDU_GCP_VENDOR: gcp
-  OSDU_GCP_QUEUE_SA_EMAIL: pub-sub-indexer-queue@nice-etching-277309.iam.gserviceaccount.com
-  OSDU_GCP_HELM_CONFIG_SERVICE_VARS: "--set data.log_level=INFO --set data.schema_host=$OSDU_GCP_SCHEMA_API/schema  --set data.google_cloud_project=$OSDU_GCP_PROJECT --set data.redis_search_host=$REDIS_SEARCH_HOST --set data.redis_group_host=$REDIS_GROUP_HOST --set data.indexer_queue_host=$OSDU_GCP_INDEXER_QUEUE_URL --set data.crs_api=$OSDU_GCP_CRS_API --set data.partition_api=$OSDU_GCP_PARTITION_API --set data.google_audiences=$GOOGLE_AUDIENCE --set data.indexer_que_service_mail=$OSDU_GCP_QUEUE_SA_EMAIL"
-  OSDU_GCP_HELM_CONFIG_SERVICE_VARS_DEV2: "--set data.key_ring=$OSDU_GCP_PARTITION_KEY_RING --set data.log_level=INFO --set data.schema_host=$OSDU_GCP_SCHEMA_API/schema  --set data.google_cloud_project=$OSDU_GCP_PROJECT --set data.redis_search_host=$REDIS_SEARCH_HOST --set data.redis_group_host=$REDIS_GROUP_HOST --set data.indexer_queue_host=$OSDU_GCP_INDEXER_QUEUE_URL --set data.crs_api=$OSDU_GCP_CRS_API --set data.partition_api=$OSDU_GCP_PARTITION_API --set data.google_audiences=$GOOGLE_AUDIENCE --set data.indexer_que_service_mail=$OSDU_GCP_QUEUE_SA_EMAIL"
-  OSDU_GCP_HELM_DEPLOYMENT_SERVICE_VARS: "--set data.image=$CI_REGISTRY_IMAGE/osdu-gcp:$CI_COMMIT_SHORT_SHA --set data.serviceAccountName=$OSDU_GCP_SERVICE-k8s"
+  OSDU_GCP_HELM_CONFIG_SERVICE_VARS: >
+    --set data.log_level=INFO
+    --set data.redis_search_host=$REDIS_SEARCH_HOST
+    --set data.redis_group_host=$REDIS_GROUP_HOST
+    --set data.google_audiences=$GOOGLE_AUDIENCE
+  OSDU_GCP_HELM_CONFIG_SERVICE_VARS_DEV2: >
+    --set data.log_level=INFO
+    --set data.redis_search_host=$REDIS_SEARCH_HOST
+    --set data.redis_group_host=$REDIS_GROUP_HOST
+    --set data.google_audiences=$GOOGLE_AUDIENCE
+  OSDU_GCP_HELM_DEPLOYMENT_SERVICE_VARS: > 
+    --set data.image=$CI_REGISTRY_IMAGE/osdu-gcp:$CI_COMMIT_SHORT_SHA
+    --set data.serviceAccountName=$OSDU_GCP_SERVICE-k8s
   OSDU_GCP_HELM_CONFIG_SERVICE: indexer-config
   OSDU_GCP_HELM_DEPLOYMENT_SERVICE: indexer-deploy
   OSDU_GCP_HELM_PACKAGE_CHARTS: "devops/gcp/deploy devops/gcp/configmap"
diff --git a/devops/gcp/configmap/templates/indexer-variables.yml b/devops/gcp/configmap/templates/indexer-variables.yml
deleted file mode 100644
index d9b96cdce..000000000
--- a/devops/gcp/configmap/templates/indexer-variables.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  labels:
-    app: "{{ .Values.conf.app_name }}"
-  name: "{{ .Values.conf.configmap }}"
-  namespace: "{{ .Release.Namespace }}"
-data:
-  LOG_LEVEL: "{{ .Values.data.log_level }}"
-  SCHEMA_HOST: "{{ .Values.data.schema_host }}"
-  AUTHORIZE_API: "{{ .Values.data.authorize_api }}"
-  REDIS_SEARCH_HOST: "{{ .Values.data.redis_search_host }}"
-  REDIS_GROUP_HOST: "{{ .Values.data.redis_group_host }}"
-  SECURITY_HTTPS_CERTIFICATE_TRUST: "{{ .Values.data.security_https_certificate_trust }}"
-  STORAGE_QUERY_RECORD_HOST: "{{ .Values.data.storage_query_record_host }}"
-  STORAGE_SCHEMA_HOST: "{{ .Values.data.storage_schema_host }}"
-  STORAGE_QUERY_RECORD_FOR_CONVERSION_HOST: "{{ .Values.data.storage_query_record_for_conversion_host }}"
-  STORAGE_RECORDS_BATCH_SIZE: "{{ .Values.data.storage_records_batch_size }}"
-  STORAGE_QUERY_KINDS_HOST: "{{ .Values.data.storage_query_kinds_host }}"
-  INDEXER_QUEUE_HOST: "{{ .Values.data.indexer_queue_host }}"
-  PARTITION_API: "{{ .Values.data.partition_api }}"
-  GOOGLE_AUDIENCES: "{{ .Values.data.google_audiences }}"
-  SPRING_PROFILES_ACTIVE: "{{ .Values.data.spring_profiles_active }}"
diff --git a/devops/gcp/configmap/templates/variables.yaml b/devops/gcp/configmap/templates/variables.yaml
new file mode 100644
index 000000000..a429f4f98
--- /dev/null
+++ b/devops/gcp/configmap/templates/variables.yaml
@@ -0,0 +1,21 @@
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  labels:
+    app: "{{ .Values.conf.app_name }}"
+  name: "{{ .Values.conf.configmap }}"
+  namespace: "{{ .Release.Namespace }}"
+data:
+  ENTITLEMENTS_HOST: "{{ .Values.data.entitlements_host }}"
+  INDEXER_QUEUE_BASE_HOST: "{{ .Values.data.indexer_queue_base_host }}"
+  LOG_LEVEL: "{{ .Values.data.log_level }}"
+  PARTITION_HOST: "{{ .Values.data.partition_host }}"
+  REDIS_GROUP_HOST: "{{ .Values.data.redis_group_host }}"
+  REDIS_SEARCH_HOST: "{{ .Values.data.redis_search_host }}"
+  SCHEMA_BASE_HOST: "{{ .Values.data.schema_base_host }}"
+  SECURITY_HTTPS_CERTIFICATE_TRUST: "{{ .Values.data.security_https_certificate_trust }}"
+  SPRING_PROFILES_ACTIVE: "{{ .Values.data.spring_profiles_active }}"
+  STORAGE_HOST: "{{ .Values.data.storage_host }}"
+  {{- if not .Values.conf.on_prem_enabled }}
+  GOOGLE_AUDIENCES: "{{ .Values.data.google_audiences }}"
+  {{- end }}
diff --git a/devops/gcp/configmap/values.yaml b/devops/gcp/configmap/values.yaml
index 21247d977..340c11278 100644
--- a/devops/gcp/configmap/values.yaml
+++ b/devops/gcp/configmap/values.yaml
@@ -3,23 +3,20 @@
 # Declare variables to be passed into your templates.
 
 data:
+  # common
+  entitlements_host: "http://entitlements"
+  indexer_queue_base_host: "http://indexer-queue"
   log_level: "INFO"
-  schema_host: ""
-  authorize_api: "http://entitlements/api/entitlements/v2/"
-  redis_search_host: ""
-  redis_group_host: ""
+  partition_host: "http://partition"
+  redis_group_host: "redis-group-master"
+  redis_search_host: "redis-search-master"
+  schema_base_host: "http://schema"
   security_https_certificate_trust: "true"
-  storage_query_record_host: "http://storage/api/storage/v2/query/records"
-  storage_schema_host: "http://storage/api/storage/v2/schemas"
-  storage_query_record_for_conversion_host: "http://storage/api/storage/v2/query/records:batch"
-  storage_records_batch_size: "20"
-  storage_query_kinds_host: "http://storage/api/storage/v2/query/kinds"
-  indexer_queue_host: ""
-  partition_api: "http://partition/api/partition/v1/"
-  google_audiences: ""
   spring_profiles_active: "gcp"
-
-
+  storage_host: "http://storage"
+  # gcp
+  google_audiences: ""
 conf:
-  configmap: "indexer-config"
   app_name: "indexer"
+  configmap: "indexer-config"
+  on_prem_enabled: false
diff --git a/devops/gcp/deploy/templates/indexer-deploy.yml b/devops/gcp/deploy/templates/deployment.yaml
similarity index 84%
rename from devops/gcp/deploy/templates/indexer-deploy.yml
rename to devops/gcp/deploy/templates/deployment.yaml
index 2cd5d863e..149c9f097 100644
--- a/devops/gcp/deploy/templates/indexer-deploy.yml
+++ b/devops/gcp/deploy/templates/deployment.yaml
@@ -26,6 +26,12 @@ spec:
             name: "{{ .Values.conf.configmap }}"
         - secretRef:
             name: "{{ .Values.conf.elastic_secret_name }}"
+        {{- if .Values.conf.on_prem_enabled }}
+        - secretRef:
+            name: "{{ .Values.conf.keycloak_secret_name }}"
+        - secretRef:
+            name: "{{ .Values.conf.rabbitmq_secret_name }}"
+        {{- end }}
         securityContext:
           allowPrivilegeEscalation: false
           runAsUser: 0
diff --git a/devops/gcp/deploy/templates/service-account.yaml b/devops/gcp/deploy/templates/service-account.yaml
new file mode 100644
index 000000000..61f46c8a5
--- /dev/null
+++ b/devops/gcp/deploy/templates/service-account.yaml
@@ -0,0 +1,7 @@
+{{- if .Values.conf.on_prem_enabled }}
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: "{{ .Values.data.serviceAccountName }}"
+  namespace: "{{ .Release.Namespace }}"
+{{- end }}
diff --git a/devops/gcp/deploy/templates/indexer-service.yml b/devops/gcp/deploy/templates/service.yaml
similarity index 77%
rename from devops/gcp/deploy/templates/indexer-service.yml
rename to devops/gcp/deploy/templates/service.yaml
index d92e1b6fb..86a626642 100644
--- a/devops/gcp/deploy/templates/indexer-service.yml
+++ b/devops/gcp/deploy/templates/service.yaml
@@ -1,13 +1,12 @@
 apiVersion: v1
 kind: Service
 metadata:
-  name: "{{ .Values.conf.app_name }}"
+  {{- if not .Values.conf.on_prem_enabled }}
   annotations:
     cloud.google.com/neg: '{"ingress": true}'
+  {{- end }}
+  name: "{{ .Values.conf.app_name }}"
   namespace: "{{ .Release.Namespace }}"
-  labels:
-    app: "{{ .Values.conf.app_name }}"
-    service: "{{ .Values.conf.app_name }}"
 spec:
   ports:
     - protocol: TCP
diff --git a/devops/gcp/deploy/templates/indexer-virtual-service.yml b/devops/gcp/deploy/templates/virtual-service.yaml
similarity index 100%
rename from devops/gcp/deploy/templates/indexer-virtual-service.yml
rename to devops/gcp/deploy/templates/virtual-service.yaml
diff --git a/devops/gcp/deploy/values.yaml b/devops/gcp/deploy/values.yaml
index 3ae46b413..75c1c1bce 100644
--- a/devops/gcp/deploy/values.yaml
+++ b/devops/gcp/deploy/values.yaml
@@ -7,11 +7,13 @@ data:
   requests_memory: "640M"
   limits_cpu: "1"
   limits_memory: "1G"
-  serviceAccountName: ""
-  imagePullPolicy: "IfNotPresent"
   image: ""
-
+  imagePullPolicy: "IfNotPresent"
+  serviceAccountName: "indexer"
 conf:
+  app_name: "indexer"
   configmap: "indexer-config"
   elastic_secret_name: "elastic-secret"
-  app_name: "indexer"
+  keycloak_secret_name: "indexer-keycloak-secret"
+  on_prem_enabled: false
+  rabbitmq_secret_name: "rabbitmq-secret"
diff --git a/provider/indexer-gcp/src/main/resources/application.properties b/provider/indexer-gcp/src/main/resources/application.properties
index f8ffcf5ae..bc53e7b9f 100644
--- a/provider/indexer-gcp/src/main/resources/application.properties
+++ b/provider/indexer-gcp/src/main/resources/application.properties
@@ -56,4 +56,6 @@ SCHEMA_BASE_HOST=http://schema
 SCHEMA_PATH=/api/schema-service/v1/schema
 SCHEMA_HOST=${SCHEMA_BASE_HOST}${SCHEMA_PATH}
 
-INDEXER_QUEUE_HOST=http://indexer-queue
\ No newline at end of file
+INDEXER_QUEUE_BASE_HOST=http://indexer-queue
+INDEXER_QUEUE_PATH=/api/indexer-queue/v1/_dps/task-handlers/enqueue
+INDEXER_QUEUE_HOST=${INDEXER_QUEUE_BASE_HOST}${INDEXER_QUEUE_PATH}
-- 
GitLab