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