Helm chart
This commit is contained in:
+2
-7
@@ -3,12 +3,7 @@
|
||||
set -e
|
||||
|
||||
DOCKER_IMAGE_TAG=$DOCKER_IMAGE_TAG-$SPECKLE_SERVER_PACKAGE
|
||||
|
||||
IMAGE_VERSION_TAG=$CIRCLE_SHA1
|
||||
|
||||
if [[ "$CIRCLE_TAG" =~ ^v.* ]]; then
|
||||
IMAGE_VERSION_TAG=$CIRCLE_TAG
|
||||
fi
|
||||
IMAGE_VERSION_TAG=$(./.circleci/get_version.sh)
|
||||
|
||||
docker build --build-arg SPECKLE_SERVER_VERSION=$IMAGE_VERSION_TAG -t $DOCKER_IMAGE_TAG:latest . -f packages/$SPECKLE_SERVER_PACKAGE/Dockerfile
|
||||
docker tag $DOCKER_IMAGE_TAG:latest $DOCKER_IMAGE_TAG:$IMAGE_VERSION_TAG
|
||||
@@ -17,7 +12,7 @@ echo "$DOCKER_REG_PASS" | docker login -u "$DOCKER_REG_USER" --password-stdin $D
|
||||
docker push $DOCKER_IMAGE_TAG:latest
|
||||
docker push $DOCKER_IMAGE_TAG:$IMAGE_VERSION_TAG
|
||||
|
||||
if [[ "$CIRCLE_TAG" =~ ^v.* ]]; then
|
||||
if [[ "$IMAGE_VERSION_TAG" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
||||
docker tag $DOCKER_IMAGE_TAG:latest $DOCKER_IMAGE_TAG:2
|
||||
docker push $DOCKER_IMAGE_TAG:2
|
||||
fi
|
||||
|
||||
+27
-17
@@ -33,39 +33,39 @@ workflows:
|
||||
context: main-builds
|
||||
filters:
|
||||
branches:
|
||||
only: ci/fileimport
|
||||
|
||||
only: cristi/nonexistent
|
||||
|
||||
jobs:
|
||||
test_server:
|
||||
docker:
|
||||
- image: 'cimg/node:14.18'
|
||||
- image: 'circleci/redis:6'
|
||||
- image: 'cimg/postgres:12.8'
|
||||
- image: "cimg/node:14.18"
|
||||
- image: "circleci/redis:6"
|
||||
- image: "cimg/postgres:12.8"
|
||||
environment:
|
||||
POSTGRES_DB: speckle2_test
|
||||
POSTGRES_PASSWORD: speckle
|
||||
POSTGRES_USER: speckle
|
||||
environment:
|
||||
NODE_ENV: test
|
||||
DATABASE_URL: 'postgres://speckle:speckle@localhost:5432/speckle2_test'
|
||||
DATABASE_URL: "postgres://speckle:speckle@localhost:5432/speckle2_test"
|
||||
PGDATABASE: speckle2_test
|
||||
PGUSER: speckle
|
||||
SESSION_SECRET: 'keyboard cat'
|
||||
SESSION_SECRET: "keyboard cat"
|
||||
STRATEGY_LOCAL: true
|
||||
CANONICAL_URL: 'http://localhost:3000'
|
||||
CANONICAL_URL: "http://localhost:3000"
|
||||
# Note: some of these commands need to be run in the server package folder.
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
command: 'npm install'
|
||||
working_directory: 'packages/server'
|
||||
- run: 'dockerize -wait tcp://localhost:5432 -timeout 1m'
|
||||
command: "npm install"
|
||||
working_directory: "packages/server"
|
||||
- run: "dockerize -wait tcp://localhost:5432 -timeout 1m"
|
||||
- run:
|
||||
command: 'npm run test:report'
|
||||
working_directory: 'packages/server'
|
||||
command: "npm run test:report"
|
||||
working_directory: "packages/server"
|
||||
- run:
|
||||
command: 'bash <(curl -s https://codecov.io/bash)'
|
||||
working_directory: 'packages/server'
|
||||
command: "bash <(curl -s https://codecov.io/bash)"
|
||||
working_directory: "packages/server"
|
||||
|
||||
- store_test_results:
|
||||
path: packages/server/reports
|
||||
@@ -100,11 +100,20 @@ jobs:
|
||||
- run:
|
||||
name: Build FileImport Service
|
||||
command: env SPECKLE_SERVER_PACKAGE=fileimport-service ./.circleci/build.sh
|
||||
|
||||
- add_ssh_keys:
|
||||
fingerprints:
|
||||
- "18:74:c4:b9:dc:66:b2:66:1d:81:56:0d:0a:87:9b:b1"
|
||||
- run:
|
||||
name: Publish Helm Chart
|
||||
command: ./.circleci/publish_helm_chart.sh
|
||||
|
||||
- run:
|
||||
name: Deploy
|
||||
command: |
|
||||
./.circleci/deploy.sh
|
||||
if [[ "$CIRCLE_TAG" =~ ^v.* ]]; then
|
||||
RELEASE_VERSION=$(./.circleci/get_version.sh)
|
||||
if [[ "$RELEASE_VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
||||
env K8S_CLUSTER=TOR1 K8S_NAMESPACE=${K8S_NAMESPACE_TOR1_1_RELEASE} ./.circleci/deploy_in_new_setup.sh
|
||||
env K8S_CLUSTER=LON1 K8S_NAMESPACE=${K8S_NAMESPACE_LON1_1_RELEASE} ./.circleci/deploy_in_new_setup.sh
|
||||
env K8S_CLUSTER=LON1 K8S_NAMESPACE=${K8S_NAMESPACE_LON1_2_RELEASE} ./.circleci/deploy_in_new_setup.sh
|
||||
@@ -120,7 +129,8 @@ jobs:
|
||||
name: Test deployment
|
||||
command: |
|
||||
./utils/test-deployment/install_prerequisites.sh
|
||||
if [[ "$CIRCLE_TAG" =~ ^v.* ]]; then
|
||||
RELEASE_VERSION=$(./.circleci/get_version.sh)
|
||||
if [[ "$RELEASE_VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
||||
./utils/test-deployment/run_tests.py https://speckle.xyz
|
||||
./utils/test-deployment/run_tests.py ${SPECKLE_URL_TOR1_1_RELEASE}
|
||||
else
|
||||
|
||||
+2
-5
@@ -4,12 +4,9 @@ set -e
|
||||
|
||||
|
||||
TARGET_SPECKLE_DEPLOYMENT=$SPECKLE_K8S_DEPLOYMENT
|
||||
IMAGE_VERSION_TAG=$CIRCLE_SHA1
|
||||
|
||||
if [[ "$CIRCLE_TAG" =~ ^v.* ]]; then
|
||||
TARGET_SPECKLE_DEPLOYMENT=$SPECKLE_K8S_DEPLOYMENT_PROD
|
||||
IMAGE_VERSION_TAG=$CIRCLE_TAG
|
||||
fi
|
||||
IMAGE_VERSION_TAG=$(./.circleci/get_version.sh)
|
||||
|
||||
|
||||
echo "$K8S_CLUSTER_CERTIFICATE" | base64 --decode > k8s_cert.crt
|
||||
|
||||
|
||||
@@ -13,11 +13,8 @@ K8S_SERVER=${!K8S_SERVER_VARIABLE}
|
||||
|
||||
# K8S_NAMESPACE
|
||||
|
||||
IMAGE_VERSION_TAG=$CIRCLE_SHA1
|
||||
IMAGE_VERSION_TAG=$(./.circleci/get_version.sh)
|
||||
|
||||
if [[ "$CIRCLE_TAG" =~ ^v.* ]]; then
|
||||
IMAGE_VERSION_TAG=$CIRCLE_TAG
|
||||
fi
|
||||
|
||||
echo "$K8S_CLUSTER_CERTIFICATE" | base64 --decode > k8s_cert.crt
|
||||
|
||||
|
||||
Executable
+14
@@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
LAST_RELEASE=$(git describe --always --tags `git rev-list --tags` | grep -E '^[0-9]+\.[0-9]+\.[0-9]+$' | head -n 1)
|
||||
NEXT_RELEASE=$(echo ${LAST_RELEASE} | python -c "parts = input().split('.'); parts[-1] = str(int(parts[-1])+1); print('.'.join(parts))")
|
||||
|
||||
if [[ "$CIRCLE_TAG" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
||||
echo $CIRCLE_TAG
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "$NEXT_RELEASE-alpha.$CIRCLE_BUILD_NUM"
|
||||
exit 0
|
||||
Executable
+25
@@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
RELEASE_VERSION=$(./.circleci/get_version.sh)
|
||||
|
||||
echo "Releasing Helm Chart version $RELEASE_VERSION"
|
||||
|
||||
git config --global user.email "devops+circleci@speckle.systems"
|
||||
git config --global user.name "CI"
|
||||
|
||||
git clone git@github.com:specklesystems/helm.git ~/helm
|
||||
rm -rf ~/helm/charts/speckle-server
|
||||
cp -r utils/helm/speckle-server ~/helm/charts/speckle-server
|
||||
|
||||
echo 'version: '$RELEASE_VERSION >> ~/helm/charts/speckle-server/Chart.yaml
|
||||
echo 'appVersion: "'$RELEASE_VERSION'"' >> ~/helm/charts/speckle-server/Chart.yaml
|
||||
|
||||
sed -i 's/docker_image_tag: [^\s]*/docker_image_tag: '$RELEASE_VERSION'/g' ~/helm/charts/speckle-server/values.yaml
|
||||
|
||||
cd ~/helm
|
||||
|
||||
git add .
|
||||
git commit -m "CircleCI commit"
|
||||
git push
|
||||
@@ -0,0 +1,23 @@
|
||||
# Patterns to ignore when building packages.
|
||||
# This supports shell glob matching, relative path matching, and
|
||||
# negation (prefixed with !). Only one pattern per line.
|
||||
.DS_Store
|
||||
# Common VCS dirs
|
||||
.git/
|
||||
.gitignore
|
||||
.bzr/
|
||||
.bzrignore
|
||||
.hg/
|
||||
.hgignore
|
||||
.svn/
|
||||
# Common backup files
|
||||
*.swp
|
||||
*.bak
|
||||
*.tmp
|
||||
*.orig
|
||||
*~
|
||||
# Various IDEs
|
||||
.project
|
||||
.idea/
|
||||
*.tmproj
|
||||
.vscode/
|
||||
@@ -0,0 +1,19 @@
|
||||
apiVersion: v2
|
||||
name: speckle-server
|
||||
description: Speckle Server
|
||||
|
||||
type: application
|
||||
# This is the chart version. This version number should be incremented each time you make changes
|
||||
# to the chart and its templates, including the app version.
|
||||
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
||||
|
||||
# Set by the build process to the corect value
|
||||
# version: 0.1.0
|
||||
|
||||
# This is the version number of the application being deployed. This version number should be
|
||||
# incremented each time you make changes to the application. Versions are not expected to
|
||||
# follow Semantic Versioning. They should reflect the version the application is using.
|
||||
# It is recommended to use it with quotes.
|
||||
|
||||
# Set by the build process to the corect value
|
||||
# appVersion: "2.3.3"
|
||||
@@ -0,0 +1,12 @@
|
||||
{{ if .Values.db.useCertificate }}
|
||||
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: postgres-certificate
|
||||
namespace: {{ .Values.namespace }}
|
||||
data:
|
||||
ca-certificate.crt: |
|
||||
{{ .Values.db.certificate | indent 4 }}
|
||||
|
||||
{{ end }}
|
||||
@@ -0,0 +1,185 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: speckle-server
|
||||
namespace: {{ .Values.namespace }}
|
||||
labels:
|
||||
app: speckle-server
|
||||
project: speckle-server
|
||||
spec:
|
||||
replicas: {{ .Values.server.replicas }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app: speckle-server
|
||||
project: speckle-server
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: speckle-server
|
||||
project: speckle-server
|
||||
spec:
|
||||
priorityClassName: high-priority
|
||||
|
||||
{{- if .Values.db.useCertificate }}
|
||||
volumes:
|
||||
- name: postgres-certificate
|
||||
configMap:
|
||||
name: postgres-certificate
|
||||
{{- end }}
|
||||
|
||||
containers:
|
||||
- name: main
|
||||
image: speckle/speckle-server:{{ .Values.docker_image_tag }}
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: {{ .Values.server.requests.cpu }}
|
||||
memory: {{ .Values.server.requests.memory }}
|
||||
limits:
|
||||
cpu: {{ .Values.server.limits.cpu }}
|
||||
memory: {{ .Values.server.limits.memory }}
|
||||
|
||||
{{- if .Values.db.useCertificate }}
|
||||
volumeMounts:
|
||||
- name: postgres-certificate
|
||||
mountPath: /postgres-certificate
|
||||
{{- end }}
|
||||
|
||||
env:
|
||||
- name: CANONICAL_URL
|
||||
value: https://{{ .Values.domain }}
|
||||
|
||||
- name: PORT
|
||||
value: "3000"
|
||||
- name: DEBUG
|
||||
value: "speckle:*"
|
||||
|
||||
- name: SESSION_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: "{{ .Values.secretName }}"
|
||||
key: session_secret
|
||||
|
||||
# *** Redis ***
|
||||
- name: REDIS_URL
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ .Values.secretName }}
|
||||
key: redis_url
|
||||
|
||||
# *** PostgreSQL Database ***
|
||||
- name: POSTGRES_URL
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ .Values.secretName }}
|
||||
key: postgres_url
|
||||
|
||||
- name: PGSSLMODE
|
||||
value: "{{ .Values.db.PGSSLMODE }}"
|
||||
|
||||
{{- if .Values.db.useCertificate }}
|
||||
- name: NODE_EXTRA_CA_CERTS
|
||||
value: "/postgres-certificate/ca-certificate.crt"
|
||||
{{- end }}
|
||||
|
||||
# *** S3 Object Storage ***
|
||||
{{- if .Values.s3.endpoint }}
|
||||
- name: S3_ENDPOINT
|
||||
value: {{ .Values.s3.endpoint }}
|
||||
- name: S3_ACCESS_KEY
|
||||
value: {{ .Values.s3.access_key }}
|
||||
- name: S3_BUCKET
|
||||
value: {{ .Values.s3.bucket }}
|
||||
- name: S3_SECRET_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ .Values.secretName }}
|
||||
key: s3_secret_key
|
||||
{{- end }}
|
||||
|
||||
# *** Authentication ***
|
||||
|
||||
# Local Auth
|
||||
{{- if .Values.server.auth.local.enabled }}
|
||||
- name: STRATEGY_LOCAL
|
||||
value: "true"
|
||||
{{- else }}
|
||||
- name: STRATEGY_LOCAL
|
||||
value: "false"
|
||||
{{- end }}
|
||||
|
||||
# Google Auth
|
||||
{{- if .Values.server.auth.google.enabled }}
|
||||
- name: STRATEGY_GOOGLE
|
||||
value: "true"
|
||||
- name: GOOGLE_CLIENT_ID
|
||||
value: {{ .Values.server.auth.google.client_id }}
|
||||
- name: GOOGLE_CLIENT_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ .Values.secretName }}
|
||||
key: google_client_secret
|
||||
{{- end }}
|
||||
|
||||
# Github Auth
|
||||
{{- if .Values.server.auth.github.enabled }}
|
||||
- name: STRATEGY_GITHUB
|
||||
value: "true"
|
||||
- name: GITHUB_CLIENT_ID
|
||||
value: {{ .Values.server.auth.github.client_id }}
|
||||
- name: GITHUB_CLIENT_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ .Values.secretName }}
|
||||
key: github_client_secret
|
||||
{{- end }}
|
||||
|
||||
# AzureAD Auth
|
||||
{{- if .Values.server.auth.azure_ad.enabled }}
|
||||
- name: STRATEGY_AZURE_AD
|
||||
value: "true"
|
||||
- name: AZURE_AD_ORG_NAME
|
||||
value: {{ .Values.server.auth.azure_ad.org_name }}
|
||||
- name: AZURE_AD_IDENTITY_METADATA
|
||||
value: {{ .Values.server.auth.azure_ad.identity_metadata }}
|
||||
- name: AZURE_AD_ISSUER
|
||||
value: {{ .Values.server.auth.azure_ad.issuer }}
|
||||
- name: AZURE_AD_CLIENT_ID
|
||||
value: {{ .Values.server.auth.azure_ad.client_id }}
|
||||
- name: AZURE_AD_CLIENT_SECRET
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ .Values.secretName }}
|
||||
key: azure_ad_client_secret
|
||||
{{- end }}
|
||||
|
||||
|
||||
# *** Email ***
|
||||
|
||||
{{- if .Values.server.email.enabled }}
|
||||
- name: EMAIL
|
||||
value: "true"
|
||||
- name: EMAIL_HOST
|
||||
value: "{{ .Values.server.email.host }}"
|
||||
- name: EMAIL_PORT
|
||||
value: "{{ .Values.server.email.port }}"
|
||||
- name: EMAIL_USERNAME
|
||||
value: "{{ .Values.server.email.username }}"
|
||||
- name: EMAIL_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ .Values.secretName }}
|
||||
key: email_password
|
||||
{{- end }}
|
||||
|
||||
# *** Tracking / Tracing ***
|
||||
- name: SENTRY_DSN
|
||||
value: {{ .Values.server.sentry_dns }}
|
||||
{{- if .Values.server.disable_tracing }}
|
||||
- name: DISABLE_TRACING
|
||||
value: "true"
|
||||
{{- end }}
|
||||
{{- if .Values.server.disable_tracking }}
|
||||
- name: DISABLE_TRACKING
|
||||
value: "true"
|
||||
{{- end }}
|
||||
@@ -0,0 +1,78 @@
|
||||
{{- if .Values.s3.endpoint }}
|
||||
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: speckle-fileimport-service
|
||||
namespace: {{ .Values.namespace }}
|
||||
labels:
|
||||
app: speckle-fileimport-service
|
||||
project: speckle-server
|
||||
spec:
|
||||
replicas: {{ .Values.fileimport_service.replicas }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app: speckle-fileimport-service
|
||||
project: speckle-server
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: speckle-fileimport-service
|
||||
project: speckle-server
|
||||
spec:
|
||||
priorityClassName: low-priority
|
||||
|
||||
{{- if .Values.db.useCertificate }}
|
||||
volumes:
|
||||
- name: postgres-certificate
|
||||
configMap:
|
||||
name: postgres-certificate
|
||||
{{- end }}
|
||||
|
||||
containers:
|
||||
- name: main
|
||||
image: speckle/speckle-fileimport-service:{{ .Values.docker_image_tag }}
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: {{ .Values.fileimport_service.requests.cpu }}
|
||||
memory: {{ .Values.fileimport_service.requests.memory }}
|
||||
limits:
|
||||
cpu: {{ .Values.fileimport_service.limits.cpu }}
|
||||
memory: {{ .Values.fileimport_service.limits.memory }}
|
||||
|
||||
{{- if .Values.db.useCertificate }}
|
||||
volumeMounts:
|
||||
- name: postgres-certificate
|
||||
mountPath: /postgres-certificate
|
||||
{{- end }}
|
||||
|
||||
env:
|
||||
- name: PG_CONNECTION_STRING
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ .Values.secretName }}
|
||||
key: postgres_url
|
||||
|
||||
- name: DEBUG
|
||||
value: "fileimport-service:*"
|
||||
|
||||
{{- if .Values.db.useCertificate }}
|
||||
- name: NODE_EXTRA_CA_CERTS
|
||||
value: "/postgres-certificate/ca-certificate.crt"
|
||||
{{- end }}
|
||||
|
||||
|
||||
- name: S3_ENDPOINT
|
||||
value: {{ .Values.s3.endpoint }}
|
||||
- name: S3_ACCESS_KEY
|
||||
value: {{ .Values.s3.access_key }}
|
||||
- name: S3_BUCKET
|
||||
value: {{ .Values.s3.bucket }}
|
||||
- name: S3_SECRET_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ .Values.secretName }}
|
||||
key: s3_secret_key
|
||||
|
||||
{{- end }}
|
||||
@@ -0,0 +1,32 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: speckle-frontend
|
||||
namespace: {{ .Values.namespace }}
|
||||
labels:
|
||||
app: speckle-frontend
|
||||
project: speckle-server
|
||||
spec:
|
||||
replicas: {{ .Values.frontend.replicas }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app: speckle-frontend
|
||||
project: speckle-server
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: speckle-frontend
|
||||
project: speckle-server
|
||||
spec:
|
||||
priorityClassName: high-priority
|
||||
|
||||
containers:
|
||||
- name: main
|
||||
image: speckle/speckle-frontend:{{ .Values.docker_image_tag }}
|
||||
resources:
|
||||
requests:
|
||||
cpu: {{ .Values.frontend.requests.cpu }}
|
||||
memory: {{ .Values.frontend.requests.memory }}
|
||||
limits:
|
||||
cpu: {{ .Values.frontend.limits.cpu }}
|
||||
memory: {{ .Values.frontend.limits.memory }}
|
||||
@@ -0,0 +1,62 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: speckle-preview-service
|
||||
namespace: {{ .Values.namespace }}
|
||||
labels:
|
||||
app: speckle-preview-service
|
||||
project: speckle-server
|
||||
spec:
|
||||
replicas: {{ .Values.preview_service.replicas }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app: speckle-preview-service
|
||||
project: speckle-server
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: speckle-preview-service
|
||||
project: speckle-server
|
||||
spec:
|
||||
priorityClassName: low-priority
|
||||
|
||||
{{- if .Values.db.useCertificate }}
|
||||
volumes:
|
||||
- name: postgres-certificate
|
||||
configMap:
|
||||
name: postgres-certificate
|
||||
{{- end }}
|
||||
|
||||
containers:
|
||||
- name: main
|
||||
image: speckle/speckle-preview-service:{{ .Values.docker_image_tag }}
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: {{ .Values.preview_service.requests.cpu }}
|
||||
memory: {{ .Values.preview_service.requests.memory }}
|
||||
limits:
|
||||
cpu: {{ .Values.preview_service.limits.cpu }}
|
||||
memory: {{ .Values.preview_service.limits.memory }}
|
||||
|
||||
{{- if .Values.db.useCertificate }}
|
||||
volumeMounts:
|
||||
- name: postgres-certificate
|
||||
mountPath: /postgres-certificate
|
||||
{{- end }}
|
||||
|
||||
env:
|
||||
- name: PG_CONNECTION_STRING
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ .Values.secretName }}
|
||||
key: postgres_url
|
||||
|
||||
- name: DEBUG
|
||||
value: "preview-service:*"
|
||||
|
||||
{{- if .Values.db.useCertificate }}
|
||||
- name: NODE_EXTRA_CA_CERTS
|
||||
value: "/postgres-certificate/ca-certificate.crt"
|
||||
{{- end }}
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: speckle-webhook-service
|
||||
namespace: {{ .Values.namespace }}
|
||||
labels:
|
||||
app: speckle-webhook-service
|
||||
project: speckle-server
|
||||
spec:
|
||||
replicas: {{ .Values.webhook_service.replicas }}
|
||||
selector:
|
||||
matchLabels:
|
||||
app: speckle-webhook-service
|
||||
project: speckle-server
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app: speckle-webhook-service
|
||||
project: speckle-server
|
||||
spec:
|
||||
priorityClassName: low-priority
|
||||
|
||||
{{- if .Values.db.useCertificate }}
|
||||
volumes:
|
||||
- name: postgres-certificate
|
||||
configMap:
|
||||
name: postgres-certificate
|
||||
{{- end }}
|
||||
|
||||
containers:
|
||||
- name: main
|
||||
image: speckle/speckle-webhook-service:{{ .Values.docker_image_tag }}
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: {{ .Values.webhook_service.requests.cpu }}
|
||||
memory: {{ .Values.webhook_service.requests.memory }}
|
||||
limits:
|
||||
cpu: {{ .Values.webhook_service.limits.cpu }}
|
||||
memory: {{ .Values.webhook_service.limits.memory }}
|
||||
|
||||
{{- if .Values.db.useCertificate }}
|
||||
volumeMounts:
|
||||
- name: postgres-certificate
|
||||
mountPath: /postgres-certificate
|
||||
{{- end }}
|
||||
|
||||
env:
|
||||
- name: PG_CONNECTION_STRING
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ .Values.secretName }}
|
||||
key: postgres_url
|
||||
|
||||
- name: DEBUG
|
||||
value: "webhook-service:*"
|
||||
|
||||
{{- if .Values.db.useCertificate }}
|
||||
- name: NODE_EXTRA_CA_CERTS
|
||||
value: "/postgres-certificate/ca-certificate.crt"
|
||||
{{- end }}
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: speckle-server
|
||||
namespace: {{ .Values.namespace }}
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: {{ .Values.cert_manager_issuer }}
|
||||
nginx.ingress.kubernetes.io/proxy-body-size: "100m"
|
||||
nginx.org/client-max-body-size: "100m"
|
||||
nginx.ingress.kubernetes.io/use-regex: "true"
|
||||
spec:
|
||||
ingressClassName: nginx
|
||||
tls:
|
||||
- hosts:
|
||||
- {{ .Values.domain }}
|
||||
secretName: server-tls
|
||||
rules:
|
||||
- host: {{ .Values.domain }}
|
||||
http:
|
||||
paths:
|
||||
- pathType: Prefix
|
||||
path: "/"
|
||||
backend:
|
||||
service:
|
||||
name: speckle-frontend
|
||||
port:
|
||||
number: 80
|
||||
- pathType: Exact
|
||||
path: "/(graphql|explorer|(auth/.*)|(objects/.*)|(preview/.*)|(api/.*))"
|
||||
backend:
|
||||
service:
|
||||
name: speckle-server
|
||||
port:
|
||||
number: 3000
|
||||
@@ -0,0 +1,18 @@
|
||||
{{ if .Values.enable_prometheus_monitoring }}
|
||||
|
||||
apiVersion: monitoring.coreos.com/v1
|
||||
kind: ServiceMonitor
|
||||
metadata:
|
||||
name: speckle-server
|
||||
namespace: {{ .Values.namespace }}
|
||||
labels:
|
||||
app: speckle-server
|
||||
release: kube-prometheus-stack
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
project: speckle-server
|
||||
endpoints:
|
||||
- port: web
|
||||
|
||||
{{ end }}
|
||||
@@ -0,0 +1,35 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: speckle-server
|
||||
namespace: {{ .Values.namespace }}
|
||||
labels:
|
||||
app: speckle-server
|
||||
project: speckle-server
|
||||
spec:
|
||||
selector:
|
||||
app: speckle-server
|
||||
project: speckle-server
|
||||
ports:
|
||||
- protocol: TCP
|
||||
name: web
|
||||
port: 3000
|
||||
targetPort: 3000
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: speckle-frontend
|
||||
namespace: {{ .Values.namespace }}
|
||||
labels:
|
||||
app: speckle-frontend
|
||||
project: speckle-server
|
||||
spec:
|
||||
selector:
|
||||
app: speckle-frontend
|
||||
project: speckle-server
|
||||
ports:
|
||||
- protocol: TCP
|
||||
name: www
|
||||
port: 80
|
||||
targetPort: 80
|
||||
@@ -0,0 +1,99 @@
|
||||
namespace: speckle-test
|
||||
|
||||
domain: localhost
|
||||
|
||||
docker_image_tag: v2.3.3
|
||||
|
||||
db:
|
||||
# postgres_url: secret -> postgres_url
|
||||
useCertificate: false
|
||||
certificate: "" # Multi-line string with the contents of `ca-certificate.crt`
|
||||
PGSSLMODE: require
|
||||
|
||||
s3:
|
||||
endpoint: ""
|
||||
bucket: ""
|
||||
access_key: ""
|
||||
# secret_key: secret -> s3_secret_key
|
||||
|
||||
#redis:
|
||||
# redis_url: secret -> redis_url
|
||||
|
||||
server:
|
||||
replicas: 1
|
||||
# session_secret: secret -> `session_secret`
|
||||
auth:
|
||||
local:
|
||||
enabled: true
|
||||
google:
|
||||
enabled: false
|
||||
client_id: ""
|
||||
# client_secret: secret -> `google_client_secret`
|
||||
github:
|
||||
enabled: false
|
||||
client_id: ""
|
||||
# client_secret: secret -> `github_client_secret`
|
||||
azure_ad:
|
||||
enabled: false
|
||||
org_name: ""
|
||||
identity_metadata: ""
|
||||
issuer: ""
|
||||
client_id: ""
|
||||
# client_secret: secret -> `azure_ad_client_secret`
|
||||
email:
|
||||
enabled: false
|
||||
host: ""
|
||||
port: ""
|
||||
username: ""
|
||||
# password: secret -> `email_password`
|
||||
requests:
|
||||
cpu: 500m
|
||||
memory: 1Gi
|
||||
limits:
|
||||
cpu: 1000m
|
||||
memory: 3Gi
|
||||
|
||||
sentry_dns: ""
|
||||
disable_tracking: false
|
||||
disable_tracing: false
|
||||
|
||||
frontend:
|
||||
replicas: 1
|
||||
requests:
|
||||
cpu: 250m
|
||||
memory: 256Mi
|
||||
limits:
|
||||
cpu: 1000m
|
||||
memory: 512Mi
|
||||
|
||||
preview_service:
|
||||
replicas: 1
|
||||
requests:
|
||||
cpu: 500m
|
||||
memory: 2Gi
|
||||
limits:
|
||||
cpu: 1000m
|
||||
memory: 4Gi
|
||||
|
||||
webhook_service:
|
||||
replicas: 1
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 256Mi
|
||||
limits:
|
||||
cpu: 200m
|
||||
memory: 512Mi
|
||||
|
||||
fileimport_service:
|
||||
replicas: 1
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 512Mi
|
||||
limits:
|
||||
cpu: 1000m
|
||||
memory: 2Gi
|
||||
|
||||
secretName: server-vars
|
||||
|
||||
enable_prometheus_monitoring: false
|
||||
cert_manager_issuer: letsencrypt-staging
|
||||
Reference in New Issue
Block a user