From 32beff77be4212aa3b28746a33d7fef1d26aaa44 Mon Sep 17 00:00:00 2001
From: Aman Verma <amaverma@microsoft.com>
Date: Fri, 11 Sep 2020 06:51:04 -0400
Subject: [PATCH] adding helm charts for schema service

---
 .fossa.yml                                   |   4 +
 .gitlab-ci.yml                               |  14 ++-
 devops/azure/README.md                       |  17 +++
 devops/azure/chart/Chart.yaml                |  20 ++++
 devops/azure/chart/templates/deployment.yaml | 111 +++++++++++++++++++
 devops/azure/chart/templates/service.yaml    |  28 +++++
 devops/azure/chart/values.yaml               |  22 ++++
 7 files changed, 212 insertions(+), 4 deletions(-)
 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

diff --git a/.fossa.yml b/.fossa.yml
index 8c45fafa0..7e3c71b30 100644
--- a/.fossa.yml
+++ b/.fossa.yml
@@ -20,3 +20,7 @@ analyze:
     type: mvn
     target: provider/schema-gcp/pom.xml
     path: .
+  - name: os-schema-azure
+    type: mvn
+    target: provider/schema-azure/pom.xml
+    path: .
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9a1ef953d..961ae0cae 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -12,6 +12,12 @@ variables:
   IBM_INT_TEST_SUBDIR: testing/schema-test-core
   IBM_TEST_CMD: verify
 
+  AZURE_SERVICE: schema
+  AZURE_BUILD_SUBDIR: provider/schema-azure
+  AZURE_TEST_SUBDIR: testing/schema-test-core
+  AZURE_SKIP_TEST: 'true'
+
+
 include:
   - project: "osdu/platform/ci-cd-pipelines"
     file: "standard-setup.yml"
@@ -31,8 +37,8 @@ include:
   - project: "osdu/platform/ci-cd-pipelines"
     file: "cloud-providers/ibm.yml"
 
-  # - project: "osdu/platform/ci-cd-pipelines"
-  #   file: "scanners/gitlab-ultimate.yml"
+  - project: "osdu/platform/ci-cd-pipelines"
+    file: "scanners/gitlab-ultimate.yml"
 
-  # - project: "osdu/platform/ci-cd-pipelines"
-  #   file: "cloud-providers/azure.yml"
+  - project: "osdu/platform/ci-cd-pipelines"
+    file: "cloud-providers/azure.yml"
diff --git a/devops/azure/README.md b/devops/azure/README.md
new file mode 100644
index 000000000..fdaa54683
--- /dev/null
+++ b/devops/azure/README.md
@@ -0,0 +1,17 @@
+# Pipeline Support Commands
+
+```bash
+AZURE_SERVICE="schema"
+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..4a4df5e29
--- /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: v1
+name: schema-service
+appVersion: "latest"
+description: Helm Chart for installing schema 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..96bd29445
--- /dev/null
+++ b/devops/azure/chart/templates/deployment.yaml
@@ -0,0 +1,111 @@
+#  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/schema-service/v1/swagger-ui.html
+            port: 80
+        volumeMounts:
+        - name: azure-keyvault
+          mountPath: "/mnt/azure-keyvault"
+          readOnly: true
+        env:
+        - name: spring_application_name
+          value: schema
+        - name: LOG_PREFIX
+          value: "schema"
+        - name: server.servlet.contextPath
+          value: /api/schema-service/v1/
+        - name: server.port
+          value: "80"
+        - 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: 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"
\ No newline at end of file
diff --git a/devops/azure/chart/templates/service.yaml b/devops/azure/chart/templates/service.yaml
new file mode 100644
index 000000000..2202bfafc
--- /dev/null
+++ b/devops/azure/chart/templates/service.yaml
@@ -0,0 +1,28 @@
+#  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..30b9a5f7c
--- /dev/null
+++ b/devops/azure/chart/values.yaml
@@ -0,0 +1,22 @@
+#  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/schema-service
+  branch: master
+  tag: latest
+    
-- 
GitLab