feat(helm): add Helm charts for chat and freeleaps services with initial configurations
Signed-off-by: zhenyus <zhenyus@mathmast.com>
This commit is contained in:
parent
ddfa9a6553
commit
2b76d1d969
@ -119,6 +119,29 @@ class DependenciesResolver {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
break
|
||||||
|
case DependenciesManager.PNPM:
|
||||||
|
if (configurations.pnpmPackageJsonFile == null || configurations.pnpmPackageJsonFile.isEmpty()) {
|
||||||
|
steps.error("pnpmPackageJsonFile is required when using PNPM as dependencies manager")
|
||||||
|
}
|
||||||
|
|
||||||
|
def packageJsonFile = configurations.pnpmPackageJsonFile
|
||||||
|
|
||||||
|
this.getNodeVersion()
|
||||||
|
|
||||||
|
if (cachingEnabled) {
|
||||||
|
steps.dir(this.workspace) {
|
||||||
|
steps.cache(maxCacheSize: 512, caches: [[$class: 'ArbitraryFileCache', includes: '**/*', path: ".${configurations.name}-pnpm-cache", cacheValidityDecidingFile: 'pnpm-lock.yaml']]) {
|
||||||
|
steps.sh "mkdir -p ${configurations.name}-pnpm-cache"
|
||||||
|
steps.sh "pnpm install --store-dir ${configurations.name}-pnpm-cache --prefer-offline"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
steps.dir(this.workspace) {
|
||||||
|
steps.sh "pnpm install"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
break
|
break
|
||||||
default:
|
default:
|
||||||
steps.error("Unsupported dependencies manager")
|
steps.error("Unsupported dependencies manager")
|
||||||
|
|||||||
@ -4,6 +4,7 @@ enum DependenciesManager {
|
|||||||
PIP('pip'),
|
PIP('pip'),
|
||||||
NPM('npm'),
|
NPM('npm'),
|
||||||
YARN('yarn'),
|
YARN('yarn'),
|
||||||
|
PNPM('pnpm'),
|
||||||
UNKNOWN('Unknown')
|
UNKNOWN('Unknown')
|
||||||
|
|
||||||
final String manager
|
final String manager
|
||||||
@ -20,6 +21,8 @@ enum DependenciesManager {
|
|||||||
return DependenciesManager.NPM
|
return DependenciesManager.NPM
|
||||||
case 'yarn':
|
case 'yarn':
|
||||||
return DependenciesManager.YARN
|
return DependenciesManager.YARN
|
||||||
|
case 'pnpm':
|
||||||
|
return DependenciesManager.PNPM
|
||||||
default:
|
default:
|
||||||
return DependenciesManager.UNKNOWN
|
return DependenciesManager.UNKNOWN
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,78 @@
|
|||||||
|
library 'first-class-pipeline'
|
||||||
|
|
||||||
|
executeFreeleapsPipeline {
|
||||||
|
serviceName = 'freeleaps'
|
||||||
|
environmentSlug = 'alpha'
|
||||||
|
serviceGitBranch = 'develop'
|
||||||
|
serviceGitRepo = "https://freeleaps@dev.azure.com/freeleaps/freeleaps2-frontend/_git/freeleaps2-frontend"
|
||||||
|
serviceGitRepoType = 'monorepo'
|
||||||
|
serviceGitCredentialsId = 'freeleaps-azure-devops-credentials'
|
||||||
|
executeMode = 'on-demand'
|
||||||
|
commitMessageLintEnabled = false
|
||||||
|
components = [
|
||||||
|
[
|
||||||
|
name: 'chat',
|
||||||
|
root: 'apps/chat',
|
||||||
|
language: 'python',
|
||||||
|
dependenciesManager: 'pip',
|
||||||
|
requirementsFile: 'requirements.txt',
|
||||||
|
buildCacheEnabled: true,
|
||||||
|
buildAgentImage: 'python:3.10-slim-buster',
|
||||||
|
buildArtifacts: ['.'],
|
||||||
|
lintEnabled: false,
|
||||||
|
sastEnabled: false,
|
||||||
|
imageRegistry: 'docker.io',
|
||||||
|
imageRepository: 'freeleaps',
|
||||||
|
imageName: 'devsvc',
|
||||||
|
imageBuilder: 'dind',
|
||||||
|
dockerfilePath: 'Dockerfile',
|
||||||
|
imageBuildRoot: '.',
|
||||||
|
imageReleaseArchitectures: ['linux/amd64', 'linux/arm64/v8'],
|
||||||
|
registryCredentialsId: 'freeleaps-devops-docker-hub-credentials',
|
||||||
|
semanticReleaseEnabled: true
|
||||||
|
],
|
||||||
|
[
|
||||||
|
name: 'freeleaps',
|
||||||
|
root: 'apps/freeleaps',
|
||||||
|
language: 'python',
|
||||||
|
dependenciesManager: 'pip',
|
||||||
|
requirementsFile: 'requirements.txt',
|
||||||
|
buildCacheEnabled: true,
|
||||||
|
buildAgentImage: 'python:3.10-slim-buster',
|
||||||
|
buildArtifacts: ['.'],
|
||||||
|
lintEnabled: false,
|
||||||
|
sastEnabled: false,
|
||||||
|
imageRegistry: 'docker.io',
|
||||||
|
imageRepository: 'freeleaps',
|
||||||
|
imageName: 'devsvc',
|
||||||
|
imageBuilder: 'dind',
|
||||||
|
dockerfilePath: 'Dockerfile',
|
||||||
|
imageBuildRoot: '.',
|
||||||
|
imageReleaseArchitectures: ['linux/amd64', 'linux/arm64/v8'],
|
||||||
|
registryCredentialsId: 'freeleaps-devops-docker-hub-credentials',
|
||||||
|
semanticReleaseEnabled: true
|
||||||
|
],
|
||||||
|
[
|
||||||
|
name: 'frontend',
|
||||||
|
root: 'frontend',
|
||||||
|
language: 'javascript',
|
||||||
|
dependenciesManager: 'pnpm',
|
||||||
|
npmPackageJsonFile: 'package.json',
|
||||||
|
buildCacheEnabled: true,
|
||||||
|
buildAgentImage: 'node:lts',
|
||||||
|
buildCommand: 'pnpm -r build',
|
||||||
|
buildArtifacts: ['freeleaps/dist'],
|
||||||
|
lintEnabled: false,
|
||||||
|
sastEnabled: false,
|
||||||
|
imageRegistry: 'docker.io',
|
||||||
|
imageRepository: 'freeleaps',
|
||||||
|
imageName: 'frontend',
|
||||||
|
imageBuilder: 'dind',
|
||||||
|
dockerfilePath: 'Dockerfile',
|
||||||
|
imageBuildRoot: '.',
|
||||||
|
imageReleaseArchitectures: ['linux/amd64', 'linux/arm64/v8'],
|
||||||
|
registryCredentialsId: 'freeleaps-devops-docker-hub-credentials',
|
||||||
|
semanticReleaseEnabled: true
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
6
freeleaps/helm-pkg/chat/Chart.yaml
Normal file
6
freeleaps/helm-pkg/chat/Chart.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
apiVersion: v2
|
||||||
|
name: chat
|
||||||
|
description: A Helm Chart of chat service, which part of Freeleaps Platform, powered by Freeleaps.
|
||||||
|
type: application
|
||||||
|
version: 0.0.1
|
||||||
|
appVersion: "0.0.1"
|
||||||
27
freeleaps/helm-pkg/chat/templates/chat/certificate.yaml
Normal file
27
freeleaps/helm-pkg/chat/templates/chat/certificate.yaml
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{{ $namespace := .Release.Namespace }}
|
||||||
|
{{ $appVersion := .Chart.AppVersion | quote }}
|
||||||
|
{{ $releaseCertificate := .Release.Service }}
|
||||||
|
{{ $releaseName := .Release.Name }}
|
||||||
|
{{- range $ingress := .Values.chat.ingresses }}
|
||||||
|
{{- if not $ingress.tls.exists }}
|
||||||
|
---
|
||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: {{ $ingress.name }}
|
||||||
|
namespace: {{ $namespace }}
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/version: {{ $appVersion }}
|
||||||
|
app.kubernetes.io/name: {{ $ingress.name | quote }}
|
||||||
|
app.kubernetes.io/managed-by: {{ $releaseCertificate }}
|
||||||
|
app.kubernetes.io/instance: {{ $releaseName }}
|
||||||
|
spec:
|
||||||
|
commonName: {{ $ingress.host }}
|
||||||
|
dnsNames:
|
||||||
|
- {{ $ingress.host }}
|
||||||
|
issuerRef:
|
||||||
|
name: {{ $ingress.tls.issuerRef.name }}
|
||||||
|
kind: {{ $ingress.tls.issuerRef.kind }}
|
||||||
|
secretName: {{ $ingress.tls.name }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
33
freeleaps/helm-pkg/chat/templates/chat/chat-config.yaml
Normal file
33
freeleaps/helm-pkg/chat/templates/chat/chat-config.yaml
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: chat-config
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
TZ: {{ .Values.chat.configs.tz | b64enc | quote }}
|
||||||
|
APP_NAME: {{ .Values.chat.configs.appName | b64enc | quote }}
|
||||||
|
SERVICE_API_ACCESS_HOST: {{ .Values.chat.configs.serviceApiAccessHost | b64enc | quote }}
|
||||||
|
SERVICE_API_ACCESS_PORT: {{ .Values.chat.configs.serviceApiAccessPort | toString | b64enc }}
|
||||||
|
MONGODB_NAME: {{ .Values.chat.configs.mongodbName | b64enc | quote }}
|
||||||
|
MONGODB_URI: {{ .Values.chat.configs.mongodbUri | b64enc | quote }}
|
||||||
|
MONGODB_PORT: {{ .Values.chat.configs.mongodbPort | toString | b64enc }}
|
||||||
|
EMAIL_FROM: {{ .Values.chat.configs.emailFrom | b64enc | quote }}
|
||||||
|
SITE_URL_ROOT: {{ .Values.chat.configs.siteUrlRoot | b64enc | quote }}
|
||||||
|
JWT_SECRET_KEY: {{ .Values.chat.configs.jwtSecretKey | b64enc | quote }}
|
||||||
|
JWT_ALGORITHM: {{ .Values.chat.configs.jwtAlgorithm | b64enc | quote }}
|
||||||
|
STRIPE_API_KEY: {{ .Values.chat.configs.stripeApiKey | b64enc | quote }}
|
||||||
|
STRIPE_WEBHOOK_SECRET: {{ .Values.chat.configs.stripeWebhookSecret | b64enc | quote }}
|
||||||
|
STRIPE_ACCOUNT_WEBHOOK_SECRET: {{ .Values.chat.configs.stripeAccountWebhookSecret | b64enc | quote }}
|
||||||
|
RABBITMQ_HOST: {{ .Values.chat.configs.rabbitmqHost | b64enc | quote }}
|
||||||
|
RABBITMQ_PORT: {{ .Values.chat.configs.rabbitmqPort | toString | b64enc }}
|
||||||
|
RABBITMQ_USERNAME: {{ .Values.chat.configs.rabbitmqUsername | b64enc | quote }}
|
||||||
|
RABBITMQ_PASSWORD: {{ .Values.chat.configs.rabbitmqPassword | b64enc | quote }}
|
||||||
|
FREELEAPS_DEVSVC_ENDPOINT: {{ .Values.chat.configs.freeleapsDevsvcEndpoint | b64enc | quote }}
|
||||||
|
FREELEAPS_CONTENT_ENDPOINT: {{ .Values.chat.configs.freeleapsContentEndpoint | b64enc | quote }}
|
||||||
|
FREELEAPS_CENTRAL_STORAGE_ENDPOINT: {{ .Values.chat.configs.freeleapsCentralStorageEndpoint | b64enc | quote }}
|
||||||
|
FREELEAPS_CHAT_ENDPOINT: {{ .Values.chat.configs.freeleapsChatEndpoint | b64enc | quote }}
|
||||||
|
FREELEAPS_PAYMENT_ENDPOINT: {{ .Values.chat.configs.freeleapsPaymentEndpoint | b64enc | quote }}
|
||||||
|
FREELEAPS_AILAB_ENDPOINT: {{ .Values.chat.configs.freeleapsAilabEndpoint | b64enc | quote }}
|
||||||
|
FREELEAPS_ENV: {{ .Values.chat.configs.freeleapsEnv | b64enc | quote }}
|
||||||
|
CERT_PATH: {{ .Values.chat.configs.certPath | b64enc | quote }}
|
||||||
98
freeleaps/helm-pkg/chat/templates/chat/deployment.yaml
Normal file
98
freeleaps/helm-pkg/chat/templates/chat/deployment.yaml
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||||
|
app.kubernetes.io/name: "chat"
|
||||||
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
name: "chat"
|
||||||
|
namespace: {{ .Release.Namespace | quote }}
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: "chat"
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||||
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||||
|
replicas: {{ .Values.chat.replicas }}
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||||
|
app.kubernetes.io/name: "chat"
|
||||||
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: "chat"
|
||||||
|
image: "{{ coalesce .Values.chat.image.registry .Values.global.registry "docker.io"}}/{{ coalesce .Values.chat.image.repository .Values.global.repository }}/{{ .Values.chat.image.name }}:{{ .Values.chat.image.tag | default "latest" }}"
|
||||||
|
imagePullPolicy: {{ .Values.chat.image.imagePullPolicy | default "IfNotPresent" }}
|
||||||
|
ports:
|
||||||
|
{{- range $port := .Values.chat.ports }}
|
||||||
|
- containerPort: {{ $port.containerPort }}
|
||||||
|
name: {{ $port.name }}
|
||||||
|
protocol: {{ $port.protocol }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.chat.resources }}
|
||||||
|
resources:
|
||||||
|
{{- toYaml .Values.chat.resources | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.chat.probes }}
|
||||||
|
{{- if and (.Values.chat.probes.liveness) (eq .Values.chat.probes.liveness.type "httpGet") }}
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: {{ .Values.chat.probes.liveness.config.path }}
|
||||||
|
port: {{ .Values.chat.probes.liveness.config.port }}
|
||||||
|
{{- if .Values.chat.probes.liveness.config.initialDelaySeconds }}
|
||||||
|
initialDelaySeconds: {{ .Values.chat.probes.liveness.config.initialDelaySeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.chat.probes.liveness.config.periodSeconds }}
|
||||||
|
periodSeconds: {{ .Values.chat.probes.liveness.config.periodSeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.chat.probes.liveness.config.timeoutSeconds }}
|
||||||
|
timeoutSeconds: {{ .Values.chat.probes.liveness.config.timeoutSeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.chat.probes.liveness.config.successThreshold }}
|
||||||
|
successThreshold: {{ .Values.chat.probes.liveness.config.successThreshold }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.chat.probes.liveness.config.failureThreshold }}
|
||||||
|
failureThreshold: {{ .Values.chat.probes.liveness.config.failureThreshold }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.chat.probes.liveness.config.terminationGracePeriodSeconds }}
|
||||||
|
terminationGracePeriodSeconds: {{ .Values.chat.probes.liveness.config.terminationGracePeriodSeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if and (.Values.chat.probes.readiness) (eq .Values.chat.probes.readiness.type "httpGet") }}
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: {{ .Values.chat.probes.readiness.config.path }}
|
||||||
|
port: {{ .Values.chat.probes.readiness.config.port }}
|
||||||
|
{{- if .Values.chat.probes.readiness.config.initialDelaySeconds }}
|
||||||
|
initialDelaySeconds: {{ .Values.chat.probes.readiness.config.initialDelaySeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.chat.probes.readiness.config.periodSeconds }}
|
||||||
|
periodSeconds: {{ .Values.chat.probes.readiness.config.periodSeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.chat.probes.readiness.config.timeoutSeconds }}
|
||||||
|
timeoutSeconds: {{ .Values.chat.probes.readiness.config.timeoutSeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.chat.probes.readiness.config.successThreshold }}
|
||||||
|
successThreshold: {{ .Values.chat.probes.readiness.config.successThreshold }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.chat.probes.readiness.config.failureThreshold }}
|
||||||
|
failureThreshold: {{ .Values.chat.probes.readiness.config.failureThreshold }}
|
||||||
|
{{- end }}:%
|
||||||
|
{{- if .Values.chat.probes.readiness.config.terminationGracePeriodSeconds }}
|
||||||
|
terminationGracePeriodSeconds: {{ .Values.chat.probes.readiness.config.terminationGracePeriodSeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end}}
|
||||||
|
env:
|
||||||
|
{{- range $key, $value := .Values.chat.configs }}
|
||||||
|
- name: {{ $key | snakecase | upper }}
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: chat-config
|
||||||
|
key: {{ $key | snakecase | upper }}
|
||||||
|
{{- end }}
|
||||||
36
freeleaps/helm-pkg/chat/templates/chat/ingress.yaml
Normal file
36
freeleaps/helm-pkg/chat/templates/chat/ingress.yaml
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
{{ $namespace := .Release.Namespace }}
|
||||||
|
{{ $appVersion := .Chart.AppVersion | quote }}
|
||||||
|
{{ $releaseIngress := .Release.Service }}
|
||||||
|
{{ $releaseName := .Release.Name }}
|
||||||
|
{{- range $ingress := .Values.chat.ingresses }}
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: {{ $ingress.name }}
|
||||||
|
namespace: {{ $namespace }}
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/version: {{ $appVersion }}
|
||||||
|
app.kubernetes.io/name: {{ $ingress.name | quote }}
|
||||||
|
app.kubernetes.io/managed-by: {{ $releaseIngress }}
|
||||||
|
app.kubernetes.io/instance: {{ $releaseName }}
|
||||||
|
spec:
|
||||||
|
{{- if $ingress.class }}
|
||||||
|
ingressClassName: {{ $ingress.class }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if $ingress.tls }}
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- {{ $ingress.host }}
|
||||||
|
{{- if $ingress.tls.exists }}
|
||||||
|
secretName: {{ $ingress.tls.secretRef.name }}
|
||||||
|
{{- else }}
|
||||||
|
secretName: {{ $ingress.tls.name }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
rules:
|
||||||
|
- host: {{ $ingress.host }}
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
{{- toYaml $ingress.rules | nindent 10 }}
|
||||||
|
{{- end }}
|
||||||
26
freeleaps/helm-pkg/chat/templates/chat/service.yaml
Normal file
26
freeleaps/helm-pkg/chat/templates/chat/service.yaml
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{{ $namespace := .Release.Namespace }}
|
||||||
|
{{ $appVersion := .Chart.AppVersion | quote }}
|
||||||
|
{{ $releaseService := .Release.Service }}
|
||||||
|
{{ $releaseName := .Release.Name }}
|
||||||
|
{{- range $service := .Values.chat.services }}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: {{ $service.name }}
|
||||||
|
namespace: {{ $namespace }}
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/version: {{ $appVersion }}
|
||||||
|
app.kubernetes.io/name: {{ $service.name | quote }}
|
||||||
|
app.kubernetes.io/managed-by: {{ $releaseService }}
|
||||||
|
app.kubernetes.io/instance: {{ $releaseName }}
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: {{ $service.port }}
|
||||||
|
targetPort: {{ $service.targetPort }}
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/version: {{ $appVersion }}
|
||||||
|
app.kubernetes.io/name: "chat"
|
||||||
|
app.kubernetes.io/managed-by: {{ $releaseService }}
|
||||||
|
app.kubernetes.io/instance: {{ $releaseName }}
|
||||||
|
{{- end }}
|
||||||
@ -0,0 +1,77 @@
|
|||||||
|
global:
|
||||||
|
registry: docker.io
|
||||||
|
repository: freeleaps
|
||||||
|
nodeSelector: {}
|
||||||
|
chat:
|
||||||
|
replicas: 1
|
||||||
|
image:
|
||||||
|
registry:
|
||||||
|
repository: freeleaps
|
||||||
|
name: chat
|
||||||
|
tag: 1.0.0
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 8012
|
||||||
|
protocol: TCP
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: "0.5"
|
||||||
|
memory: "512Mi"
|
||||||
|
limits:
|
||||||
|
cpu: "1"
|
||||||
|
memory: "1Gi"
|
||||||
|
# FIXME: Wait until the developers implements the probes APIs
|
||||||
|
probes: {}
|
||||||
|
services:
|
||||||
|
- name: chat-service
|
||||||
|
type: ClusterIP
|
||||||
|
port: 8012
|
||||||
|
targetPort: 8012
|
||||||
|
# Defaults to {}, which means doesn't have any ingress
|
||||||
|
ingresses:
|
||||||
|
- name: chat-ingress
|
||||||
|
host: alpha.chat.freeleaps.mathmast.com
|
||||||
|
class: nginx
|
||||||
|
rules:
|
||||||
|
- path: /
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: chat-service
|
||||||
|
port:
|
||||||
|
number: 8012
|
||||||
|
tls:
|
||||||
|
exists: false
|
||||||
|
issuerRef:
|
||||||
|
name: mathmast-dot-com
|
||||||
|
kind: ClusterIssuer
|
||||||
|
name: alpha.chat.freeleaps.mathmast.com-cert
|
||||||
|
configs:
|
||||||
|
tz: "UTC"
|
||||||
|
appName: "chat"
|
||||||
|
serviceApiAccessHost: "0.0.0.0"
|
||||||
|
serviceApiAccessPort: 8012
|
||||||
|
mongodbName: freeleaps2
|
||||||
|
mongodbUri: mongodb://freeleaps-alpha-mongo-mongodb.freeleaps-alpha.svc.freeleaps.cluster:27017/
|
||||||
|
mongodbHost: freeleaps-alpha-mongo-mongodb.freeleaps-alpha.svc.freeleaps.cluster
|
||||||
|
mongodbPort: 27017
|
||||||
|
emailFrom: "freeleaps@freeleaps.com"
|
||||||
|
siteUrlRoot: "https://alpha.freeleaps.mathmast.com"
|
||||||
|
jwtSecretKey: 8f87ca8c3c9c3df09a9c78e0adb0927855568f6072d9efc892534aee35f5867b
|
||||||
|
jwtAlgorithm: HS256
|
||||||
|
stripeApiKey: sk_test_51Ogsw5B0IyqaSJBrwczlr820jnmvA1qQQGoLZ2XxOsIzikpmXo4pRLjw4XVMTEBR8DdVTYySiAv1XX53Zv5xqynF00GfMqttFd
|
||||||
|
stripeWebhookSecret: ""
|
||||||
|
stripeAccountWebhookSecret: ""
|
||||||
|
rabbitmqHost: freeleaps-alpha-rabbitmq.freeleaps-alpha.svc.freeleaps.cluster
|
||||||
|
rabbitmqPort: 5672
|
||||||
|
rabbitmqUsername: user
|
||||||
|
rabbitmqPassword: 9dPrkjD8KENevfjT
|
||||||
|
freeleapsDevsvcEndpoint: "https://alpha.devsvc.freeleaps.mathmast.com"
|
||||||
|
freeleapsContentEndpoint: "https://alpha.content.freeleaps.mathmast.com"
|
||||||
|
freeleapsCentralStorageEndpoint: "https://alpha.central-storage.freeleaps.mathmast.com"
|
||||||
|
freeleapsChatEndpoint: "https://alpha.chat.freeleaps.mathmast.com"
|
||||||
|
freeleapsPaymentEndpoint: "https://alpha.payment.freeleaps.mathmast.com"
|
||||||
|
freeleapsAilabEndpoint: ""
|
||||||
|
freeleapsEnv: "alpha"
|
||||||
|
certPath: ""
|
||||||
87
freeleaps/helm-pkg/chat/values.yaml
Normal file
87
freeleaps/helm-pkg/chat/values.yaml
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
global:
|
||||||
|
registry: docker.io
|
||||||
|
repository: freeleaps
|
||||||
|
nodeSelector: {}
|
||||||
|
chat:
|
||||||
|
replicas: 1
|
||||||
|
image:
|
||||||
|
registry:
|
||||||
|
repository: freeleaps
|
||||||
|
name: chat
|
||||||
|
tag: 1.0.0
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 8007
|
||||||
|
protocol: TCP
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: "0.5"
|
||||||
|
memory: "512Mi"
|
||||||
|
limits:
|
||||||
|
cpu: "1"
|
||||||
|
memory: "1Gi"
|
||||||
|
# FIXME: Wait until the developers implements the probes APIs
|
||||||
|
probes: {}
|
||||||
|
services:
|
||||||
|
- name: chat-service
|
||||||
|
type: ClusterIP
|
||||||
|
port: 8007
|
||||||
|
targetPort: 8007
|
||||||
|
# Defaults to {}, which means doesn't have any ingress
|
||||||
|
ingresses: {}
|
||||||
|
configs:
|
||||||
|
# TZ
|
||||||
|
tz: "UTC"
|
||||||
|
# APP_NAME
|
||||||
|
appName: "chat"
|
||||||
|
# SERVICE_API_ACCESS_HOST
|
||||||
|
serviceApiAccessHost: "0.0.0.0"
|
||||||
|
# SERVICE_API_ACCESS_PORT
|
||||||
|
serviceApiAccessPort: "8013"
|
||||||
|
# MONGODB_NAME
|
||||||
|
mongodbName: ""
|
||||||
|
# MONGODB_URI
|
||||||
|
mongodbUri: ""
|
||||||
|
# MONGODB_HOST
|
||||||
|
mongodbHost: ""
|
||||||
|
# MONGODB_PORT
|
||||||
|
mongodbPort: ''
|
||||||
|
# EMAIL_FROM
|
||||||
|
emailFrom: ""
|
||||||
|
# SITE_URL_ROOT
|
||||||
|
siteUrlRoot: ""
|
||||||
|
# JWT_SECRET_KEY
|
||||||
|
jwtSecretKey: ""
|
||||||
|
# JWT_ALGORITHM
|
||||||
|
jwtAlgorithm: ""
|
||||||
|
# STRIPE_API_KEY
|
||||||
|
stripeApiKey: ""
|
||||||
|
# STRIPE_WEBHOOK_SECRET
|
||||||
|
stripeWebhookSecret: ""
|
||||||
|
# STRIPE_ACCOUNT_WEBHOOK_SECRET
|
||||||
|
stripeAccountWebhookSecret: ""
|
||||||
|
# RABBITMQ_HOST
|
||||||
|
rabbitmqHost: ""
|
||||||
|
# RABBITMQ_PORT
|
||||||
|
rabbitmqPort:
|
||||||
|
# RABBITMQ_USERNAME
|
||||||
|
rabbitmqUsername: ""
|
||||||
|
# RABBITMQ_PASSWORD
|
||||||
|
rabbitmqPassword: ""
|
||||||
|
# FREELEAPS_DEVSVC_ENDPOINT
|
||||||
|
freeleapsDevsvcEndpoint: ""
|
||||||
|
# FREELEAPS_CONTENT_ENDPOINT
|
||||||
|
freeleapsContentEndpoint: ""
|
||||||
|
# FREELEAPS_CENTRAL_STORAGE_ENDPOINT
|
||||||
|
freeleapsCentralStorageEndpoint: ""
|
||||||
|
# FREELEAPS_CHAT_ENDPOINT
|
||||||
|
freeleapsChatEndpoint: ""
|
||||||
|
# FREELEAPS_PAYMENT_ENDPOINT
|
||||||
|
freeleapsPaymentEndpoint: ""
|
||||||
|
# FREELEAPS_AILAB_ENDPOINT
|
||||||
|
freeleapsAilabEndpoint: ""
|
||||||
|
# FREELEAPS_ENV
|
||||||
|
freeleapsEnv: ""
|
||||||
|
# CERT_PATH
|
||||||
|
certPath: ""
|
||||||
6
freeleaps/helm-pkg/freeleaps/Chart.yaml
Normal file
6
freeleaps/helm-pkg/freeleaps/Chart.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
apiVersion: v2
|
||||||
|
name: freeleaps
|
||||||
|
description: A Helm Chart of freeleaps service, which part of Freeleaps Platform, powered by Freeleaps.
|
||||||
|
type: application
|
||||||
|
version: 0.0.1
|
||||||
|
appVersion: "0.0.1"
|
||||||
@ -0,0 +1,27 @@
|
|||||||
|
{{ $namespace := .Release.Namespace }}
|
||||||
|
{{ $appVersion := .Chart.AppVersion | quote }}
|
||||||
|
{{ $releaseCertificate := .Release.Service }}
|
||||||
|
{{ $releaseName := .Release.Name }}
|
||||||
|
{{- range $ingress := .Values.freeleaps.ingresses }}
|
||||||
|
{{- if not $ingress.tls.exists }}
|
||||||
|
---
|
||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: {{ $ingress.name }}
|
||||||
|
namespace: {{ $namespace }}
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/version: {{ $appVersion }}
|
||||||
|
app.kubernetes.io/name: {{ $ingress.name | quote }}
|
||||||
|
app.kubernetes.io/managed-by: {{ $releaseCertificate }}
|
||||||
|
app.kubernetes.io/instance: {{ $releaseName }}
|
||||||
|
spec:
|
||||||
|
commonName: {{ $ingress.host }}
|
||||||
|
dnsNames:
|
||||||
|
- {{ $ingress.host }}
|
||||||
|
issuerRef:
|
||||||
|
name: {{ $ingress.tls.issuerRef.name }}
|
||||||
|
kind: {{ $ingress.tls.issuerRef.kind }}
|
||||||
|
secretName: {{ $ingress.tls.name }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
@ -0,0 +1,98 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||||
|
app.kubernetes.io/name: "freeleaps"
|
||||||
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
name: "freeleaps"
|
||||||
|
namespace: {{ .Release.Namespace | quote }}
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: "freeleaps"
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||||
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||||
|
replicas: {{ .Values.freeleaps.replicas }}
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||||
|
app.kubernetes.io/name: "freeleaps"
|
||||||
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: "freeleaps"
|
||||||
|
image: "{{ coalesce .Values.freeleaps.image.registry .Values.global.registry "docker.io"}}/{{ coalesce .Values.freeleaps.image.repository .Values.global.repository }}/{{ .Values.freeleaps.image.name }}:{{ .Values.freeleaps.image.tag | default "latest" }}"
|
||||||
|
imagePullPolicy: {{ .Values.freeleaps.image.imagePullPolicy | default "IfNotPresent" }}
|
||||||
|
ports:
|
||||||
|
{{- range $port := .Values.freeleaps.ports }}
|
||||||
|
- containerPort: {{ $port.containerPort }}
|
||||||
|
name: {{ $port.name }}
|
||||||
|
protocol: {{ $port.protocol }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.freeleaps.resources }}
|
||||||
|
resources:
|
||||||
|
{{- toYaml .Values.freeleaps.resources | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.freeleaps.probes }}
|
||||||
|
{{- if and (.Values.freeleaps.probes.liveness) (eq .Values.freeleaps.probes.liveness.type "httpGet") }}
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: {{ .Values.freeleaps.probes.liveness.config.path }}
|
||||||
|
port: {{ .Values.freeleaps.probes.liveness.config.port }}
|
||||||
|
{{- if .Values.freeleaps.probes.liveness.config.initialDelaySeconds }}
|
||||||
|
initialDelaySeconds: {{ .Values.freeleaps.probes.liveness.config.initialDelaySeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.freeleaps.probes.liveness.config.periodSeconds }}
|
||||||
|
periodSeconds: {{ .Values.freeleaps.probes.liveness.config.periodSeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.freeleaps.probes.liveness.config.timeoutSeconds }}
|
||||||
|
timeoutSeconds: {{ .Values.freeleaps.probes.liveness.config.timeoutSeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.freeleaps.probes.liveness.config.successThreshold }}
|
||||||
|
successThreshold: {{ .Values.freeleaps.probes.liveness.config.successThreshold }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.freeleaps.probes.liveness.config.failureThreshold }}
|
||||||
|
failureThreshold: {{ .Values.freeleaps.probes.liveness.config.failureThreshold }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.freeleaps.probes.liveness.config.terminationGracePeriodSeconds }}
|
||||||
|
terminationGracePeriodSeconds: {{ .Values.freeleaps.probes.liveness.config.terminationGracePeriodSeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if and (.Values.freeleaps.probes.readiness) (eq .Values.freeleaps.probes.readiness.type "httpGet") }}
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: {{ .Values.freeleaps.probes.readiness.config.path }}
|
||||||
|
port: {{ .Values.freeleaps.probes.readiness.config.port }}
|
||||||
|
{{- if .Values.freeleaps.probes.readiness.config.initialDelaySeconds }}
|
||||||
|
initialDelaySeconds: {{ .Values.freeleaps.probes.readiness.config.initialDelaySeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.freeleaps.probes.readiness.config.periodSeconds }}
|
||||||
|
periodSeconds: {{ .Values.freeleaps.probes.readiness.config.periodSeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.freeleaps.probes.readiness.config.timeoutSeconds }}
|
||||||
|
timeoutSeconds: {{ .Values.freeleaps.probes.readiness.config.timeoutSeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.freeleaps.probes.readiness.config.successThreshold }}
|
||||||
|
successThreshold: {{ .Values.freeleaps.probes.readiness.config.successThreshold }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.freeleaps.probes.readiness.config.failureThreshold }}
|
||||||
|
failureThreshold: {{ .Values.freeleaps.probes.readiness.config.failureThreshold }}
|
||||||
|
{{- end }}:%
|
||||||
|
{{- if .Values.freeleaps.probes.readiness.config.terminationGracePeriodSeconds }}
|
||||||
|
terminationGracePeriodSeconds: {{ .Values.freeleaps.probes.readiness.config.terminationGracePeriodSeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end}}
|
||||||
|
env:
|
||||||
|
{{- range $key, $value := .Values.freeleaps.configs }}
|
||||||
|
- name: {{ $key | snakecase | upper }}
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: freeleaps-config
|
||||||
|
key: {{ $key | snakecase | upper }}
|
||||||
|
{{- end }}
|
||||||
@ -0,0 +1,33 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: freeleaps-config
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
TZ: {{ .Values.freeleaps.configs.tz | b64enc | quote }}
|
||||||
|
APP_NAME: {{ .Values.freeleaps.configs.appName | b64enc | quote }}
|
||||||
|
SERVICE_API_ACCESS_HOST: {{ .Values.freeleaps.configs.serviceApiAccessHost | b64enc | quote }}
|
||||||
|
SERVICE_API_ACCESS_PORT: {{ .Values.freeleaps.configs.serviceApiAccessPort | toString | b64enc }}
|
||||||
|
MONGODB_NAME: {{ .Values.freeleaps.configs.mongodbName | b64enc | quote }}
|
||||||
|
MONGODB_URI: {{ .Values.freeleaps.configs.mongodbUri | b64enc | quote }}
|
||||||
|
MONGODB_PORT: {{ .Values.freeleaps.configs.mongodbPort | toString | b64enc }}
|
||||||
|
EMAIL_FROM: {{ .Values.freeleaps.configs.emailFrom | b64enc | quote }}
|
||||||
|
SITE_URL_ROOT: {{ .Values.freeleaps.configs.siteUrlRoot | b64enc | quote }}
|
||||||
|
JWT_SECRET_KEY: {{ .Values.freeleaps.configs.jwtSecretKey | b64enc | quote }}
|
||||||
|
JWT_ALGORITHM: {{ .Values.freeleaps.configs.jwtAlgorithm | b64enc | quote }}
|
||||||
|
STRIPE_API_KEY: {{ .Values.freeleaps.configs.stripeApiKey | b64enc | quote }}
|
||||||
|
STRIPE_WEBHOOK_SECRET: {{ .Values.freeleaps.configs.stripeWebhookSecret | b64enc | quote }}
|
||||||
|
STRIPE_ACCOUNT_WEBHOOK_SECRET: {{ .Values.freeleaps.configs.stripeAccountWebhookSecret | b64enc | quote }}
|
||||||
|
RABBITMQ_HOST: {{ .Values.freeleaps.configs.rabbitmqHost | b64enc | quote }}
|
||||||
|
RABBITMQ_PORT: {{ .Values.freeleaps.configs.rabbitmqPort | toString | b64enc }}
|
||||||
|
RABBITMQ_USERNAME: {{ .Values.freeleaps.configs.rabbitmqUsername | b64enc | quote }}
|
||||||
|
RABBITMQ_PASSWORD: {{ .Values.freeleaps.configs.rabbitmqPassword | b64enc | quote }}
|
||||||
|
FREELEAPS_DEVSVC_ENDPOINT: {{ .Values.freeleaps.configs.freeleapsDevsvcEndpoint | b64enc | quote }}
|
||||||
|
FREELEAPS_CONTENT_ENDPOINT: {{ .Values.freeleaps.configs.freeleapsContentEndpoint | b64enc | quote }}
|
||||||
|
FREELEAPS_CENTRAL_STORAGE_ENDPOINT: {{ .Values.freeleaps.configs.freeleapsCentralStorageEndpoint | b64enc | quote }}
|
||||||
|
FREELEAPS_CHAT_ENDPOINT: {{ .Values.freeleaps.configs.freeleapsChatEndpoint | b64enc | quote }}
|
||||||
|
FREELEAPS_PAYMENT_ENDPOINT: {{ .Values.freeleaps.configs.freeleapsPaymentEndpoint | b64enc | quote }}
|
||||||
|
FREELEAPS_AILAB_ENDPOINT: {{ .Values.freeleaps.configs.freeleapsAilabEndpoint | b64enc | quote }}
|
||||||
|
FREELEAPS_ENV: {{ .Values.freeleaps.configs.freeleapsEnv | b64enc | quote }}
|
||||||
|
CERT_PATH: {{ .Values.freeleaps.configs.certPath | b64enc | quote }}
|
||||||
@ -0,0 +1,36 @@
|
|||||||
|
{{ $namespace := .Release.Namespace }}
|
||||||
|
{{ $appVersion := .Chart.AppVersion | quote }}
|
||||||
|
{{ $releaseIngress := .Release.Service }}
|
||||||
|
{{ $releaseName := .Release.Name }}
|
||||||
|
{{- range $ingress := .Values.freeleaps.ingresses }}
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: {{ $ingress.name }}
|
||||||
|
namespace: {{ $namespace }}
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/version: {{ $appVersion }}
|
||||||
|
app.kubernetes.io/name: {{ $ingress.name | quote }}
|
||||||
|
app.kubernetes.io/managed-by: {{ $releaseIngress }}
|
||||||
|
app.kubernetes.io/instance: {{ $releaseName }}
|
||||||
|
spec:
|
||||||
|
{{- if $ingress.class }}
|
||||||
|
ingressClassName: {{ $ingress.class }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if $ingress.tls }}
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- {{ $ingress.host }}
|
||||||
|
{{- if $ingress.tls.exists }}
|
||||||
|
secretName: {{ $ingress.tls.secretRef.name }}
|
||||||
|
{{- else }}
|
||||||
|
secretName: {{ $ingress.tls.name }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
rules:
|
||||||
|
- host: {{ $ingress.host }}
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
{{- toYaml $ingress.rules | nindent 10 }}
|
||||||
|
{{- end }}
|
||||||
@ -0,0 +1,26 @@
|
|||||||
|
{{ $namespace := .Release.Namespace }}
|
||||||
|
{{ $appVersion := .Chart.AppVersion | quote }}
|
||||||
|
{{ $releaseService := .Release.Service }}
|
||||||
|
{{ $releaseName := .Release.Name }}
|
||||||
|
{{- range $service := .Values.freeleaps.services }}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: {{ $service.name }}
|
||||||
|
namespace: {{ $namespace }}
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/version: {{ $appVersion }}
|
||||||
|
app.kubernetes.io/name: {{ $service.name | quote }}
|
||||||
|
app.kubernetes.io/managed-by: {{ $releaseService }}
|
||||||
|
app.kubernetes.io/instance: {{ $releaseName }}
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: {{ $service.port }}
|
||||||
|
targetPort: {{ $service.targetPort }}
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/version: {{ $appVersion }}
|
||||||
|
app.kubernetes.io/name: "freeleaps"
|
||||||
|
app.kubernetes.io/managed-by: {{ $releaseService }}
|
||||||
|
app.kubernetes.io/instance: {{ $releaseName }}
|
||||||
|
{{- end }}
|
||||||
@ -0,0 +1,77 @@
|
|||||||
|
global:
|
||||||
|
registry: docker.io
|
||||||
|
repository: freeleaps
|
||||||
|
nodeSelector: {}
|
||||||
|
freeleaps:
|
||||||
|
replicas: 1
|
||||||
|
image:
|
||||||
|
registry:
|
||||||
|
repository: freeleaps
|
||||||
|
name: freeleaps
|
||||||
|
tag: 1.0.0
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 8001
|
||||||
|
protocol: TCP
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: "0.5"
|
||||||
|
memory: "512Mi"
|
||||||
|
limits:
|
||||||
|
cpu: "1"
|
||||||
|
memory: "1Gi"
|
||||||
|
# FIXME: Wait until the developers implements the probes APIs
|
||||||
|
probes: {}
|
||||||
|
services:
|
||||||
|
- name: freeleaps-service
|
||||||
|
type: ClusterIP
|
||||||
|
port: 8001
|
||||||
|
targetPort: 8001
|
||||||
|
# Defaults to {}, which means doesn't have any ingress
|
||||||
|
ingresses:
|
||||||
|
- name: freeleaps-ingress
|
||||||
|
host: alpha.api.freeleaps.mathmast.com
|
||||||
|
class: nginx
|
||||||
|
rules:
|
||||||
|
- path: /
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: free
|
||||||
|
port:
|
||||||
|
number: 8001
|
||||||
|
tls:
|
||||||
|
exists: false
|
||||||
|
issuerRef:
|
||||||
|
name: mathmast-dot-com
|
||||||
|
kind: ClusterIssuer
|
||||||
|
name: alpha.api.freeleaps.mathmast.com-cert
|
||||||
|
configs:
|
||||||
|
tz: "UTC"
|
||||||
|
appName: "freeleaps"
|
||||||
|
serviceApiAccessHost: "0.0.0.0"
|
||||||
|
serviceApiAccessPort: 8001
|
||||||
|
mongodbName: freeleaps2
|
||||||
|
mongodbUri: mongodb://freeleaps-alpha-mongo-mongodb.freeleaps-alpha.svc.freeleaps.cluster:27017/
|
||||||
|
mongodbHost: freeleaps-alpha-mongo-mongodb.freeleaps-alpha.svc.freeleaps.cluster
|
||||||
|
mongodbPort: 27017
|
||||||
|
emailFrom: "freeleaps@freeleaps.com"
|
||||||
|
siteUrlRoot: "https://alpha.freeleaps.mathmast.com"
|
||||||
|
jwtSecretKey: 8f87ca8c3c9c3df09a9c78e0adb0927855568f6072d9efc892534aee35f5867b
|
||||||
|
jwtAlgorithm: HS256
|
||||||
|
stripeApiKey: sk_test_51Ogsw5B0IyqaSJBrwczlr820jnmvA1qQQGoLZ2XxOsIzikpmXo4pRLjw4XVMTEBR8DdVTYySiAv1XX53Zv5xqynF00GfMqttFd
|
||||||
|
stripeWebhookSecret: ""
|
||||||
|
stripeAccountWebhookSecret: ""
|
||||||
|
rabbitmqHost: freeleaps-alpha-rabbitmq.freeleaps-alpha.svc.freeleaps.cluster
|
||||||
|
rabbitmqPort: 5672
|
||||||
|
rabbitmqUsername: user
|
||||||
|
rabbitmqPassword: 9dPrkjD8KENevfjT
|
||||||
|
freeleapsDevsvcEndpoint: "https://alpha.devsvc.freeleaps.mathmast.com"
|
||||||
|
freeleapsContentEndpoint: "https://alpha.content.freeleaps.mathmast.com"
|
||||||
|
freeleapsCentralStorageEndpoint: "https://alpha.central-storage.freeleaps.mathmast.com"
|
||||||
|
freeleapsChatEndpoint: "https://alpha.chat.freeleaps.mathmast.com"
|
||||||
|
freeleapsPaymentEndpoint: "https://alpha.payment.freeleaps.mathmast.com"
|
||||||
|
freeleapsAilabEndpoint: ""
|
||||||
|
freeleapsEnv: "alpha"
|
||||||
|
certPath: ""
|
||||||
87
freeleaps/helm-pkg/freeleaps/values.yaml
Normal file
87
freeleaps/helm-pkg/freeleaps/values.yaml
Normal file
@ -0,0 +1,87 @@
|
|||||||
|
global:
|
||||||
|
registry: docker.io
|
||||||
|
repository: freeleaps
|
||||||
|
nodeSelector: {}
|
||||||
|
freeleaps:
|
||||||
|
replicas: 1
|
||||||
|
image:
|
||||||
|
registry:
|
||||||
|
repository: freeleaps
|
||||||
|
name: freeleaps
|
||||||
|
tag: 1.0.0
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 8007
|
||||||
|
protocol: TCP
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: "0.5"
|
||||||
|
memory: "512Mi"
|
||||||
|
limits:
|
||||||
|
cpu: "1"
|
||||||
|
memory: "1Gi"
|
||||||
|
# FIXME: Wait until the developers implements the probes APIs
|
||||||
|
probes: {}
|
||||||
|
services:
|
||||||
|
- name: freeleaps-service
|
||||||
|
type: ClusterIP
|
||||||
|
port: 8007
|
||||||
|
targetPort: 8007
|
||||||
|
# Defaults to {}, which means doesn't have any ingress
|
||||||
|
ingresses: {}
|
||||||
|
configs:
|
||||||
|
# TZ
|
||||||
|
tz: "UTC"
|
||||||
|
# APP_NAME
|
||||||
|
appName: "freeleaps"
|
||||||
|
# SERVICE_API_ACCESS_HOST
|
||||||
|
serviceApiAccessHost: "0.0.0.0"
|
||||||
|
# SERVICE_API_ACCESS_PORT
|
||||||
|
serviceApiAccessPort: "8013"
|
||||||
|
# MONGODB_NAME
|
||||||
|
mongodbName: ""
|
||||||
|
# MONGODB_URI
|
||||||
|
mongodbUri: ""
|
||||||
|
# MONGODB_HOST
|
||||||
|
mongodbHost: ""
|
||||||
|
# MONGODB_PORT
|
||||||
|
mongodbPort: ''
|
||||||
|
# EMAIL_FROM
|
||||||
|
emailFrom: ""
|
||||||
|
# SITE_URL_ROOT
|
||||||
|
siteUrlRoot: ""
|
||||||
|
# JWT_SECRET_KEY
|
||||||
|
jwtSecretKey: ""
|
||||||
|
# JWT_ALGORITHM
|
||||||
|
jwtAlgorithm: ""
|
||||||
|
# STRIPE_API_KEY
|
||||||
|
stripeApiKey: ""
|
||||||
|
# STRIPE_WEBHOOK_SECRET
|
||||||
|
stripeWebhookSecret: ""
|
||||||
|
# STRIPE_ACCOUNT_WEBHOOK_SECRET
|
||||||
|
stripeAccountWebhookSecret: ""
|
||||||
|
# RABBITMQ_HOST
|
||||||
|
rabbitmqHost: ""
|
||||||
|
# RABBITMQ_PORT
|
||||||
|
rabbitmqPort:
|
||||||
|
# RABBITMQ_USERNAME
|
||||||
|
rabbitmqUsername: ""
|
||||||
|
# RABBITMQ_PASSWORD
|
||||||
|
rabbitmqPassword: ""
|
||||||
|
# FREELEAPS_DEVSVC_ENDPOINT
|
||||||
|
freeleapsDevsvcEndpoint: ""
|
||||||
|
# FREELEAPS_CONTENT_ENDPOINT
|
||||||
|
freeleapsContentEndpoint: ""
|
||||||
|
# FREELEAPS_CENTRAL_STORAGE_ENDPOINT
|
||||||
|
freeleapsCentralStorageEndpoint: ""
|
||||||
|
# FREELEAPS_freeleaps_ENDPOINT
|
||||||
|
freeleapsfreeleapsEndpoint: ""
|
||||||
|
# FREELEAPS_PAYMENT_ENDPOINT
|
||||||
|
freeleapsPaymentEndpoint: ""
|
||||||
|
# FREELEAPS_AILAB_ENDPOINT
|
||||||
|
freeleapsAilabEndpoint: ""
|
||||||
|
# FREELEAPS_ENV
|
||||||
|
freeleapsEnv: ""
|
||||||
|
# CERT_PATH
|
||||||
|
certPath: ""
|
||||||
@ -0,0 +1,27 @@
|
|||||||
|
{{ $namespace := .Release.Namespace }}
|
||||||
|
{{ $appVersion := .Chart.AppVersion | quote }}
|
||||||
|
{{ $releaseCertificate := .Release.Service }}
|
||||||
|
{{ $releaseName := .Release.Name }}
|
||||||
|
{{- range $ingress := .Values.frontend.ingresses }}
|
||||||
|
{{- if not $ingress.tls.exists }}
|
||||||
|
---
|
||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: {{ $ingress.name }}
|
||||||
|
namespace: {{ $namespace }}
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/version: {{ $appVersion }}
|
||||||
|
app.kubernetes.io/name: {{ $ingress.name | quote }}
|
||||||
|
app.kubernetes.io/managed-by: {{ $releaseCertificate }}
|
||||||
|
app.kubernetes.io/instance: {{ $releaseName }}
|
||||||
|
spec:
|
||||||
|
commonName: {{ $ingress.host }}
|
||||||
|
dnsNames:
|
||||||
|
- {{ $ingress.host }}
|
||||||
|
issuerRef:
|
||||||
|
name: {{ $ingress.tls.issuerRef.name }}
|
||||||
|
kind: {{ $ingress.tls.issuerRef.kind }}
|
||||||
|
secretName: {{ $ingress.tls.name }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
@ -0,0 +1,98 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||||
|
app.kubernetes.io/name: "frontend"
|
||||||
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
name: "frontend"
|
||||||
|
namespace: {{ .Release.Namespace | quote }}
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: "frontend"
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||||
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||||
|
replicas: {{ .Values.frontend.replicas }}
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||||
|
app.kubernetes.io/name: "frontend"
|
||||||
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: "frontend"
|
||||||
|
image: "{{ coalesce .Values.frontend.image.registry .Values.global.registry "docker.io"}}/{{ coalesce .Values.frontend.image.repository .Values.global.repository }}/{{ .Values.frontend.image.name }}:{{ .Values.frontend.image.tag | default "latest" }}"
|
||||||
|
imagePullPolicy: {{ .Values.frontend.image.imagePullPolicy | default "IfNotPresent" }}
|
||||||
|
ports:
|
||||||
|
{{- range $port := .Values.frontend.ports }}
|
||||||
|
- containerPort: {{ $port.containerPort }}
|
||||||
|
name: {{ $port.name }}
|
||||||
|
protocol: {{ $port.protocol }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.frontend.resources }}
|
||||||
|
resources:
|
||||||
|
{{- toYaml .Values.frontend.resources | nindent 12 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.frontend.probes }}
|
||||||
|
{{- if and (.Values.frontend.probes.liveness) (eq .Values.frontend.probes.liveness.type "httpGet") }}
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: {{ .Values.frontend.probes.liveness.config.path }}
|
||||||
|
port: {{ .Values.frontend.probes.liveness.config.port }}
|
||||||
|
{{- if .Values.frontend.probes.liveness.config.initialDelaySeconds }}
|
||||||
|
initialDelaySeconds: {{ .Values.frontend.probes.liveness.config.initialDelaySeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.frontend.probes.liveness.config.periodSeconds }}
|
||||||
|
periodSeconds: {{ .Values.frontend.probes.liveness.config.periodSeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.frontend.probes.liveness.config.timeoutSeconds }}
|
||||||
|
timeoutSeconds: {{ .Values.frontend.probes.liveness.config.timeoutSeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.frontend.probes.liveness.config.successThreshold }}
|
||||||
|
successThreshold: {{ .Values.frontend.probes.liveness.config.successThreshold }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.frontend.probes.liveness.config.failureThreshold }}
|
||||||
|
failureThreshold: {{ .Values.frontend.probes.liveness.config.failureThreshold }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.frontend.probes.liveness.config.terminationGracePeriodSeconds }}
|
||||||
|
terminationGracePeriodSeconds: {{ .Values.frontend.probes.liveness.config.terminationGracePeriodSeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if and (.Values.frontend.probes.readiness) (eq .Values.frontend.probes.readiness.type "httpGet") }}
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: {{ .Values.frontend.probes.readiness.config.path }}
|
||||||
|
port: {{ .Values.frontend.probes.readiness.config.port }}
|
||||||
|
{{- if .Values.frontend.probes.readiness.config.initialDelaySeconds }}
|
||||||
|
initialDelaySeconds: {{ .Values.frontend.probes.readiness.config.initialDelaySeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.frontend.probes.readiness.config.periodSeconds }}
|
||||||
|
periodSeconds: {{ .Values.frontend.probes.readiness.config.periodSeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.frontend.probes.readiness.config.timeoutSeconds }}
|
||||||
|
timeoutSeconds: {{ .Values.frontend.probes.readiness.config.timeoutSeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.frontend.probes.readiness.config.successThreshold }}
|
||||||
|
successThreshold: {{ .Values.frontend.probes.readiness.config.successThreshold }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.frontend.probes.readiness.config.failureThreshold }}
|
||||||
|
failureThreshold: {{ .Values.frontend.probes.readiness.config.failureThreshold }}
|
||||||
|
{{- end }}:%
|
||||||
|
{{- if .Values.frontend.probes.readiness.config.terminationGracePeriodSeconds }}
|
||||||
|
terminationGracePeriodSeconds: {{ .Values.frontend.probes.readiness.config.terminationGracePeriodSeconds }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end}}
|
||||||
|
env:
|
||||||
|
{{- range $key, $value := .Values.frontend.configs }}
|
||||||
|
- name: {{ $key | snakecase | upper }}
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: frontend-config
|
||||||
|
key: {{ $key | snakecase | upper }}
|
||||||
|
{{- end }}
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: frontend-config
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
TZ: {{ .Values.frontend.configs.tz | b64enc | quote }}
|
||||||
|
FRONTEND_PORT: {{ .Values.frontend.configs.frontendPort | toString | b64enc }}
|
||||||
|
FREELEAPS_CHAT_ENDPOINT: {{ .Values.frontend.configs.freeleapsChatEndpoint | b64enc | quote }}
|
||||||
|
FREELEAPS_BACKEND_ENDPOINT: {{ .Values.frontend.configs.freeleapsBackendEndpoint | b64enc | quote }}
|
||||||
36
freeleaps/helm-pkg/frontend/templates/frontend/ingress.yaml
Normal file
36
freeleaps/helm-pkg/frontend/templates/frontend/ingress.yaml
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
{{ $namespace := .Release.Namespace }}
|
||||||
|
{{ $appVersion := .Chart.AppVersion | quote }}
|
||||||
|
{{ $releaseIngress := .Release.Service }}
|
||||||
|
{{ $releaseName := .Release.Name }}
|
||||||
|
{{- range $ingress := .Values.frontend.ingresses }}
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: {{ $ingress.name }}
|
||||||
|
namespace: {{ $namespace }}
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/version: {{ $appVersion }}
|
||||||
|
app.kubernetes.io/name: {{ $ingress.name | quote }}
|
||||||
|
app.kubernetes.io/managed-by: {{ $releaseIngress }}
|
||||||
|
app.kubernetes.io/instance: {{ $releaseName }}
|
||||||
|
spec:
|
||||||
|
{{- if $ingress.class }}
|
||||||
|
ingressClassName: {{ $ingress.class }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if $ingress.tls }}
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- {{ $ingress.host }}
|
||||||
|
{{- if $ingress.tls.exists }}
|
||||||
|
secretName: {{ $ingress.tls.secretRef.name }}
|
||||||
|
{{- else }}
|
||||||
|
secretName: {{ $ingress.tls.name }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
rules:
|
||||||
|
- host: {{ $ingress.host }}
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
{{- toYaml $ingress.rules | nindent 10 }}
|
||||||
|
{{- end }}
|
||||||
26
freeleaps/helm-pkg/frontend/templates/frontend/service.yaml
Normal file
26
freeleaps/helm-pkg/frontend/templates/frontend/service.yaml
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{{ $namespace := .Release.Namespace }}
|
||||||
|
{{ $appVersion := .Chart.AppVersion | quote }}
|
||||||
|
{{ $releaseService := .Release.Service }}
|
||||||
|
{{ $releaseName := .Release.Name }}
|
||||||
|
{{- range $service := .Values.frontend.services }}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: {{ $service.name }}
|
||||||
|
namespace: {{ $namespace }}
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/version: {{ $appVersion }}
|
||||||
|
app.kubernetes.io/name: {{ $service.name | quote }}
|
||||||
|
app.kubernetes.io/managed-by: {{ $releaseService }}
|
||||||
|
app.kubernetes.io/instance: {{ $releaseName }}
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: {{ $service.port }}
|
||||||
|
targetPort: {{ $service.targetPort }}
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/version: {{ $appVersion }}
|
||||||
|
app.kubernetes.io/name: "frontend"
|
||||||
|
app.kubernetes.io/managed-by: {{ $releaseService }}
|
||||||
|
app.kubernetes.io/instance: {{ $releaseName }}
|
||||||
|
{{- end }}
|
||||||
@ -0,0 +1,58 @@
|
|||||||
|
global:
|
||||||
|
registry: docker.io
|
||||||
|
repository: freeleaps
|
||||||
|
nodeSelector: {}
|
||||||
|
frontend:
|
||||||
|
replicas: 1
|
||||||
|
image:
|
||||||
|
registry:
|
||||||
|
repository: freeleaps
|
||||||
|
name: frontend
|
||||||
|
tag: 1.0.0
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 8080
|
||||||
|
protocol: TCP
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: "0.5"
|
||||||
|
memory: "512Mi"
|
||||||
|
limits:
|
||||||
|
cpu: "1"
|
||||||
|
memory: "1Gi"
|
||||||
|
# FIXME: Wait until the developers implements the probes APIs
|
||||||
|
probes: {}
|
||||||
|
services:
|
||||||
|
- name: frontend-service
|
||||||
|
type: ClusterIP
|
||||||
|
port: 8080
|
||||||
|
targetPort: 8080
|
||||||
|
# Defaults to {}, which means doesn't have any ingress
|
||||||
|
ingresses:
|
||||||
|
- name: frontend-ingress
|
||||||
|
host: alpha.freeleaps.mathmast.com
|
||||||
|
class: nginx
|
||||||
|
rules:
|
||||||
|
- path: /
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: frontend-service
|
||||||
|
port:
|
||||||
|
number: 8080
|
||||||
|
tls:
|
||||||
|
exists: false
|
||||||
|
issuerRef:
|
||||||
|
name: mathmast-dot-com
|
||||||
|
kind: ClusterIssuer
|
||||||
|
name: alpha.freeleaps.mathmast.com-cert
|
||||||
|
configs:
|
||||||
|
# TZ
|
||||||
|
tz: "UTC"
|
||||||
|
# FRONTEND_PORT
|
||||||
|
frontendPort: 8080
|
||||||
|
# FREELEAPS_CHAT_ENDPOINT
|
||||||
|
freeleapsChatEndpoint: "https://alpha.chat.freeleaps.mathmast.com"
|
||||||
|
# FREELEAPS_BACKEND_ENDPOINT
|
||||||
|
freeleapsBackendEndpoint: "https://alpha.api.freeleaps.mathmast.com"
|
||||||
41
freeleaps/helm-pkg/frontend/values.yaml
Normal file
41
freeleaps/helm-pkg/frontend/values.yaml
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
global:
|
||||||
|
registry: docker.io
|
||||||
|
repository: freeleaps
|
||||||
|
nodeSelector: {}
|
||||||
|
frontend:
|
||||||
|
replicas: 1
|
||||||
|
image:
|
||||||
|
registry:
|
||||||
|
repository: freeleaps
|
||||||
|
name: frontend
|
||||||
|
tag: 1.0.0
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 8080
|
||||||
|
protocol: TCP
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: "0.5"
|
||||||
|
memory: "512Mi"
|
||||||
|
limits:
|
||||||
|
cpu: "1"
|
||||||
|
memory: "1Gi"
|
||||||
|
# FIXME: Wait until the developers implements the probes APIs
|
||||||
|
probes: {}
|
||||||
|
services:
|
||||||
|
- name: frontend-service
|
||||||
|
type: ClusterIP
|
||||||
|
port: 8080
|
||||||
|
targetPort: 8080
|
||||||
|
# Defaults to {}, which means doesn't have any ingress
|
||||||
|
ingresses: {}
|
||||||
|
configs:
|
||||||
|
# TZ
|
||||||
|
tz: "America/Settle"
|
||||||
|
# FRONTEND_PORT
|
||||||
|
frontendPort: 8080
|
||||||
|
# FREELEAPS_CHAT_ENDPOINT
|
||||||
|
freeleapsChatEndpoint: ""
|
||||||
|
# FREELEAPS_BACKEND_ENDPOINT
|
||||||
|
freeleapsBackendEndpoint: ""
|
||||||
Loading…
Reference in New Issue
Block a user