-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #59 from foomo/squadron-server
feat(squadron-server): add chart
- Loading branch information
Showing
20 changed files
with
2,602 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# Patterns to ignore when building packages. | ||
# This supports shell glob matching, relative path matching, and | ||
# negation (prefixed with !). Only one pattern per line. | ||
.DS_Store | ||
# Common VCS dirs | ||
.git/ | ||
.gitignore | ||
.bzr/ | ||
.bzrignore | ||
.hg/ | ||
.hgignore | ||
.svn/ | ||
# Common backup files | ||
*.swp | ||
*.bak | ||
*.tmp | ||
*.orig | ||
*~ | ||
# Various IDEs | ||
.project | ||
.idea/ | ||
*.tmproj | ||
.vscode/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
apiVersion: v2 | ||
type: application | ||
name: squadron-server | ||
description: Squadron General Server Chart | ||
icon: https://avatars.githubusercontent.com/u/889755?s=200&v=4 | ||
home: https://www.foomo.org | ||
keywords: | ||
- foomo | ||
- foomo-squadron | ||
sources: | ||
- https://github.com/foomo/helm-charts | ||
annotations: | ||
"artifacthub.io/links": | | ||
- name: Chart Source | ||
url: https://github.com/foomo/helm-charts/tree/main/charts/squadron-server | ||
version: 0.1.0 | ||
appVersion: 0.1.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,182 @@ | ||
# squadron-server | ||
|
||
![Version: 0.1.0](https://img.shields.io/badge/Version-0.1.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 0.1.0](https://img.shields.io/badge/AppVersion-0.1.0-informational?style=flat-square) | ||
|
||
Squadron General Server Chart | ||
|
||
**Homepage:** <https://www.foomo.org> | ||
|
||
## Source Code | ||
|
||
* <https://github.com/foomo/helm-charts> | ||
|
||
## Values | ||
|
||
### General | ||
|
||
| Key | Type | Default | Description | | ||
|-----|------|---------|-------------| | ||
| args | list | `[]` | Container command args | | ||
| command | list | `[]` | Container command | | ||
| env | object | `{}` | Map of environment variables to add | | ||
| ports | object | `{}` | Map of ports to expose | | ||
| replicas | int | `1` | Number of replications | | ||
| revisionHistoryLimit | int | `10` | Number of revisions to keep | | ||
| secretEnv | object | `{}` | Map of environment variables to add as a secret | | ||
| secretMounts | list | `[]` | List of existing secrets to be mounted | | ||
| secrets | object | `{}` | Map of secrets to be mounted | | ||
| updateStrategy | string | `"RollingUpdate"` | Deployment update strategy | | ||
|
||
### Autoscaling | ||
|
||
| Key | Type | Default | Description | | ||
|-----|------|---------|-------------| | ||
| autoscaling.additionalMetrics | object | `{}` | Additional scaling metrics | | ||
| autoscaling.behavior | object | `{}` | Autoscaling behavior settings | | ||
| autoscaling.enabled | bool | `false` | Specifies whether a auto scaling should be enabled | | ||
| autoscaling.maxReplicas | int | `9` | Maximum replication number | | ||
| autoscaling.maxUnavailable | int | `1` | Maximum unavailablity | | ||
| autoscaling.minAvailable | string | `""` | Minimum availablity | | ||
| autoscaling.minReplicas | int | `1` | Minimum replication number | | ||
| autoscaling.targetCPU | int | `75` | Target CPU utilization | | ||
| autoscaling.targetMemory | string | `nil` | Target Memory utilization | | ||
|
||
### Overrides | ||
|
||
| Key | Type | Default | Description | | ||
|-----|------|---------|-------------| | ||
| fullnameOverride | string | `""` | Overrides the chart's computed fullname | | ||
| nameOverride | string | `""` | Overrides the chart's name | | ||
| namespaceOverride | string | `""` | The name of the Namespace to deploy | | ||
|
||
### Global | ||
|
||
| Key | Type | Default | Description | | ||
|-----|------|---------|-------------| | ||
| global.foomo.squadron.fleet | string | `""` | Will be automatically injected (optional) | | ||
| global.foomo.squadron.name | string | `""` | Will be automatically injected | | ||
| global.foomo.squadron.unit | string | `""` | Will be automatically injected | | ||
| global.foomo.withDeprecatedSelectorLabels | bool | `false` | Enable for backward compatibility | | ||
|
||
### Image | ||
|
||
| Key | Type | Default | Description | | ||
|-----|------|---------|-------------| | ||
| image.pullPolicy | string | `"IfNotPresent"` | Image tag | | ||
| image.pullSecrets | list | `[]` | Image pull secrets | | ||
| image.recreate | bool | `false` | Force recreation | | ||
| image.repository | string | `""` | Image repository | | ||
| image.tag | string | `""` | Image tag | | ||
|
||
### Ingress | ||
|
||
| Key | Type | Default | Description | | ||
|-----|------|---------|-------------| | ||
| ingress.additionalLabels | object | `{}` | Additional labels | | ||
| ingress.annotations | object | `{}` | Ingress annotations | | ||
| ingress.className | string | `""` | Ingress class name | | ||
| ingress.enabled | bool | `false` | Indicates wether the ingress is enabled or not | | ||
| ingress.hosts | list | `[]` | List of hosts | | ||
| ingress.paths | list | `[]` | List of hosts | | ||
| ingress.tls | list | `[]` | TLS settings | | ||
|
||
### Network Policy | ||
|
||
| Key | Type | Default | Description | | ||
|-----|------|---------|-------------| | ||
| networkPolicy.egress.additionalRules | list | `[]` | Additional egress rules | | ||
| networkPolicy.egress.allowExternal | bool | `true` | Allow ingress through labels | | ||
| networkPolicy.egress.enabled | bool | `true` | Specifies whether egress should be enabled | | ||
| networkPolicy.enabled | bool | `false` | Specifies whether Network Policies should be created | | ||
| networkPolicy.ingress.additionalRules | list | `[]` | Additional ingress rules | | ||
| networkPolicy.ingress.allowExternal | bool | `true` | Allow ingress through labels | | ||
| networkPolicy.ingress.enabled | bool | `true` | Specifies whether ingress should be enabled | | ||
| networkPolicy.rules | list | `[]` | List of rules to apply via labels | | ||
|
||
### Persistence | ||
|
||
| Key | Type | Default | Description | | ||
|-----|------|---------|-------------| | ||
| persistence.accessMode | string | `"ReadWriteOnce"` | Access mode | | ||
| persistence.enabled | bool | `false` | Indicates wether a pv should be attached or not | | ||
| persistence.mountPath | string | `"/var/lib/server/data"` | Storage mount path | | ||
| persistence.size | string | `"1Gi"` | Storage size | | ||
| persistence.storageClass | string | `""` | Storage class name | | ||
|
||
### Routing | ||
|
||
| Key | Type | Default | Description | | ||
|-----|------|---------|-------------| | ||
| routing.enabled | bool | `false` | Indicates wether routing is enabled or not | | ||
| routing.parentRefs | list | `[]` | Parent references | | ||
| routing.paths | list | `[]` | Path matches | | ||
|
||
### Scheduling | ||
|
||
| Key | Type | Default | Description | | ||
|-----|------|---------|-------------| | ||
| scheduling.affinity | object | `{}` | Affinity for pod assignment | | ||
| scheduling.enabled | bool | `false` | Indicates wether scheduling is enabled or not | | ||
| scheduling.nodeSelector | object | `{}` | Node labels for pod assignment | | ||
| scheduling.priorityClass | string | `nil` | Priority class name | | ||
| scheduling.tolerations | list | `[]` | Tolerations for pod assignment | | ||
|
||
### Security Context | ||
|
||
| Key | Type | Default | Description | | ||
|-----|------|---------|-------------| | ||
| securityContext.fsGroup | int | `1001` | File system group id | | ||
| securityContext.runAsGroup | int | `1001` | Run as group id | | ||
| securityContext.runAsNonRoot | bool | `true` | Indicates wether to run as non root user | | ||
| securityContext.runAsUser | int | `1001` | Run as user id | | ||
|
||
### Server | ||
|
||
| Key | Type | Default | Description | | ||
|-----|------|---------|-------------| | ||
| server.additionalEnv | list | `[]` | Additional environment variables | | ||
| server.additionalEnvFrom | list | `[]` | Additional env from | | ||
| server.additionalLabels | object | `{}` | Additional labels | | ||
| server.additionalPorts | list | `[]` | Additional ports | | ||
| server.additionalVolumeMounts | list | `[]` | Additional volume mounts | | ||
| server.additionalVolumes | list | `[]` | Additional volumes | | ||
| server.annotations | object | `{}` | Deployment annotations | | ||
| server.hostAliases | list | `[]` | Host aliases | | ||
| server.livenessProbe | object | `{}` | Liveness probe settings | | ||
| server.podAnnotations | object | `{}` | Pod annotations | | ||
| server.podLabels | object | `{}` | Pod labels | | ||
| server.readinessProbe | object | `{}` | Readiness probe settings | | ||
| server.resources | object | `{}` | Resource settings | | ||
| server.startupProbe | object | `{}` | Startup probe settings | | ||
|
||
### Service | ||
|
||
| Key | Type | Default | Description | | ||
|-----|------|---------|-------------| | ||
| service.additionalLabels | object | `{}` | Additional Service labels | | ||
| service.annotations | object | `{}` | Service annotations | | ||
| service.type | string | `"ClusterIP"` | Service type | | ||
|
||
### Service Account | ||
|
||
| Key | Type | Default | Description | | ||
|-----|------|---------|-------------| | ||
| serviceAccount.annotations | object | `{}` | Annotations to add to the service account | | ||
| serviceAccount.automount | bool | `true` | Automatically mount a ServiceAccount's API credentials? | | ||
| serviceAccount.create | bool | `true` | Specifies whether a service account should be created | | ||
| serviceAccount.name | string | `""` | The name of the service account to use. | | ||
|
||
### Service Monitor | ||
|
||
| Key | Type | Default | Description | | ||
|-----|------|---------|-------------| | ||
| serviceMonitor.additionalLabels | object | `{}` | Additional ServiceMonitor labels | | ||
| serviceMonitor.annotations | object | `{}` | ServiceMonitor annotations | | ||
| serviceMonitor.enabled | bool | `false` | If enabled, ServiceMonitor resources for Prometheus Operator are created | | ||
| serviceMonitor.interval | string | `""` | ServiceMonitor scrape interval | | ||
| serviceMonitor.metricRelabelings | list | `[]` | ServiceMonitor metric relabel configs to apply to samples before ingestion | | ||
| serviceMonitor.path | string | `"/metrics"` | Exposed metrics path | | ||
| serviceMonitor.port | int | `9200` | Exposed metrics port | | ||
| serviceMonitor.relabelings | list | `[]` | ServiceMonitor relabel configs to apply to samples before scraping. | | ||
| serviceMonitor.scrapeTimeout | string | `""` | ServiceMonitor scrape timeout in Go duration format (e.g. 15s) | | ||
| serviceMonitor.targetLabels | list | `[]` | ServiceMonitor will add labels from the service to the Prometheus metric | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
{{ template "chart.header" . }} | ||
{{ template "chart.deprecationWarning" . }} | ||
|
||
{{ template "chart.badgesSection" . }} | ||
|
||
{{ template "chart.description" . }} | ||
|
||
{{ template "chart.homepageLine" . }} | ||
|
||
{{ template "chart.maintainersSection" . }} | ||
|
||
{{ template "chart.sourcesSection" . }} | ||
|
||
{{ template "chart.requirementsSection" . }} | ||
|
||
{{ template "chart.valuesSection" . }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,128 @@ | ||
{{/* | ||
Expand the name of the chart. | ||
*/}} | ||
{{- define "squadron.server.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 "squadron.server.fullname" -}} | ||
{{- if .Values.fullnameOverride -}} | ||
{{- tpl .Values.fullnameOverride . | trunc 63 | trimSuffix "-" -}} | ||
{{- else if and .Values.global.foomo.squadron.name .Values.global.foomo.squadron.unit -}} | ||
{{- printf "%s-%s" .Values.global.foomo.squadron.name .Values.global.foomo.squadron.unit | 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 "squadron.server.chart" -}} | ||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} | ||
{{- end }} | ||
|
||
{{/* | ||
Create chart name and version as used by the chart label. | ||
*/}} | ||
{{- define "squadron.server.chart-revision" -}} | ||
{{- printf "%s-%s-%d" .Chart.Name .Chart.Version .Release.Revision | replace "+" "_" | trunc 63 | trimSuffix "-" -}} | ||
{{- end -}} | ||
|
||
{{/* | ||
Common labels | ||
*/}} | ||
{{- define "squadron.server.labels" -}} | ||
helm.sh/chart: {{ include "squadron.server.chart" . }} | ||
{{ include "squadron.server.selectorLabels" . }} | ||
{{- if .Chart.AppVersion }} | ||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} | ||
{{- end }} | ||
app.kubernetes.io/managed-by: {{ .Release.Service }} | ||
{{- end }} | ||
|
||
{{/* | ||
Selector labels | ||
*/}} | ||
{{- define "squadron.server.selectorLabels" -}} | ||
{{ if .Values.global.foomo.withDeprecatedSelectorLabels }} | ||
app.kubernetes.io/name: {{ include "squadron.server.fullname" . }} | ||
app.kubernetes.io/component: foomo-keel-server | ||
{{- else }} | ||
app.kubernetes.io/name: {{ include "squadron.server.name" . }} | ||
app.kubernetes.io/instance: {{ .Release.Name }} | ||
{{- end }} | ||
{{- end }} | ||
|
||
{{/* | ||
Networking labels | ||
*/}} | ||
{{- define "squadron.server.networkingLabels" -}} | ||
{{- if .Values.networkPolicy.enabled }} | ||
{{- range .Values.networkPolicy.rules }} | ||
networking/{{ . }}: "true" | ||
{{- end}} | ||
{{- if .Values.networkPolicy.ingress.enabled }} | ||
{{- if .Values.networkPolicy.ingress.allowExternal }} | ||
kubernetes.io/networking.name: {{ include "squadron.server.fullname" . }} | ||
{{- end}} | ||
{{- end}} | ||
{{- end }} | ||
{{- end }} | ||
|
||
{{/* | ||
Create the name of the namespace | ||
*/}} | ||
{{- define "squadron.server.namespace" -}} | ||
{{- default .Release.Namespace .Values.namespaceOverride }} | ||
{{- end }} | ||
|
||
{{/* | ||
Create the name of the service account to use | ||
*/}} | ||
{{- define "squadron.server.serviceAccountName" -}} | ||
{{- if .Values.serviceAccount.create }} | ||
{{- default (include "squadron.server.fullname" .) .Values.serviceAccount.name }} | ||
{{- else }} | ||
{{- default "default" .Values.serviceAccount.name }} | ||
{{- end }} | ||
{{- end }} | ||
|
||
{{/* | ||
Squadron standard envs | ||
{{- include "squadron.server.env.squadron" . | nindent 12 }} | ||
*/}} | ||
{{- define "squadron.server.env.squadron" -}} | ||
{{- if .Values.global.foomo.squadron.fleet }} | ||
- name: FLEET | ||
value: {{ .Values.global.foomo.squadron.fleet | quote }} | ||
{{- end }} | ||
{{- if .Values.global.foomo.squadron.name }} | ||
- name: SQUADRON | ||
value: {{ .Values.global.foomo.squadron.name | quote }} | ||
{{- end }} | ||
{{- if .Values.global.foomo.squadron.unit }} | ||
- name: UNIT | ||
value: {{ .Values.global.foomo.squadron.unit | quote }} | ||
{{- end }} | ||
{{- end -}} | ||
|
||
{{/* | ||
Deployment force recreate annotions | ||
{{- include "squadron.server.annotations.recreatePod" . | nindent 8 }} | ||
*/}} | ||
{{- define "squadron.server.annotations.recreatePod" -}} | ||
{{- if .Values.image.recreate }} | ||
helm.sh/chart: {{ include "squadron.server.chart-revision" . }} | ||
{{- end }} | ||
{{- end -}} |
Oops, something went wrong.