Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions catalog-info.yaml
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: ts-server-boilerplate
description: A boilerplate github repo for a REST API service in NodeJS for MapColonies
name: sync-layer-server
description: Service that continuously synchronizes geospatial layer data from a third-party GraphQL API into a remote PostgreSQL database
annotations:
github.com/project-slug: MapColonies/ts-server-boilerplate
github.com/project-slug: MapColonies/sync-layer-server
tags:
- nodejs
- typescript
- expressjs
- boilerplate
- yahalom
spec:
type: service
lifecycle: production
owner: DevInfra
system: boilerplate
owner: 3D
system: yahalom
92 changes: 92 additions & 0 deletions config/custom-environment-variables.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
{
"telemetry": {
"serviceName": "TELEMETRY_SERVICE_NAME",
"hostname": "TELEMETRY_HOST_NAME",
"version": "TELEMETRY_SERVICE_VERSION",
"logger": {
"level": "LOG_LEVEL",
"prettyPrint": {
"__name": "LOG_PRETTY_PRINT_ENABLED",
"__format": "boolean"
}
},
"tracing": {
"enabled": "TELEMETRY_TRACING_ENABLED",
"url": "TELEMETRY_TRACING_URL"
},
"metrics": {
"enabled": {
"__name": "TELEMETRY_METRICS_ENABLED",
"__format": "boolean"
},
"url": "TELEMETRY_METRICS_URL",
"interval": "TELEMETRY_METRICS_INTERVAL"
}
},
"server": {
"port": "SERVER_PORT",
"request": {
"payload": {
"limit": "REQUEST_PAYLOAD_LIMIT"
}
},
"response": {
"compression": {
"enabled": {
"__name": "RESPONSE_COMPRESSION_ENABLED",
"__format": "boolean"
}
}
}
},
"sync": {
"layers": {
"__name": "LAYERS",
"__format": "json"
},
"syncIntervalMs": {
"__name": "SYNC_INTERVAL_MS",
"__format": "number"
},
"pollIntervalMs": {
"__name": "POLL_INTERVAL_MS",
"__format": "number"
},
"pageSize": {
"__name": "PAGE_SIZE",
"__format": "number"
},
"thirdPartyBaseUrl": "THIRD_PARTY_BASE_URL",
"realityId": {
"__name": "REALITY_ID",
"__format": "number"
},
"requestingSystem": "REQUESTING_SYSTEM",
"requestingSystemName": "REQUESTING_SYSTEM_NAME",
"useDeleteEntities": {
"__name": "USE_DELETE_ENTITIES",
"__format": "boolean"
},
"authToken": "AUTH_TOKEN"
},
"db": {
"type": "DB_TYPE",
"host": "DB_HOST",
"port": {
"__name": "DB_PORT",
"__format": "number"
},
"username": "DB_USERNAME",
"password": "DB_PASSWORD",
"enableSslAuth": {
"__name": "DB_ENABLE_SSL_AUTH",
"__format": "boolean"
},
"sslPaths": {
"ca": "DB_CA_PATH",
"key": "DB_KEY_PATH",
"cert": "DB_CERT_PATH"
},
"database": "DB_NAME"
}
}
28 changes: 14 additions & 14 deletions helm/templates/_helpers.tpl
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "ts-server-boilerplate.name" -}}
{{- define "sync-layer-server.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}

Expand All @@ -10,7 +10,7 @@ Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "ts-server-boilerplate.fullname" -}}
{{- define "sync-layer-server.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
Expand All @@ -26,16 +26,16 @@ If release name contains chart name it will be used as a full name.
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "ts-server-boilerplate.chart" -}}
{{- define "sync-layer-server.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}

{{/*
Common labels
*/}}
{{- define "ts-server-boilerplate.labels" -}}
helm.sh/chart: {{ include "ts-server-boilerplate.chart" . }}
{{ include "ts-server-boilerplate.selectorLabels" . }}
{{- define "sync-layer-server.labels" -}}
helm.sh/chart: {{ include "sync-layer-server.chart" . }}
{{ include "sync-layer-server.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
Expand All @@ -46,23 +46,23 @@ app.kubernetes.io/managed-by: {{ .Release.Service }}
{{/*
Returns the tag of the chart.
*/}}
{{- define "ts-server-boilerplate.tag" -}}
{{- define "sync-layer-server.tag" -}}
{{- default (printf "v%s" .Chart.AppVersion) .Values.image.tag }}
{{- end }}

{{/*
Selector labels
*/}}
{{- define "ts-server-boilerplate.selectorLabels" -}}
app.kubernetes.io/name: {{ include "ts-server-boilerplate.name" . }}
{{- define "sync-layer-server.selectorLabels" -}}
app.kubernetes.io/name: {{ include "sync-layer-server.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{ include "mclabels.selectorLabels" . }}
{{- end }}

{{/*
Returns the cloud provider name from global if exists or from the chart's values, defaults to minikube
*/}}
{{- define "ts-server-boilerplate.cloudProviderFlavor" -}}
{{- define "sync-layer-server.cloudProviderFlavor" -}}
{{- if .Values.global.cloudProvider.flavor }}
{{- .Values.global.cloudProvider.flavor -}}
{{- else if .Values.cloudProvider -}}
Expand All @@ -75,7 +75,7 @@ Returns the cloud provider name from global if exists or from the chart's values
{{/*
Returns the cloud provider docker registry url from global if exists or from the chart's values
*/}}
{{- define "ts-server-boilerplate.cloudProviderDockerRegistryUrl" -}}
{{- define "sync-layer-server.cloudProviderDockerRegistryUrl" -}}
{{- if .Values.global.cloudProvider.dockerRegistryUrl }}
{{- printf "%s/" .Values.global.cloudProvider.dockerRegistryUrl -}}
{{- else if .Values.cloudProvider.dockerRegistryUrl -}}
Expand All @@ -87,7 +87,7 @@ Returns the cloud provider docker registry url from global if exists or from the
{{/*
Returns the cloud provider image pull secret name from global if exists or from the chart's values
*/}}
{{- define "ts-server-boilerplate.cloudProviderImagePullSecretName" -}}
{{- define "sync-layer-server.cloudProviderImagePullSecretName" -}}
{{- if .Values.global.cloudProvider.imagePullSecretName }}
{{- .Values.global.cloudProvider.imagePullSecretName -}}
{{- else if .Values.cloudProvider.imagePullSecretName -}}
Expand All @@ -98,7 +98,7 @@ Returns the cloud provider image pull secret name from global if exists or from
{{/*
Returns the tracing url from global if exists or from the chart's values
*/}}
{{- define "ts-server-boilerplate.tracingUrl" -}}
{{- define "sync-layer-server.tracingUrl" -}}
{{- if .Values.global.tracing.url }}
{{- .Values.global.tracing.url -}}
{{- else if .Values.cloudProvider -}}
Expand All @@ -109,7 +109,7 @@ Returns the tracing url from global if exists or from the chart's values
{{/*
Returns the tracing url from global if exists or from the chart's values
*/}}
{{- define "ts-server-boilerplate.metricsUrl" -}}
{{- define "sync-layer-server.metricsUrl" -}}
{{- if .Values.global.metrics.url }}
{{- .Values.global.metrics.url -}}
{{- else -}}
Expand Down
20 changes: 16 additions & 4 deletions helm/templates/configmap.yaml
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{{- $tracingUrl := include "ts-server-boilerplate.tracingUrl" . -}}
{{- $metricsUrl := include "ts-server-boilerplate.metricsUrl" . -}}
{{- $tracingUrl := include "sync-layer-server.tracingUrl" . -}}
{{- $metricsUrl := include "sync-layer-server.metricsUrl" . -}}
{{- if .Values.enabled -}}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "ts-server-boilerplate.fullname" . }}
name: {{ include "sync-layer-server.fullname" . }}
data:
REQUEST_PAYLOAD_LIMIT: {{ .Values.env.requestPayloadLimit | quote }}
RESPONSE_COMPRESSION_ENABLED: {{ .Values.env.responseCompressionEnabled | quote }}
Expand All @@ -20,9 +20,21 @@ data:
{{ end }}
npm_config_cache: /tmp/
{{- with .Values.configManagement }}
CONFIG_NAME: {{ .name| quote }}
CONFIG_NAME: {{ .name | quote }}
CONFIG_VERSION: {{ .version | quote }}
CONFIG_OFFLINE_MODE: {{ .offlineMode | quote }}
CONFIG_SERVER_URL: {{ .serverUrl | quote }}
{{- end -}}
{{- with .Values.env.sync }}
LAYERS: {{ .layers | toJson | quote }}
SYNC_INTERVAL_MS: {{ .syncIntervalMs | quote }}
POLL_INTERVAL_MS: {{ .pollIntervalMs | quote }}
PAGE_SIZE: {{ .pageSize | quote }}
THIRD_PARTY_BASE_URL: {{ .thirdPartyBaseUrl | quote }}
REALITY_ID: {{ .realityId | quote }}
REQUESTING_SYSTEM: {{ .requestingSystem | quote }}
REQUESTING_SYSTEM_NAME: {{ .requestingSystemName | quote }}
USE_DELETE_ENTITIES: {{ .useDeleteEntities | quote }}
AUTH_TOKEN: {{ .authToken | quote }}
{{- end -}}
{{- end }}
26 changes: 13 additions & 13 deletions helm/templates/deployment.yaml
Original file line number Diff line number Diff line change
@@ -1,35 +1,35 @@
{{- $releaseName := .Release.Name -}}
{{- $chartName := include "ts-server-boilerplate.name" . -}}
{{- $cloudProviderFlavor := include "ts-server-boilerplate.cloudProviderFlavor" . -}}
{{- $cloudProviderDockerRegistryUrl := include "ts-server-boilerplate.cloudProviderDockerRegistryUrl" . -}}
{{- $cloudProviderImagePullSecretName := include "ts-server-boilerplate.cloudProviderImagePullSecretName" . -}}
{{- $imageTag := include "ts-server-boilerplate.tag" . -}}
{{- $chartName := include "sync-layer-server.name" . -}}
{{- $cloudProviderFlavor := include "sync-layer-server.cloudProviderFlavor" . -}}
{{- $cloudProviderDockerRegistryUrl := include "sync-layer-server.cloudProviderDockerRegistryUrl" . -}}
{{- $cloudProviderImagePullSecretName := include "sync-layer-server.cloudProviderImagePullSecretName" . -}}
{{- $imageTag := include "sync-layer-server.tag" . -}}
{{- if .Values.enabled -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "ts-server-boilerplate.fullname" . }}
name: {{ include "sync-layer-server.fullname" . }}
labels:
app: {{ $chartName }}
component: {{ $chartName }}
release: {{ $releaseName }}
{{- include "ts-server-boilerplate.labels" . | nindent 4 }}
{{- include "sync-layer-server.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
selector:
matchLabels:
app: {{ $chartName }}
release: {{ $releaseName }}
run: {{ include "ts-server-boilerplate.fullname" . }}
{{- include "ts-server-boilerplate.selectorLabels" . | nindent 6 }}
run: {{ include "sync-layer-server.fullname" . }}
{{- include "sync-layer-server.selectorLabels" . | nindent 6 }}
template:
metadata:
labels:
app: {{ $chartName }}
release: {{ $releaseName }}
run: {{ include "ts-server-boilerplate.fullname" . }}
{{- include "ts-server-boilerplate.labels" . | nindent 8 }}
run: {{ include "sync-layer-server.fullname" . }}
{{- include "sync-layer-server.labels" . | nindent 8 }}
annotations:
{{ include "mclabels.annotations" . | nindent 8 }}
{{- if .Values.resetOnConfigChange }}
Expand All @@ -44,7 +44,7 @@ spec:
- name: {{ $cloudProviderImagePullSecretName | quote }}
{{- end }}
containers:
- name: {{ include "ts-server-boilerplate.fullname" . }}
- name: {{ include "sync-layer-server.fullname" . }}
{{- with .Values.image }}
image: {{ $cloudProviderDockerRegistryUrl }}{{ .repository }}:{{ $imageTag }}
imagePullPolicy: {{ .pullPolicy | default "IfNotPresent" }}
Expand Down Expand Up @@ -84,7 +84,7 @@ spec:
{{- end }}
envFrom:
- configMapRef:
name: {{ include "ts-server-boilerplate.fullname" . }}
name: {{ include "sync-layer-server.fullname" . }}
ports:
- name: http
containerPort: {{ .Values.env.targetPort }}
Expand Down
8 changes: 4 additions & 4 deletions helm/templates/ingress.yaml
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
{{- $releaseName := .Release.Name -}}
{{- $chartName := include "ts-server-boilerplate.name" . -}}
{{- $chartName := include "sync-layer-server.name" . -}}
{{- if and (.Values.enabled) (.Values.ingress.enabled) -}}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ include "ts-server-boilerplate.fullname" . }}
name: {{ include "sync-layer-server.fullname" . }}
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.org/mergeable-ingress-type: "minion"
nginx.org/rewrites: 'serviceName={{ include "ts-server-boilerplate.fullname" . }} rewrite=/'
nginx.org/rewrites: 'serviceName={{ include "sync-layer-server.fullname" . }} rewrite=/'
nginx.org/location-snippets: |
if ($request_method = OPTIONS) {
return 204;
Expand All @@ -27,7 +27,7 @@ spec:
pathType: Prefix
backend:
service:
name: {{ include "ts-server-boilerplate.fullname" . }}
name: {{ include "sync-layer-server.fullname" . }}
port:
number: {{ .Values.env.port }}
host: {{ .Values.ingress.host | quote }}
Expand Down
8 changes: 4 additions & 4 deletions helm/templates/route.yaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{{- $releaseName := .Release.Name -}}
{{- $chartName := include "ts-server-boilerplate.name" . -}}
{{- $cloudProviderFlavor := include "ts-server-boilerplate.cloudProviderFlavor" . -}}
{{- $chartName := include "sync-layer-server.name" . -}}
{{- $cloudProviderFlavor := include "sync-layer-server.cloudProviderFlavor" . -}}
{{- if and (and (.Values.enabled) (eq $cloudProviderFlavor "openshift")) (.Values.route.enabled) -}}
apiVersion: route.openshift.io/v1
kind: Route
metadata:
name: {{ include "ts-server-boilerplate.fullname" . }}
name: {{ include "sync-layer-server.fullname" . }}
annotations:
{{- if .Values.route.rewriteTarget }}
haproxy.router.openshift.io/rewrite-target: {{ .Values.route.rewriteTarget }}
Expand All @@ -20,7 +20,7 @@ spec:
path: {{ .Values.route.path | default "/" }}
to:
kind: Service
name: {{ include "ts-server-boilerplate.fullname" . }}
name: {{ include "sync-layer-server.fullname" . }}
{{- if .Values.route.tls.enabled }}
tls:
termination: {{ .Values.route.tls.termination | quote }}
Expand Down
Loading
Loading