From 5cb332818f0343f44a9e55f04effde13c159b56a Mon Sep 17 00:00:00 2001
From: Daniel Scholl <dascholl@microsoft.com>
Date: Mon, 31 Aug 2020 11:08:28 -0500
Subject: [PATCH] Updated Indexer

---
 devops/azure/README.md                       |  17 ++
 devops/azure/chart/Chart.yaml                |  20 +++
 devops/azure/chart/templates/deployment.yaml | 131 +++++++++++++++
 devops/azure/chart/templates/service.yaml    |  27 ++++
 devops/azure/chart/values.yaml               |  21 +++
 devops/azure/release.yaml                    | 162 +++++++++++++++++++
 6 files changed, 378 insertions(+)
 create mode 100644 devops/azure/README.md
 create mode 100644 devops/azure/chart/Chart.yaml
 create mode 100644 devops/azure/chart/templates/deployment.yaml
 create mode 100644 devops/azure/chart/templates/service.yaml
 create mode 100644 devops/azure/chart/values.yaml
 create mode 100644 devops/azure/release.yaml

diff --git a/devops/azure/README.md b/devops/azure/README.md
new file mode 100644
index 000000000..e5ec19405
--- /dev/null
+++ b/devops/azure/README.md
@@ -0,0 +1,17 @@
+# Pipeline Support Commands
+
+```bash
+AZURE_SERVICE="indexer-service"
+REPO_BRANCH="master"
+TAG="latest"
+PARTIAL=${REPO_BRANCH/\//-}
+BRANCH=${PARTIAL/./-}
+
+echo "--set image.branch=$BRANCH --set image.tag=$TAG"
+
+# Install the Service
+helm upgrade -i osdu-gitlab-$AZURE_SERVICE chart --set image.branch=$BRANCH --set image.tag=$TAG
+pod=$(kubectl get pod |grep $AZURE_SERVICE | tail -1 | awk '{print $1}')
+status=$(kubectl wait --for=condition=Ready pod/$pod --timeout=60s)
+if [[ "$status" != *"met"* ]]; then echo "POD didn't start correctly" ; exit 1 ; fi
+```
diff --git a/devops/azure/chart/Chart.yaml b/devops/azure/chart/Chart.yaml
new file mode 100644
index 000000000..a700d0478
--- /dev/null
+++ b/devops/azure/chart/Chart.yaml
@@ -0,0 +1,20 @@
+#  Copyright © Microsoft Corporation
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+apiVersion: v2
+name: indexer-service
+appVersion: "latest"
+description: Helm Chart for installing indexer service.
+version: 0.1.0
+type: application
diff --git a/devops/azure/chart/templates/deployment.yaml b/devops/azure/chart/templates/deployment.yaml
new file mode 100644
index 000000000..978dbfaef
--- /dev/null
+++ b/devops/azure/chart/templates/deployment.yaml
@@ -0,0 +1,131 @@
+#  Copyright © Microsoft Corporation
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: {{ .Release.Name }}
+  namespace: osdu
+spec:
+  replicas: {{ .Values.global.replicaCount }}
+  selector:
+    matchLabels:
+      app: {{ .Chart.Name }}
+  template:
+    metadata:
+      labels:
+        app: {{ .Chart.Name }}
+        aadpodidbinding: osdu-identity
+    spec:
+      volumes:
+      - name: azure-keyvault
+        csi:
+          driver: secrets-store.csi.k8s.io
+          readOnly: true
+          volumeAttributes:
+            secretProviderClass: azure-keyvault
+      containers:
+      - name: {{ .Chart.Name }}
+        image: {{ .Values.image.repository }}/{{ .Chart.Name }}-{{ .Values.image.branch }}:{{ .Values.image.tag | default .Chart.AppVersion }}
+        imagePullPolicy: Always
+        ports:
+        - containerPort: 80
+        readinessProbe:
+          httpGet:
+            path: /api/indexer/v2/swagger-ui.html
+            port: 80
+        volumeMounts:
+        - name: azure-keyvault
+          mountPath: "/mnt/azure-keyvault"
+          readOnly: true
+        env:
+        - name: spring_application_name
+          value: indexer
+        - name: server.servlet.contextPath
+          value: /api/indexer/v2/
+        - name: server_port
+          value: "80"
+        - name: ACCEPT_HTTP  # TEMPORARY UNTIL HTTPS
+          value: "true"
+        - name: KEYVAULT_URI
+          valueFrom:
+            configMapKeyRef:
+              name: osdu-svc-properties
+              key: ENV_KEYVAULT
+        - name: AZURE_TENANT_ID
+          valueFrom:
+            configMapKeyRef:
+              name: osdu-svc-properties
+              key: ENV_TENANT_ID
+        - name: AZURE_CLIENT_ID
+          valueFrom:
+            secretKeyRef:
+              name: clientid
+              key: clientid
+        - name: AZURE_CLIENT_SECRET
+          valueFrom:
+            secretKeyRef:
+              name: clientpassword
+              key: clientpassword
+        - name: aad_client_id
+          valueFrom:
+            secretKeyRef:
+              name: appid
+              key: appid
+        - name: appinsights_key
+          valueFrom:
+            secretKeyRef:
+              name: appinsights
+              key: appinsights
+        - name: cosmosdb_account
+          valueFrom:
+            configMapKeyRef:
+              name: osdu-svc-properties
+              key: ENV_COSMOSDB_HOST
+        - name: cosmosdb_key
+          valueFrom:
+            secretKeyRef:
+              name: cosmos
+              key: cosmos
+        - name: cosmosdb_database
+          value: osdu-db
+        - name: servicebus_namespace_name
+          valueFrom:
+            configMapKeyRef:
+              name: osdu-svc-properties
+              key: ENV_SERVICEBUS_NAMESPACE
+        - name: servicebus_connection_string
+          valueFrom:
+            secretKeyRef:
+              name: servicebus
+              key: servicebus
+        - name: servicebus_topic_name
+          value: recordstopic
+        - name: storage_account
+          valueFrom:
+            configMapKeyRef:
+              name: osdu-svc-properties
+              key: ENV_STORAGE_ACCOUNT
+        - name: entitlements_service_endpoint
+          value: http://entitlements-azure/entitlements/v1
+        - name: entitlements_service_api_key
+          value: "OBSOLETE"
+        - name: storage_service_url
+          value: http://storage/api/storage/v2
+        - name: STORAGE_SCHEMA_HOST
+          value: http://storage/api/storage/v2/schemas
+        - name: STORAGE_QUERY_RECORD_FOR_CONVERSION_HOST
+          value: http://storage/api/storage/v2/query/records:batch
+        - name: STORAGE_QUERY_RECORD_HOST
+          value: http://storage/api/storage/v2/records
diff --git a/devops/azure/chart/templates/service.yaml b/devops/azure/chart/templates/service.yaml
new file mode 100644
index 000000000..eb5d124b6
--- /dev/null
+++ b/devops/azure/chart/templates/service.yaml
@@ -0,0 +1,27 @@
+#  Copyright © Microsoft Corporation
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ .Chart.Name }}
+  namespace: osdu
+spec:
+  type: ClusterIP
+  ports:
+  - protocol: TCP
+    port: 80
+    targetPort: 80
+  selector:
+    app: {{ .Chart.Name }}
diff --git a/devops/azure/chart/values.yaml b/devops/azure/chart/values.yaml
new file mode 100644
index 000000000..d427d2a7b
--- /dev/null
+++ b/devops/azure/chart/values.yaml
@@ -0,0 +1,21 @@
+#  Copyright © Microsoft Corporation
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+global:
+  replicaCount: 1
+
+image:
+  repository: community.opengroup.org:5555/osdu/platform/system/indexer-service
+  branch: master
+  tag: latest
diff --git a/devops/azure/release.yaml b/devops/azure/release.yaml
new file mode 100644
index 000000000..540d39689
--- /dev/null
+++ b/devops/azure/release.yaml
@@ -0,0 +1,162 @@
+---
+# Source: indexer-service/templates/service.yaml
+#  Copyright © Microsoft Corporation
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: indexer-service
+  namespace: osdu
+spec:
+  type: ClusterIP
+  ports:
+  - protocol: TCP
+    port: 80
+    targetPort: 80
+  selector:
+    app: indexer-service
+---
+# Source: indexer-service/templates/deployment.yaml
+#  Copyright © Microsoft Corporation
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: osdu-gitlab-indexer-service
+  namespace: osdu
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: indexer-service
+  template:
+    metadata:
+      labels:
+        app: indexer-service
+        aadpodidbinding: osdu-identity
+    spec:
+      volumes:
+      - name: azure-keyvault
+        csi:
+          driver: secrets-store.csi.k8s.io
+          readOnly: true
+          volumeAttributes:
+            secretProviderClass: azure-keyvault
+      containers:
+      - name: indexer-service
+        image: community.opengroup.org:5555/osdu/platform/system/indexer-service/indexer-service-master:latest
+        imagePullPolicy: Always
+        ports:
+        - containerPort: 80
+        readinessProbe:
+          httpGet:
+            path: /api/indexer/v2/swagger-ui.html
+            port: 80
+        volumeMounts:
+        - name: azure-keyvault
+          mountPath: "/mnt/azure-keyvault"
+          readOnly: true
+        env:
+        - name: spring_application_name
+          value: indexer
+        - name: server.servlet.contextPath
+          value: /api/indexer/v2/
+        - name: server_port
+          value: "80"
+        - name: ACCEPT_HTTP  # TEMPORARY UNTIL HTTPS
+          value: "true"
+        - name: KEYVAULT_URI
+          valueFrom:
+            configMapKeyRef:
+              name: osdu-svc-properties
+              key: ENV_KEYVAULT
+        - name: AZURE_TENANT_ID
+          valueFrom:
+            configMapKeyRef:
+              name: osdu-svc-properties
+              key: ENV_TENANT_ID
+        - name: AZURE_CLIENT_ID
+          valueFrom:
+            secretKeyRef:
+              name: clientid
+              key: clientid
+        - name: AZURE_CLIENT_SECRET
+          valueFrom:
+            secretKeyRef:
+              name: clientpassword
+              key: clientpassword
+        - name: aad_client_id
+          valueFrom:
+            secretKeyRef:
+              name: appid
+              key: appid
+        - name: appinsights_key
+          valueFrom:
+            secretKeyRef:
+              name: appinsights
+              key: appinsights
+        - name: cosmosdb_account
+          valueFrom:
+            configMapKeyRef:
+              name: osdu-svc-properties
+              key: ENV_COSMOSDB_HOST
+        - name: cosmosdb_key
+          valueFrom:
+            secretKeyRef:
+              name: cosmos
+              key: cosmos
+        - name: cosmosdb_database
+          value: osdu-db
+        - name: servicebus_namespace_name
+          valueFrom:
+            configMapKeyRef:
+              name: osdu-svc-properties
+              key: ENV_SERVICEBUS_NAMESPACE
+        - name: servicebus_connection_string
+          valueFrom:
+            secretKeyRef:
+              name: servicebus
+              key: servicebus
+        - name: servicebus_topic_name
+          value: recordstopic
+        - name: storage_account
+          valueFrom:
+            configMapKeyRef:
+              name: osdu-svc-properties
+              key: ENV_STORAGE_ACCOUNT
+        - name: entitlements_service_endpoint
+          value: http://entitlements-azure/entitlements/v1
+        - name: entitlements_service_api_key
+          value: "OBSOLETE"
+        - name: storage_service_url
+          value: http://storage/api/storage/v2
+        - name: STORAGE_SCHEMA_HOST
+          value: http://storage/api/storage/v2/schemas
+        - name: STORAGE_QUERY_RECORD_FOR_CONVERSION_HOST
+          value: http://storage/api/storage/v2/query/records:batch
+        - name: STORAGE_QUERY_RECORD_HOST
+          value: http://storage/api/storage/v2/records
-- 
GitLab