diff --git a/devops/azure/README.md b/devops/azure/README.md new file mode 100644 index 0000000000000000000000000000000000000000..e053a04930fb01908010f2bd7793a06d94846a3d --- /dev/null +++ b/devops/azure/README.md @@ -0,0 +1,21 @@ +# Pipeline Support Commands + +```bash +AZURE_SERVICE="legal" +REPO_BRANCH="master" +TAG="latest" +PARTIAL=${REPO_BRANCH/\//-} +BRANCH=${PARTIAL/./-} + +echo "--set image.branch=$BRANCH --set image.tag=$TAG" + +# Remove the Service +kubectl delete deployment osdu-gitlab-$AZURE_SERVICE +kubectl delete service osdu-gitlab-$AZURE_SERVICE + +# 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 0000000000000000000000000000000000000000..f4bfe007924a4ecb30a3094bce16319d0097ba09 --- /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: legal +appVersion: "latest" +description: Helm Chart for installing legal 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 0000000000000000000000000000000000000000..e91ce1e02c67acc72b1183660b5bd52c9bc3aae5 --- /dev/null +++ b/devops/azure/chart/templates/deployment.yaml @@ -0,0 +1,120 @@ +# 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/legal/v1/swagger-ui.html + port: 80 + volumeMounts: + - name: azure-keyvault + mountPath: "/mnt/azure-keyvault" + readOnly: true + env: + - name: spring_application_name + value: legal + - name: server.servlet.contextPath + value: /api/legal/v1/ + - 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_CLIENT_ID + valueFrom: + secretKeyRef: + name: clientid + key: clientid + - name: AZURE_CLIENT_SECRET + valueFrom: + secretKeyRef: + name: clientpassword + key: clientpassword + - name: AZURE_TENANT_ID + valueFrom: + configMapKeyRef: + name: osdu-svc-properties + key: ENV_TENANT_ID + - name: aad_client_id + valueFrom: + secretKeyRef: + name: appid + key: appid + - name: appinsights_key + valueFrom: + secretKeyRef: + name: appinsights + key: appinsights + - name: servicebus_namespace_name + valueFrom: + configMapKeyRef: + name: osdu-svc-properties + key: ENV_SERVICEBUS_NAMESPACE + - name: storage_account + valueFrom: + configMapKeyRef: + name: osdu-svc-properties + key: ENV_STORAGE_ACCOUNT + - name: azure_activedirectory_session_stateless + value: "true" + - name: azure_activedirectory_AppIdUri + value: "api://$(aad_client_id)" + - name: cosmosdb_database + value: osdu-db + - name: LOG_PREFIX + value: legal + - name: azure_storage_container_name + value: legal-service-azure-configuration + - name: azure_storage_enable_https + value: "true" + - name: legal_service_region + value: us + - name: servicebus_topic_name + value: legaltags + - name: entitlements_service_endpoint + value: http://entitlements-azure/entitlements/v1 + - name: entitlements_service_api_key + value: "OBSOLETE" diff --git a/devops/azure/chart/templates/service.yaml b/devops/azure/chart/templates/service.yaml new file mode 100644 index 0000000000000000000000000000000000000000..eb5d124b64e3fdc13f20c0c0480aa1fd13a7a173 --- /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 0000000000000000000000000000000000000000..3567d0f15392658badcba18a9ee24fd7024baf11 --- /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/security-and-compliance/legal + branch: master + tag: latest diff --git a/devops/azure/release.yaml b/devops/azure/release.yaml new file mode 100644 index 0000000000000000000000000000000000000000..072fc703aa3a5aeafa81a32d8b77f22e8240220b --- /dev/null +++ b/devops/azure/release.yaml @@ -0,0 +1,151 @@ +--- +# Source: legal/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: osdu-gitlab-legal + namespace: osdu +spec: + type: ClusterIP + ports: + - protocol: TCP + port: 80 + targetPort: 80 + selector: + app: osdu-gitlab-legal +--- +# Source: legal/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-legal + namespace: osdu +spec: + replicas: 1 + selector: + matchLabels: + app: osdu-gitlab-legal + template: + metadata: + labels: + app: osdu-gitlab-legal + aadpodidbinding: osdu-identity + spec: + volumes: + - name: azure-keyvault + csi: + driver: secrets-store.csi.k8s.io + readOnly: true + volumeAttributes: + secretProviderClass: azure-keyvault + containers: + - name: osdu-gitlab-legal + image: community.opengroup.org:5555/osdu/platform/security-and-compliance/legal/legal-master:latest + imagePullPolicy: Always + ports: + - containerPort: 80 + readinessProbe: + httpGet: + path: /entitlements/v1/swagger-ui.html + port: 80 + volumeMounts: + - name: azure-keyvault + mountPath: "/mnt/azure-keyvault" + readOnly: true + env: + - name: spring_application_name + value: legal + - name: server.servlet.contextPath + value: /api/legal/v1/ + - 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_CLIENT_ID + valueFrom: + secretKeyRef: + name: clientid + key: clientid + - name: AZURE_CLIENT_SECRET + valueFrom: + secretKeyRef: + name: clientpassword + key: clientpassword + - name: AZURE_TENANT_ID + valueFrom: + configMapKeyRef: + name: osdu-svc-properties + key: ENV_TENANT_ID + - name: aad_client_id + valueFrom: + secretKeyRef: + name: appid + key: appid + - name: appinsights_key + valueFrom: + secretKeyRef: + name: appinsights + key: appinsights + - name: servicebus_namespace_name + valueFrom: + configMapKeyRef: + name: osdu-svc-properties + key: ENV_SERVICEBUS_NAMESPACE + - name: storage_account + valueFrom: + configMapKeyRef: + name: osdu-svc-properties + key: ENV_STORAGE_ACCOUNT + - name: azure_activedirectory_session_stateless + value: "true" + - name: azure_activedirectory_AppIdUri + value: "api://$(aad_client_id)" + - name: cosmosdb_database + value: osdu-db + - name: LOG_PREFIX + value: legal + - name: azure_storage_container_name + value: legal-service-azure-configuration + - name: azure_storage_enable_https + value: "true" + - name: legal_service_region + value: us + - name: servicebus_topic_name + value: legaltags + - name: entitlements_service_endpoint + value: http://entitlements-azure/entitlements/v1 + - name: entitlements_service_api_key + value: "OBSOLETE"