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