Skip to content
Snippets Groups Projects
Commit e51176d7 authored by Tobias Petrasch's avatar Tobias Petrasch
Browse files

add production deployment

parent 0e647fd7
No related branches found
No related tags found
No related merge requests found
Pipeline #22046 passed
......@@ -8,8 +8,6 @@ stages:
clone_occmd:
image: alpine/git
stage: clone
only:
- main
script:
- git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.opencode.de/opencode-analyzer/occmd
artifacts:
......@@ -38,34 +36,44 @@ test:
.base:
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [ "" ]
cache: { }
entrypoint: [""]
cache: {}
tags:
- "opencode-high"
before_script:
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
build_sha:
extends: .base
stage: build_kubernetes
script:
- /kaniko/executor --context "${CI_PROJECT_DIR}" --dockerfile "${CI_PROJECT_DIR}/Dockerfile" --destination "${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHORT_SHA}"
dependencies:
- clone_occmd
build_latest:
extends: .base
stage: build_kubernetes
only:
- main
script:
- /kaniko/executor --context "${CI_PROJECT_DIR}" --dockerfile "${CI_PROJECT_DIR}/Dockerfile" --destination "${CI_REGISTRY_IMAGE}:${CI_COMMIT_SHORT_SHA}"
- /kaniko/executor --context "${CI_PROJECT_DIR}" --dockerfile "${CI_PROJECT_DIR}/Dockerfile" --destination "${CI_REGISTRY_IMAGE}:latest"
dependencies:
- clone_occmd
#build_latest:
# extends: .base
# stage: build_kubernetes
# only:
# - main
# script:
# - /kaniko/executor --context "${CI_PROJECT_DIR}" --dockerfile "${CI_PROJECT_DIR}/Dockerfile" --destination "${CI_REGISTRY_IMAGE}:latest"
# dependencies:
# - clone_occmd
deploy_development:
image: bitnami/kubectl
before_script:
- export KUBECONFIG=$KUBECONFIG_FILE
stage: deploy
only:
- dev
script:
- kubectl apply --namespace=fraunhofer -f ./kubernetes/configmap.yaml
- kubectl set image -f ./kubernetes/deployment.yaml b-container=registry.opencode.de/opencode-analyzer/data-provider:${CI_COMMIT_SHORT_SHA} --namespace=fraunhofer --local -o yaml | kubectl apply --namespace=fraunhofer -f -
- kubectl apply --namespace=fraunhofer -f ./kubernetes/service.yaml
deploy:
deploy_production:
image: bitnami/kubectl
before_script:
- export KUBECONFIG=$KUBECONFIG_FILE
......@@ -73,4 +81,6 @@ deploy:
only:
- main
script:
- kubectl set image -f ./kubernetes/deployment.yaml b-dev-container=registry.opencode.de/opencode-analyzer/data-provider:${CI_COMMIT_SHORT_SHA} --namespace=fraunhofer --local -o yaml | kubectl apply --namespace=fraunhofer -f -
- kubectl apply --namespace=fraunhoferprod -f ./kubernetes/configmap.yaml
- kubectl set image -f ./kubernetes/deployment.yaml b-container=registry.opencode.de/opencode-analyzer/data-provider:${CI_COMMIT_SHORT_SHA} --namespace=fraunhoferprod --local -o yaml | kubectl apply --namespace=fraunhoferprod -f -
- kubectl apply --namespace=fraunhoferprod -f ./kubernetes/service.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: data-provider-dev-config-map
namespace: fraunhofer
name: data-provider-config-map
data:
GIT_CLONE_TARGET_DIRECTORY: "/app/git"
OCCMD_PATH: "/app/scripts/occmd.sh"
......
apiVersion: apps/v1
kind: Deployment
metadata:
name: b-dev-deployment
name: b-deployment
annotations:
field.cattle.io/description: Backend of Fraunhofer OpenCoDE Analyzer
labels:
workload.user.cattle.io/workloadselector: apps.deployment-fraunhofer-b-dev-deployment
namespace: fraunhofer
workload.user.cattle.io/workloadselector: apps.deployment-fraunhofer-b-deployment
spec:
selector:
matchLabels:
workload.user.cattle.io/workloadselector: apps.deployment-fraunhofer-b-dev-deployment
workload.user.cattle.io/workloadselector: apps.deployment-fraunhofer-b-deployment
template:
metadata:
labels:
workload.user.cattle.io/workloadselector: apps.deployment-fraunhofer-b-dev-deployment
namespace: fraunhofer
workload.user.cattle.io/workloadselector: apps.deployment-fraunhofer-b-deployment
spec:
securityContext:
runAsNonRoot: true
volumes:
- name: db-secret-volume
secret:
secretName: cockroachdb.client.fraunhoferpoc
- name: db-secret-volume
secret:
secretName: cockroachdb.client.fraunhoferpoc
containers:
- imagePullPolicy: Always
name: b-dev-container
image: registry.opencode.de/opencode-analyzer/data-provider:latest
volumeMounts:
- mountPath: "/cockroach-certs"
name: db-secret-volume
readOnly: true
resources:
limits:
cpu: 8000m
memory: 16G
requests:
cpu: 4000m
memory: 8G
ports:
- name: b-dev-service
containerPort: 5000
env:
- name: ADMIN_PASSWORD
valueFrom:
secretKeyRef:
name: backendapisecrets
key: admin_password
- name: ADMIN_USERNAME
valueFrom:
secretKeyRef:
name: backendapisecrets
key: admin_username
- name: OC_GL_APIKEY
valueFrom:
secretKeyRef:
name: backendapisecrets
key: oc_api_key
- name: API_KEY
valueFrom:
secretKeyRef:
name: backendapisecrets
key: api_key
envFrom:
- configMapRef:
name: crdbconf
- configMapRef:
name: data-provider-dev-config-map
- imagePullPolicy: Always
name: b-container
image: registry.opencode.de/opencode-analyzer/data-provider:latest
volumeMounts:
- mountPath: "/cockroach-certs"
name: db-secret-volume
readOnly: true
resources:
limits:
cpu: 8000m
memory: 16G
requests:
cpu: 4000m
memory: 8G
ports:
- name: b-service
containerPort: 5000
env:
- name: ADMIN_PASSWORD
valueFrom:
secretKeyRef:
name: backendapisecrets
key: admin_password
- name: ADMIN_USERNAME
valueFrom:
secretKeyRef:
name: backendapisecrets
key: admin_username
- name: OC_GL_APIKEY
valueFrom:
secretKeyRef:
name: backendapisecrets
key: oc_api_key
- name: API_KEY
valueFrom:
secretKeyRef:
name: backendapisecrets
key: api_key
envFrom:
- configMapRef:
name: crdbconf
- configMapRef:
name: data-provider-config-map
restartPolicy: Always
replicas: 1
apiVersion: v1
kind: Service
metadata:
name: b-dev-service
name: b-service
namespace: fraunhofer
spec:
selector:
workload.user.cattle.io/workloadselector: apps.deployment-fraunhofer-b-dev-deployment
workload.user.cattle.io/workloadselector: apps.deployment-fraunhofer-b-deployment
ports:
- port: 5000
targetPort: 5000
- port: 5000
targetPort: 5000
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment

Consent

On this website, we use the web analytics service Matomo to analyze and review the use of our website. Through the collected statistics, we can improve our offerings and make them more appealing for you. Here, you can decide whether to allow us to process your data and set corresponding cookies for these purposes, in addition to technically necessary cookies. Further information on data protection—especially regarding "cookies" and "Matomo"—can be found in our privacy policy. You can withdraw your consent at any time.