mirror of
https://github.com/sourcebot-dev/sourcebot.git
synced 2025-12-11 20:05:25 +00:00
chore: Move helm chart to seperate repo (#549)
This commit is contained in:
parent
9c8224e39f
commit
eeb6b73a64
15 changed files with 3 additions and 1205 deletions
3
.vscode/sourcebot.code-workspace
vendored
3
.vscode/sourcebot.code-workspace
vendored
|
|
@ -5,6 +5,9 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "../vendor/zoekt"
|
"path": "../vendor/zoekt"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "../../sourcebot-helm-chart"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"settings": {
|
"settings": {
|
||||||
|
|
|
||||||
|
|
@ -1,23 +0,0 @@
|
||||||
# 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/
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
dependencies:
|
|
||||||
- name: postgresql
|
|
||||||
repository: https://charts.bitnami.com/bitnami
|
|
||||||
version: 16.7.27
|
|
||||||
digest: sha256:ab3541612e8857c2d08d46f83cab79fa87b6ae6148e2d64d7d2b06729a520ce1
|
|
||||||
generated: "2025-09-25T12:57:56.528976+01:00"
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
apiVersion: v2
|
|
||||||
type: application
|
|
||||||
name: sourcebot
|
|
||||||
version: 0.1.0
|
|
||||||
appVersion: v4.5.1
|
|
||||||
description: The open source Sourcegraph alternative. Sourcebot gives you a powerful interface to search though all your repos and branches across multiple code hosts.
|
|
||||||
icon: https://raw.githubusercontent.com/sourcebot-dev/sourcebot/ebf6721836b8f878d42bb8c1e844bdc7867a74fe/packages/web/public/logo_512.png
|
|
||||||
keywords:
|
|
||||||
- code-search
|
|
||||||
- code-intelligence
|
|
||||||
- sourcebot
|
|
||||||
home: https://sourcebot.dev/
|
|
||||||
sources:
|
|
||||||
- https://github.com/sourcebot-dev/sourcebot
|
|
||||||
- https://github.com/sourcebot-dev/sourcebot/kubernetes/chart
|
|
||||||
dependencies:
|
|
||||||
- name: postgresql
|
|
||||||
version: 16.7.27
|
|
||||||
repository: https://charts.bitnami.com/bitnami
|
|
||||||
condition: postgresql.enabled
|
|
||||||
|
|
@ -1,92 +0,0 @@
|
||||||
# sourcebot
|
|
||||||
|
|
||||||
  
|
|
||||||
|
|
||||||
The open source Sourcegraph alternative. Sourcebot gives you a powerful interface to search though all your repos and branches across multiple code hosts.
|
|
||||||
|
|
||||||
**Homepage:** <https://sourcebot.dev/>
|
|
||||||
|
|
||||||
## Source Code
|
|
||||||
|
|
||||||
* <https://github.com/sourcebot-dev/sourcebot>
|
|
||||||
* <https://github.com/sourcebot-dev/sourcebot/kubernetes/chart>
|
|
||||||
|
|
||||||
## Requirements
|
|
||||||
|
|
||||||
| Repository | Name | Version |
|
|
||||||
|------------|------|---------|
|
|
||||||
| https://charts.bitnami.com/bitnami | postgresql | 16.7.27 |
|
|
||||||
|
|
||||||
## Values
|
|
||||||
|
|
||||||
| Key | Type | Default | Description |
|
|
||||||
|-----|------|---------|-------------|
|
|
||||||
| additionalLabels | object | `{}` | Add extra labels to all resources. |
|
|
||||||
| affinity | object | `{}` | Set affinity rules for pod scheduling. Defaults to soft anti-affinity if not set. See: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/ |
|
|
||||||
| args | list | `[]` | Override the default arguments of the container. |
|
|
||||||
| command | list | `[]` | Override the default command of the container. |
|
|
||||||
| config | object | `{"$schema":"https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/schemas/v3/index.json","connections":{},"settings":{}}` | Configure Sourcebot-specific application settings. |
|
|
||||||
| containerSecurityContext | object | `{}` | Set the container-level security context. |
|
|
||||||
| database | object | `{}` | Configure the database secret by providing database.secretName and database.secretKey to use a Kubernetes secret. |
|
|
||||||
| envSecrets | list | `[]` | Set environment variables from Kubernetes secrets. |
|
|
||||||
| envs | list | `[]` | Set additional environment variables. |
|
|
||||||
| fullnameOverride | string | `""` | Override the full name of the chart. |
|
|
||||||
| image | object | `{"pullPolicy":"IfNotPresent","repository":"ghcr.io/sourcebot-dev/sourcebot"}` | Configure the container image. |
|
|
||||||
| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy. |
|
|
||||||
| image.repository | string | `"ghcr.io/sourcebot-dev/sourcebot"` | Container image repository. |
|
|
||||||
| imagePullSecrets | list | `[]` | Configure image pull secrets for private registries. |
|
|
||||||
| ingress | object | `{"annotations":{},"className":"","enabled":false,"hosts":[],"tls":[]}` | Configure ingress for Sourcebot. |
|
|
||||||
| ingress.annotations | object | `{}` | Ingress annotations. |
|
|
||||||
| ingress.className | string | `""` | Ingress class name. |
|
|
||||||
| ingress.enabled | bool | `false` | Enable or disable ingress. |
|
|
||||||
| ingress.hosts | list | `[]` | List of hostnames and paths for ingress rules. The first host will be used as the default host. |
|
|
||||||
| ingress.tls | list | `[]` | TLS settings for ingress. |
|
|
||||||
| initContainers | list | `[]` | Configure init containers to run before the main container. |
|
|
||||||
| license | object | `{}` | Configure the enterprise license key secret by providing license.secretName and license.secretKey to use a Kubernetes secret. |
|
|
||||||
| livenessProbe | object | `{"failureThreshold":5,"httpGet":{"path":"/","port":"http"},"initialDelaySeconds":10,"periodSeconds":10}` | Liveness probe to check if the container is alive. |
|
|
||||||
| livenessProbe.failureThreshold | int | `5` | Number of consecutive failures before marking the container as unhealthy. |
|
|
||||||
| livenessProbe.httpGet | object | `{"path":"/","port":"http"}` | Http GET request to check if the container is alive. |
|
|
||||||
| livenessProbe.httpGet.path | string | `"/"` | Path to check. |
|
|
||||||
| livenessProbe.httpGet.port | string | `"http"` | Port to check. |
|
|
||||||
| livenessProbe.initialDelaySeconds | int | `10` | Initial delay before the first probe. |
|
|
||||||
| livenessProbe.periodSeconds | int | `10` | Frequency of the probe. |
|
|
||||||
| nameOverride | string | `""` | Override the name of the chart. |
|
|
||||||
| nodeSelector | object | `{}` | Set node selector constraints. See: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector |
|
|
||||||
| podAnnotations | object | `{}` | Add annotations to the pod metadata. |
|
|
||||||
| podDisruptionBudget | object | `{"enabled":true,"maxUnavailable":1,"minAvailable":1}` | Configure Pod Disruption Budget. |
|
|
||||||
| podDisruptionBudget.enabled | bool | `true` | Enable Pod Disruption Budget. |
|
|
||||||
| podDisruptionBudget.maxUnavailable | int | `1` | Maximum number of pods that can be unavailable. |
|
|
||||||
| podDisruptionBudget.minAvailable | int | `1` | Minimum number of pods that must be available. |
|
|
||||||
| podSecurityContext | object | `{}` | Set the pod-level security context. |
|
|
||||||
| postgresql | object | `{"enabled":false}` | Configure the Bitnami PostgreSQL sub-chart. See: https://artifacthub.io/packages/helm/bitnami/postgresql |
|
|
||||||
| priorityClassName | string | `""` | Set the priority class name for pods. See: https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/ |
|
|
||||||
| readinessProbe | object | `{"failureThreshold":5,"httpGet":{"path":"/","port":"http"},"initialDelaySeconds":10,"periodSeconds":10}` | Readiness probe to check if the container is ready to serve traffic. |
|
|
||||||
| readinessProbe.failureThreshold | int | `5` | Number of consecutive failures before marking the container as not ready. |
|
|
||||||
| readinessProbe.httpGet | object | `{"path":"/","port":"http"}` | Http GET request to check if the container is ready. |
|
|
||||||
| readinessProbe.httpGet.path | string | `"/"` | Path to check. |
|
|
||||||
| readinessProbe.httpGet.port | string | `"http"` | Port to check. |
|
|
||||||
| readinessProbe.initialDelaySeconds | int | `10` | Initial delay before the first probe. |
|
|
||||||
| readinessProbe.periodSeconds | int | `10` | Frequency of the probe. |
|
|
||||||
| redis | object | `{}` | Configure the Redis secret by providing redis.secretName and redis.secretKey to use a Kubernetes secret. |
|
|
||||||
| replicaCount | int | `1` | Set the number of replicas for the deployment. |
|
|
||||||
| resources | object | `{}` | Configure resource requests and limits for the container. |
|
|
||||||
| service | object | `{"annotations":{},"containerPort":3000,"port":3000,"type":"ClusterIP"}` | Configure the Sourcebot Kubernetes service. |
|
|
||||||
| service.annotations | object | `{}` | Service annotations. |
|
|
||||||
| service.containerPort | int | `3000` | Internal container port. |
|
|
||||||
| service.port | int | `3000` | External service port. |
|
|
||||||
| service.type | string | `"ClusterIP"` | Type of the Kubernetes service (e.g., ClusterIP, NodePort, LoadBalancer). |
|
|
||||||
| serviceAccount | object | `{"annotations":{},"automount":false,"create":true,"name":""}` | Configure the ServiceAccount. |
|
|
||||||
| serviceAccount.annotations | object | `{}` | Add annotations to the ServiceAccount. |
|
|
||||||
| serviceAccount.automount | bool | `false` | Enable or disable automatic ServiceAccount mounting. |
|
|
||||||
| serviceAccount.create | bool | `true` | Create a new ServiceAccount. |
|
|
||||||
| serviceAccount.name | string | `""` | Use an existing ServiceAccount (if set). |
|
|
||||||
| startupProbe | object | `{"failureThreshold":30,"httpGet":{"path":"/","port":"http"},"periodSeconds":30}` | Startup probe to check if the container has started successfully. |
|
|
||||||
| startupProbe.failureThreshold | int | `30` | Number of seconds to wait before starting the probe. |
|
|
||||||
| startupProbe.httpGet | object | `{"path":"/","port":"http"}` | Http GET request to check if the container has started. |
|
|
||||||
| startupProbe.httpGet.path | string | `"/"` | Path to check. |
|
|
||||||
| startupProbe.httpGet.port | string | `"http"` | Port to check. |
|
|
||||||
| startupProbe.periodSeconds | int | `30` | Initial delay before the first probe. |
|
|
||||||
| tolerations | list | `[]` | Set tolerations for pod scheduling. See: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ |
|
|
||||||
| volumeMounts | list | `[]` | Define volume mounts for the container. See: https://kubernetes.io/docs/concepts/storage/volumes/ |
|
|
||||||
| volumes | list | `[]` | Define additional volumes. See: https://kubernetes.io/docs/concepts/storage/volumes/ |
|
|
||||||
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
1. Get the application URL by running these commands:
|
|
||||||
{{- if $.Values.ingress.enabled }}
|
|
||||||
{{- range $host := $.Values.ingress.hosts }}
|
|
||||||
{{- range .paths }}
|
|
||||||
http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
{{- else if contains "NodePort" $.Values.service.type }}
|
|
||||||
export NODE_PORT=$(kubectl get --namespace {{ $.Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "sourcebot.fullname" $ }})
|
|
||||||
export NODE_IP=$(kubectl get nodes --namespace {{ $.Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
|
||||||
echo http://$NODE_IP:$NODE_PORT
|
|
||||||
{{- else if contains "LoadBalancer" $.Values.service.type }}
|
|
||||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
|
||||||
You can watch its status by running 'kubectl get --namespace {{ $.Release.Namespace }} svc -w {{ include "sourcebot.fullname" $ }}'
|
|
||||||
export SERVICE_IP=$(kubectl get svc --namespace {{ $.Release.Namespace }} {{ include "sourcebot.fullname" $ }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
|
|
||||||
echo http://$SERVICE_IP:{{ $.Values.service.port }}
|
|
||||||
{{- else if contains "ClusterIP" $.Values.service.type }}
|
|
||||||
export POD_NAME=$(kubectl get pods --namespace {{ $.Release.Namespace }} -l "app.kubernetes.io/name={{ include "sourcebot.name" $ }},app.kubernetes.io/instance={{ $.Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
|
|
||||||
export CONTAINER_PORT=$(kubectl get pod --namespace {{ $.Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
|
|
||||||
echo "Visit http://127.0.0.1:3000 to use Sourcebot after forwarding"
|
|
||||||
kubectl --namespace {{ $.Release.Namespace }} port-forward $POD_NAME 3000:$CONTAINER_PORT
|
|
||||||
{{- end }}
|
|
||||||
|
|
@ -1,78 +0,0 @@
|
||||||
{{/*
|
|
||||||
Expand the name of the chart.
|
|
||||||
*/}}
|
|
||||||
{{- define "sourcebot.name" -}}
|
|
||||||
{{- default $.Chart.Name $.Values.nameOverride | trunc 63 | trimSuffix "-" }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
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 "sourcebot.fullname" -}}
|
|
||||||
{{- if $.Values.fullnameOverride }}
|
|
||||||
{{- $.Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
|
|
||||||
{{- else }}
|
|
||||||
{{- $name := default $.Chart.Name $.Values.nameOverride }}
|
|
||||||
{{- if contains $name $.Release.Name }}
|
|
||||||
{{- $.Release.Name | trunc 63 | trimSuffix "-" }}
|
|
||||||
{{- else }}
|
|
||||||
{{- printf "%s-%s" $.Release.Name $name | trunc 63 | trimSuffix "-" }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Create chart name and version as used by the chart label.
|
|
||||||
*/}}
|
|
||||||
{{- define "sourcebot.chart" -}}
|
|
||||||
{{- printf "%s-%s" $.Chart.Name $.Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Common labels
|
|
||||||
*/}}
|
|
||||||
{{- define "sourcebot.labels" -}}
|
|
||||||
helm.sh/chart: {{ include "sourcebot.chart" $ }}
|
|
||||||
{{ include "sourcebot.selectorLabels" $ }}
|
|
||||||
{{- if $.Chart.AppVersion }}
|
|
||||||
app.kubernetes.io/version: {{ $.Chart.AppVersion | quote }}
|
|
||||||
{{- end }}
|
|
||||||
app.kubernetes.io/managed-by: {{ $.Release.Service }}
|
|
||||||
{{- with $.Values.additionalLabels }}
|
|
||||||
{{ toYaml . }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Selector labels
|
|
||||||
*/}}
|
|
||||||
{{- define "sourcebot.selectorLabels" -}}
|
|
||||||
app.kubernetes.io/name: {{ include "sourcebot.name" $ }}
|
|
||||||
app.kubernetes.io/instance: {{ $.Release.Name }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Create the image to use for the container.
|
|
||||||
*/}}
|
|
||||||
{{- define "sourcebot.image" -}}
|
|
||||||
{{- if $.Values.image.digest -}}
|
|
||||||
"{{ $.Values.image.repository }}@{{ $.Values.image.digest }}"
|
|
||||||
{{- else if $.Values.image.tag -}}
|
|
||||||
"{{ $.Values.image.repository }}:{{ $.Values.image.tag }}"
|
|
||||||
{{- else -}}
|
|
||||||
"{{ $.Values.image.repository }}:{{ $.Chart.AppVersion }}"
|
|
||||||
{{- end -}}
|
|
||||||
{{- end }}
|
|
||||||
|
|
||||||
{{/*
|
|
||||||
Create the name of the service account to use
|
|
||||||
*/}}
|
|
||||||
{{- define "sourcebot.serviceAccountName" -}}
|
|
||||||
{{- if $.Values.serviceAccount.create }}
|
|
||||||
{{- default (include "sourcebot.fullname" $) $.Values.serviceAccount.name }}
|
|
||||||
{{- else }}
|
|
||||||
{{- default "default" $.Values.serviceAccount.name }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ConfigMap
|
|
||||||
metadata:
|
|
||||||
name: {{ include "sourcebot.fullname" $ }}
|
|
||||||
labels:
|
|
||||||
{{- include "sourcebot.labels" $ | nindent 4 }}
|
|
||||||
data:
|
|
||||||
config.json: |
|
|
||||||
{{- toJson $.Values.config | nindent 4 }}
|
|
||||||
|
|
@ -1,142 +0,0 @@
|
||||||
---
|
|
||||||
apiVersion: apps/v1
|
|
||||||
kind: Deployment
|
|
||||||
metadata:
|
|
||||||
name: {{ include "sourcebot.fullname" $ }}
|
|
||||||
labels:
|
|
||||||
{{- include "sourcebot.labels" $ | nindent 4 }}
|
|
||||||
spec:
|
|
||||||
replicas: {{ $.Values.replicaCount }}
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
{{- include "sourcebot.selectorLabels" $ | nindent 6 }}
|
|
||||||
template:
|
|
||||||
metadata:
|
|
||||||
{{- with $.Values.podAnnotations }}
|
|
||||||
annotations:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
labels:
|
|
||||||
{{- include "sourcebot.labels" $ | nindent 8 }}
|
|
||||||
{{- with $.Values.podLabels }}
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
spec:
|
|
||||||
{{- with $.Values.imagePullSecrets }}
|
|
||||||
imagePullSecrets:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
serviceAccountName: {{ include "sourcebot.serviceAccountName" $ }}
|
|
||||||
{{- with $.Values.podSecurityContext }}
|
|
||||||
securityContext:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with $.Values.initContainers }}
|
|
||||||
initContainers:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
containers:
|
|
||||||
- name: {{ .Chart.Name }}
|
|
||||||
{{- with $.Values.containerSecurityContext }}
|
|
||||||
securityContext:
|
|
||||||
{{- toYaml . | nindent 12 }}
|
|
||||||
{{- end }}
|
|
||||||
image: {{ include "sourcebot.image" $ }}
|
|
||||||
imagePullPolicy: {{ $.Values.image.pullPolicy }}
|
|
||||||
{{- with $.Values.command }}
|
|
||||||
command: {{ toYaml . | nindent 12 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with $.Values.args }}
|
|
||||||
args: {{ toYaml . | nindent 12 }}
|
|
||||||
{{- end }}
|
|
||||||
env:
|
|
||||||
{{- if and $.Values.ingress.enabled (gt len ($.Values.ingress.hosts) 0) }}
|
|
||||||
- name: AUTH_URL
|
|
||||||
value: {{ (index $.Values.ingress.hosts 0).host | printf "https://%s" }}
|
|
||||||
{{- end }}
|
|
||||||
- name: CONFIG_PATH
|
|
||||||
value: /etc/sourcebot/config.json
|
|
||||||
{{- if $.Values.license }}
|
|
||||||
- name: SOURCEBOT_EE_LICENSE_KEY
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: {{ $.Values.license.secretName }}
|
|
||||||
key: {{ $.Values.license.secretKey }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if $.Values.database }}
|
|
||||||
- name: DATABASE_URL
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: {{ $.Values.database.secretName }}
|
|
||||||
key: {{ $.Values.database.secretKey }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if $.Values.redis }}
|
|
||||||
- name: REDIS_URL
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: {{ $.Values.redis.secretName }}
|
|
||||||
key: {{ $.Values.redis.secretKey }}
|
|
||||||
{{- end }}
|
|
||||||
{{- range $.Values.envSecrets }}
|
|
||||||
- name: {{ .envName }}
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: {{ .secretName }}
|
|
||||||
key: {{ .secretKey }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with $.Values.envs }}
|
|
||||||
{{- toYaml . | nindent 12 }}
|
|
||||||
{{- end }}
|
|
||||||
ports:
|
|
||||||
- name: http
|
|
||||||
containerPort: {{ $.Values.service.containerPort }}
|
|
||||||
protocol: TCP
|
|
||||||
{{- with $.Values.livenessProbe }}
|
|
||||||
livenessProbe:
|
|
||||||
{{- toYaml . | nindent 12 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with $.Values.readinessProbe }}
|
|
||||||
readinessProbe:
|
|
||||||
{{- toYaml . | nindent 12 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with $.Values.startupProbe }}
|
|
||||||
startupProbe:
|
|
||||||
{{- toYaml . | nindent 12 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with $.Values.resources }}
|
|
||||||
resources:
|
|
||||||
{{- toYaml . | nindent 12 }}
|
|
||||||
{{- end }}
|
|
||||||
volumeMounts:
|
|
||||||
- name: sourcebot-config
|
|
||||||
mountPath: /etc/sourcebot/config.json
|
|
||||||
subPath: config.json
|
|
||||||
readOnly: true
|
|
||||||
{{- with $.Values.volumeMounts }}
|
|
||||||
{{- toYaml . | nindent 12 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with $.Values.priorityClassName }}
|
|
||||||
priorityClassName: {{ . }}
|
|
||||||
{{- end }}
|
|
||||||
volumes:
|
|
||||||
- name: sourcebot-config
|
|
||||||
configMap:
|
|
||||||
name: {{ include "sourcebot.fullname" $ }}
|
|
||||||
items:
|
|
||||||
- key: config.json
|
|
||||||
path: config.json
|
|
||||||
{{- with $.Values.volumes }}
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with $.Values.nodeSelector }}
|
|
||||||
nodeSelector:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with $.Values.affinity }}
|
|
||||||
affinity:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
{{- with $.Values.tolerations }}
|
|
||||||
tolerations:
|
|
||||||
{{- toYaml . | nindent 8 }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
@ -1,44 +0,0 @@
|
||||||
{{- if $.Values.ingress.enabled -}}
|
|
||||||
---
|
|
||||||
apiVersion: networking.k8s.io/v1
|
|
||||||
kind: Ingress
|
|
||||||
metadata:
|
|
||||||
name: {{ include "sourcebot.fullname" $ }}
|
|
||||||
labels:
|
|
||||||
{{- include "sourcebot.labels" $ | nindent 4 }}
|
|
||||||
{{- with $.Values.ingress.annotations }}
|
|
||||||
annotations:
|
|
||||||
{{- toYaml . | nindent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
spec:
|
|
||||||
{{- with $.Values.ingress.className }}
|
|
||||||
ingressClassName: {{ . }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if $.Values.ingress.tls }}
|
|
||||||
tls:
|
|
||||||
{{- range $.Values.ingress.tls }}
|
|
||||||
- hosts:
|
|
||||||
{{- range .hosts }}
|
|
||||||
- {{ . | quote }}
|
|
||||||
{{- end }}
|
|
||||||
secretName: {{ .secretName }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
rules:
|
|
||||||
{{- range $.Values.ingress.hosts }}
|
|
||||||
- host: {{ .host | quote }}
|
|
||||||
http:
|
|
||||||
paths:
|
|
||||||
{{- range .paths }}
|
|
||||||
- path: {{ .path }}
|
|
||||||
{{- with .pathType }}
|
|
||||||
pathType: {{ . }}
|
|
||||||
{{- end }}
|
|
||||||
backend:
|
|
||||||
service:
|
|
||||||
name: {{ include "sourcebot.fullname" $ }}
|
|
||||||
port:
|
|
||||||
number: {{ $.Values.service.port }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
{{- if and $.Values.podDisruptionBudget.enabled (gt (int $.Values.replicaCount) 1) }}
|
|
||||||
apiVersion: {{ include "common.capabilities.policy.apiVersion" . }}
|
|
||||||
kind: PodDisruptionBudget
|
|
||||||
metadata:
|
|
||||||
name: {{ include "sourcebot.fullname" $ }}
|
|
||||||
labels:
|
|
||||||
{{- include "sourcebot.labels" $ | nindent 4 }}
|
|
||||||
spec:
|
|
||||||
{{- if $.Values.podDisruptionBudget.minAvailable }}
|
|
||||||
minAvailable: {{ $.Values.podDisruptionBudget.minAvailable }}
|
|
||||||
{{- end }}
|
|
||||||
{{- if $.Values.podDisruptionBudget.maxUnavailable }}
|
|
||||||
maxUnavailable: {{ $.Values.podDisruptionBudget.maxUnavailable }}
|
|
||||||
{{- end }}
|
|
||||||
selector:
|
|
||||||
matchLabels:
|
|
||||||
{{- include "sourcebot.selectorLabels" $ | nindent 6 }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Service
|
|
||||||
metadata:
|
|
||||||
name: {{ include "sourcebot.fullname" $ }}
|
|
||||||
labels:
|
|
||||||
{{- include "sourcebot.labels" $ | nindent 4 }}
|
|
||||||
spec:
|
|
||||||
type: {{ $.Values.service.type }}
|
|
||||||
ports:
|
|
||||||
- port: {{ $.Values.service.port }}
|
|
||||||
targetPort: http
|
|
||||||
protocol: TCP
|
|
||||||
name: http
|
|
||||||
selector:
|
|
||||||
{{- include "sourcebot.selectorLabels" $ | nindent 4 }}
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
{{- if $.Values.serviceAccount.create -}}
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ServiceAccount
|
|
||||||
metadata:
|
|
||||||
name: {{ include "sourcebot.serviceAccountName" . }}
|
|
||||||
labels:
|
|
||||||
{{- include "sourcebot.labels" . | nindent 4 }}
|
|
||||||
{{- with $.Values.serviceAccount.annotations }}
|
|
||||||
annotations:
|
|
||||||
{{- toYaml . | nindent 4 }}
|
|
||||||
{{- end }}
|
|
||||||
automountServiceAccountToken: {{ $.Values.serviceAccount.automount }}
|
|
||||||
{{- end }}
|
|
||||||
|
|
@ -1,460 +0,0 @@
|
||||||
{
|
|
||||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
||||||
"title": "Sourcebot Helm Chart Values Schema",
|
|
||||||
"additionalProperties": false,
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"nameOverride": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"fullnameOverride": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"replicaCount": {
|
|
||||||
"type": "integer",
|
|
||||||
"minimum": 1
|
|
||||||
},
|
|
||||||
"image": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"repository": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"tag": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"digest": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"pullPolicy": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"Always",
|
|
||||||
"IfNotPresent",
|
|
||||||
"Never"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"repository"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"imagePullSecrets": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"command": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"args": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"database": {
|
|
||||||
"type": "object"
|
|
||||||
},
|
|
||||||
"redis": {
|
|
||||||
"type": "object"
|
|
||||||
},
|
|
||||||
"license": {
|
|
||||||
"type": "object"
|
|
||||||
},
|
|
||||||
"envSecrets": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"secretName": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"secretKey": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"envName": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"secretName",
|
|
||||||
"secretKey",
|
|
||||||
"envName"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"envs": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"name": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"value": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"name",
|
|
||||||
"value"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"config": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"connections": {
|
|
||||||
"type": "object"
|
|
||||||
},
|
|
||||||
"settings": {
|
|
||||||
"type": "object"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"serviceAccount": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"create": {
|
|
||||||
"type": "boolean"
|
|
||||||
},
|
|
||||||
"name": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"annotations": {
|
|
||||||
"type": "object"
|
|
||||||
},
|
|
||||||
"automount": {
|
|
||||||
"type": "boolean"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"podSecurityContext": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"runAsUser": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"runAsGroup": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"runAsNonRoot": {
|
|
||||||
"type": "boolean"
|
|
||||||
},
|
|
||||||
"fsGroup": {
|
|
||||||
"type": "integer"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"containerSecurityContext": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"allowPrivilegeEscalation": {
|
|
||||||
"type": "boolean"
|
|
||||||
},
|
|
||||||
"privileged": {
|
|
||||||
"type": "boolean"
|
|
||||||
},
|
|
||||||
"readOnlyRootFilesystem": {
|
|
||||||
"type": "boolean"
|
|
||||||
},
|
|
||||||
"runAsUser": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"runAsGroup": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"capabilities": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"drop": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"seccompProfile": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"type": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"RuntimeDefault",
|
|
||||||
"Unconfined",
|
|
||||||
"Localhost"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"service": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"type": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"ClusterIP",
|
|
||||||
"NodePort",
|
|
||||||
"LoadBalancer",
|
|
||||||
"ExternalName"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"containerPort": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"port": {
|
|
||||||
"type": "integer"
|
|
||||||
},
|
|
||||||
"annotations": {
|
|
||||||
"type": "object"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ingress": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"enabled": {
|
|
||||||
"type": "boolean"
|
|
||||||
},
|
|
||||||
"className": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"annotations": {
|
|
||||||
"type": "object"
|
|
||||||
},
|
|
||||||
"hosts": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"host": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"paths": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"path": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"pathType": {
|
|
||||||
"type": "string",
|
|
||||||
"enum": [
|
|
||||||
"ImplementationSpecific",
|
|
||||||
"Exact",
|
|
||||||
"Prefix"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"tls": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"secretName": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"hosts": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"secretName",
|
|
||||||
"hosts"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"initContainers": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"name": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"image": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"args": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"resources": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"limits": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"cpu": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"memory": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"requests": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"cpu": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"memory": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"livenessProbe": {
|
|
||||||
"$ref": "#/definitions/probe"
|
|
||||||
},
|
|
||||||
"readinessProbe": {
|
|
||||||
"$ref": "#/definitions/probe"
|
|
||||||
},
|
|
||||||
"startupProbe": {
|
|
||||||
"$ref": "#/definitions/probe"
|
|
||||||
},
|
|
||||||
"volumes": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "object"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"volumeMounts": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"name": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"mountPath": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"readOnly": {
|
|
||||||
"type": "boolean"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"podDisruptionBudget": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"enabled": {
|
|
||||||
"type": "boolean"
|
|
||||||
},
|
|
||||||
"minAvailable": {
|
|
||||||
"type": [
|
|
||||||
"integer",
|
|
||||||
"string"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"maxUnavailable": {
|
|
||||||
"type": [
|
|
||||||
"integer",
|
|
||||||
"string"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"podAnnotations": {
|
|
||||||
"type": "object"
|
|
||||||
},
|
|
||||||
"additionalLabels": {
|
|
||||||
"type": "object"
|
|
||||||
},
|
|
||||||
"nodeSelector": {
|
|
||||||
"type": "object"
|
|
||||||
},
|
|
||||||
"tolerations": {
|
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"type": "object"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"affinity": {
|
|
||||||
"type": "object"
|
|
||||||
},
|
|
||||||
"priorityClassName": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"postgresql": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"enabled": {
|
|
||||||
"type": "boolean"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"enabled"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"definitions": {
|
|
||||||
"probe": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"httpGet": {
|
|
||||||
"type": "object",
|
|
||||||
"properties": {
|
|
||||||
"path": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"port": {
|
|
||||||
"type": [
|
|
||||||
"string",
|
|
||||||
"integer"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"required": [
|
|
||||||
"path",
|
|
||||||
"port"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"initialDelaySeconds": {
|
|
||||||
"type": "integer",
|
|
||||||
"minimum": 0
|
|
||||||
},
|
|
||||||
"periodSeconds": {
|
|
||||||
"type": "integer",
|
|
||||||
"minimum": 1
|
|
||||||
},
|
|
||||||
"timeoutSeconds": {
|
|
||||||
"type": "integer",
|
|
||||||
"minimum": 1
|
|
||||||
},
|
|
||||||
"successThreshold": {
|
|
||||||
"type": "integer",
|
|
||||||
"minimum": 1
|
|
||||||
},
|
|
||||||
"failureThreshold": {
|
|
||||||
"type": "integer",
|
|
||||||
"minimum": 1
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,260 +0,0 @@
|
||||||
# -- Sourcebot Helm Chart Values
|
|
||||||
|
|
||||||
# -- Override the name of the chart.
|
|
||||||
nameOverride: ""
|
|
||||||
|
|
||||||
# -- Override the full name of the chart.
|
|
||||||
fullnameOverride: ""
|
|
||||||
|
|
||||||
# -- Set the number of replicas for the deployment.
|
|
||||||
replicaCount: 1
|
|
||||||
|
|
||||||
# -- Configure the container image.
|
|
||||||
image:
|
|
||||||
# -- Container image repository.
|
|
||||||
repository: ghcr.io/sourcebot-dev/sourcebot
|
|
||||||
# -- Container image tag.
|
|
||||||
# tag: ""
|
|
||||||
# -- Container image digest (used instead of tag if set).
|
|
||||||
# digest: ""
|
|
||||||
# -- Image pull policy.
|
|
||||||
pullPolicy: IfNotPresent
|
|
||||||
|
|
||||||
# -- Configure image pull secrets for private registries.
|
|
||||||
imagePullSecrets: []
|
|
||||||
|
|
||||||
# -- Override the default command of the container.
|
|
||||||
command: []
|
|
||||||
|
|
||||||
# -- Override the default arguments of the container.
|
|
||||||
args: []
|
|
||||||
|
|
||||||
# -- Configure the database secret by providing database.secretName and database.secretKey to use a Kubernetes secret.
|
|
||||||
database: {}
|
|
||||||
# secretName: sourcebot-database-url
|
|
||||||
# secretKey: url
|
|
||||||
|
|
||||||
# -- Configure the Redis secret by providing redis.secretName and redis.secretKey to use a Kubernetes secret.
|
|
||||||
redis: {}
|
|
||||||
# secretName: sourcebot-redis-url
|
|
||||||
# secretKey: url
|
|
||||||
|
|
||||||
# -- Configure the enterprise license key secret by providing license.secretName and license.secretKey to use a Kubernetes secret.
|
|
||||||
license: {}
|
|
||||||
# secretName: sourcebot-ee-license-key
|
|
||||||
# secretKey: key
|
|
||||||
|
|
||||||
# -- Set environment variables from Kubernetes secrets.
|
|
||||||
envSecrets: []
|
|
||||||
# - secretName: sourcebot-github-token
|
|
||||||
# secretKey: token
|
|
||||||
# envName: GITHUB_TOKEN
|
|
||||||
|
|
||||||
# -- Set additional environment variables.
|
|
||||||
envs: []
|
|
||||||
# # Disable sourcebot telemetry.
|
|
||||||
# - name: SOURCEBOT_TELEMETRY_DISABLED
|
|
||||||
# value: "1"
|
|
||||||
|
|
||||||
# -- Configure Sourcebot-specific application settings.
|
|
||||||
config:
|
|
||||||
# Schema version of the Sourcebot configuration.
|
|
||||||
$schema: https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/schemas/v3/index.json
|
|
||||||
connections: {}
|
|
||||||
# github-repos:
|
|
||||||
# type: github
|
|
||||||
# token:
|
|
||||||
# env: GITHUB_TOKEN
|
|
||||||
# repos:
|
|
||||||
# - sourcebot/sourcebot
|
|
||||||
# - sourcebot/sourcebot-plugins
|
|
||||||
settings: {}
|
|
||||||
# reindexIntervalMs: 86400000
|
|
||||||
# enablePublicAccess: true
|
|
||||||
|
|
||||||
# -- Configure the ServiceAccount.
|
|
||||||
serviceAccount:
|
|
||||||
# -- Create a new ServiceAccount.
|
|
||||||
create: true
|
|
||||||
# -- Use an existing ServiceAccount (if set).
|
|
||||||
name: ""
|
|
||||||
# -- Add annotations to the ServiceAccount.
|
|
||||||
annotations: {}
|
|
||||||
# -- Enable or disable automatic ServiceAccount mounting.
|
|
||||||
automount: false
|
|
||||||
|
|
||||||
# -- Set the pod-level security context.
|
|
||||||
podSecurityContext: {}
|
|
||||||
# runAsUser: 1000
|
|
||||||
# runAsGroup: 1000
|
|
||||||
# runAsNonRoot: true
|
|
||||||
# fsGroup: 1000
|
|
||||||
|
|
||||||
# -- Set the container-level security context.
|
|
||||||
containerSecurityContext: {}
|
|
||||||
# allowPrivilegeEscalation: false
|
|
||||||
# privileged: false
|
|
||||||
# readOnlyRootFilesystem: true
|
|
||||||
# runAsUser: 1000
|
|
||||||
# runAsGroup: 1000
|
|
||||||
# capabilities:
|
|
||||||
# drop:
|
|
||||||
# - ALL
|
|
||||||
# seccompProfile:
|
|
||||||
# type: RuntimeDefault
|
|
||||||
|
|
||||||
# -- Configure the Sourcebot Kubernetes service.
|
|
||||||
service:
|
|
||||||
# -- Type of the Kubernetes service (e.g., ClusterIP, NodePort, LoadBalancer).
|
|
||||||
type: ClusterIP
|
|
||||||
# -- Internal container port.
|
|
||||||
containerPort: 3000
|
|
||||||
# -- External service port.
|
|
||||||
port: 3000
|
|
||||||
# -- Service annotations.
|
|
||||||
annotations: {}
|
|
||||||
|
|
||||||
# -- Configure ingress for Sourcebot.
|
|
||||||
ingress:
|
|
||||||
# -- Enable or disable ingress.
|
|
||||||
enabled: false
|
|
||||||
# -- Ingress class name.
|
|
||||||
className: ""
|
|
||||||
# -- Ingress annotations.
|
|
||||||
annotations: {}
|
|
||||||
# kubernetes.io/ingress.class: nginx
|
|
||||||
# kubernetes.io/tls-acme: "true"
|
|
||||||
|
|
||||||
# -- List of hostnames and paths for ingress rules. The first host will be used as the default host.
|
|
||||||
hosts: []
|
|
||||||
# - host: chart-example.local
|
|
||||||
# paths:
|
|
||||||
# - path: /
|
|
||||||
# pathType: ImplementationSpecific
|
|
||||||
|
|
||||||
# -- TLS settings for ingress.
|
|
||||||
tls: []
|
|
||||||
# - hosts:
|
|
||||||
# - chart-example.local
|
|
||||||
# secretName: chart-example-tls
|
|
||||||
|
|
||||||
# -- Configure init containers to run before the main container.
|
|
||||||
initContainers: []
|
|
||||||
# - name: sleeper
|
|
||||||
# image: busybox
|
|
||||||
# args:
|
|
||||||
# - sleep
|
|
||||||
# - "10"
|
|
||||||
|
|
||||||
# -- Configure resource requests and limits for the container.
|
|
||||||
resources: {}
|
|
||||||
## It is recommended to set resources explicitly in production environments.
|
|
||||||
# limits:
|
|
||||||
# cpu: 100m
|
|
||||||
# memory: 128Mi
|
|
||||||
# requests:
|
|
||||||
# cpu: 100m
|
|
||||||
# memory: 128Mi
|
|
||||||
|
|
||||||
# -- Liveness probe to check if the container is alive.
|
|
||||||
livenessProbe:
|
|
||||||
# -- Http GET request to check if the container is alive.
|
|
||||||
httpGet:
|
|
||||||
# -- Path to check.
|
|
||||||
path: /
|
|
||||||
# -- Port to check.
|
|
||||||
port: http
|
|
||||||
# -- Initial delay before the first probe.
|
|
||||||
initialDelaySeconds: 10
|
|
||||||
# -- Frequency of the probe.
|
|
||||||
periodSeconds: 10
|
|
||||||
# -- Number of consecutive failures before marking the container as unhealthy.
|
|
||||||
failureThreshold: 5
|
|
||||||
|
|
||||||
# -- Readiness probe to check if the container is ready to serve traffic.
|
|
||||||
readinessProbe:
|
|
||||||
# -- Http GET request to check if the container is ready.
|
|
||||||
httpGet:
|
|
||||||
# -- Path to check.
|
|
||||||
path: /
|
|
||||||
# -- Port to check.
|
|
||||||
port: http
|
|
||||||
# -- Initial delay before the first probe.
|
|
||||||
initialDelaySeconds: 10
|
|
||||||
# -- Frequency of the probe.
|
|
||||||
periodSeconds: 10
|
|
||||||
# -- Number of consecutive failures before marking the container as not ready.
|
|
||||||
failureThreshold: 5
|
|
||||||
|
|
||||||
# -- Startup probe to check if the container has started successfully.
|
|
||||||
startupProbe:
|
|
||||||
# -- Http GET request to check if the container has started.
|
|
||||||
httpGet:
|
|
||||||
# -- Path to check.
|
|
||||||
path: /
|
|
||||||
# -- Port to check.
|
|
||||||
port: http
|
|
||||||
# -- Number of seconds to wait before starting the probe.
|
|
||||||
failureThreshold: 30
|
|
||||||
# -- Initial delay before the first probe.
|
|
||||||
periodSeconds: 30
|
|
||||||
|
|
||||||
# -- Define additional volumes.
|
|
||||||
# See: https://kubernetes.io/docs/concepts/storage/volumes/
|
|
||||||
volumes: []
|
|
||||||
# - name: foo
|
|
||||||
# secret:
|
|
||||||
# secretName: mysecret
|
|
||||||
# optional: false
|
|
||||||
|
|
||||||
# -- Define volume mounts for the container.
|
|
||||||
# See: https://kubernetes.io/docs/concepts/storage/volumes/
|
|
||||||
volumeMounts: []
|
|
||||||
# - name: foo
|
|
||||||
# mountPath: "/etc/foo"
|
|
||||||
# readOnly: true
|
|
||||||
|
|
||||||
# -- Configure Pod Disruption Budget.
|
|
||||||
podDisruptionBudget:
|
|
||||||
# -- Enable Pod Disruption Budget.
|
|
||||||
enabled: true
|
|
||||||
# -- Minimum number of pods that must be available.
|
|
||||||
minAvailable: 1
|
|
||||||
# -- Maximum number of pods that can be unavailable.
|
|
||||||
maxUnavailable: 1
|
|
||||||
|
|
||||||
# -- Add annotations to the pod metadata.
|
|
||||||
podAnnotations: {}
|
|
||||||
# prometheus.io/scrape: "true"
|
|
||||||
# prometheus.io/path: "/metrics"
|
|
||||||
# prometheus.io/port: "9102"
|
|
||||||
|
|
||||||
# -- Add extra labels to all resources.
|
|
||||||
additionalLabels: {}
|
|
||||||
# team: sourcebot
|
|
||||||
|
|
||||||
# -- Set node selector constraints.
|
|
||||||
# See: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector
|
|
||||||
nodeSelector: {}
|
|
||||||
|
|
||||||
# -- Set tolerations for pod scheduling.
|
|
||||||
# See: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/
|
|
||||||
tolerations: []
|
|
||||||
# - effect: NoSchedule
|
|
||||||
# key: "key"
|
|
||||||
# operator: Equal
|
|
||||||
# value: "value"
|
|
||||||
|
|
||||||
# -- Set affinity rules for pod scheduling.
|
|
||||||
# Defaults to soft anti-affinity if not set.
|
|
||||||
# See: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
|
|
||||||
affinity: {}
|
|
||||||
|
|
||||||
# -- Set the priority class name for pods.
|
|
||||||
# See: https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/
|
|
||||||
priorityClassName: ""
|
|
||||||
|
|
||||||
# -- Configure the Bitnami PostgreSQL sub-chart.
|
|
||||||
# See: https://artifacthub.io/packages/helm/bitnami/postgresql
|
|
||||||
postgresql:
|
|
||||||
enabled: false
|
|
||||||
Loading…
Reference in a new issue