[statping] Rebase statping on common chart (#642)

This commit is contained in:
Vegetto 2021-03-07 21:42:18 +01:00 committed by GitHub
parent a7bb41b467
commit c5a3fc36a0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 413 additions and 601 deletions

View File

@ -14,10 +14,13 @@
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
# OWNERS file for Kubernetes
OWNERS
# helm-docs templates
*.gotmpl

View File

@ -1,22 +1,27 @@
apiVersion: v2
name: statping
description: Status page for monitoring your websites and applications
type: application
version: 1.6.0
appVersion: v0.90.65
description: Status page for monitoring your websites and applications
name: statping
version: 2.0.0
kubeVersion: ">=1.16.0-0"
keywords:
- statping
- status
- status-page
- statping
- status
- status-page
home: https://github.com/k8s-at-home/charts/tree/master/charts/statping
icon: https://github.com/statping/statping/blob/dev/frontend/src/assets/logo.png?raw=true
sources:
- https://github.com/statping/statping
- https://github.com/statping/statping
maintainers:
- name: DirtyCajunRice
email: nick@cajun.pro
icon: https://github.com/statping/statping/blob/dev/frontend/src/assets/logo.png?raw=true
- name: angelnu
email: git@angelnu.com
dependencies:
- name: postgresql
repository: https://charts.bitnami.com/bitnami
version: 10.3.7
condition: postgres.posgresql.enabled
- name: common
repository: https://k8s-at-home.com/charts/
version: 3.1.0
- name: postgresql
version: 10.3.7
repository: https://charts.bitnami.com/bitnami
condition: postgresql.enabled

View File

@ -1,36 +1,138 @@
# statping | Status page for monitoring your websites and applications
# statping
![Version: 2.0.0](https://img.shields.io/badge/Version-2.0.0-informational?style=flat-square) ![AppVersion: v0.90.65](https://img.shields.io/badge/AppVersion-v0.90.65-informational?style=flat-square)
Status page for monitoring your websites and applications
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
## Source Code
* <https://github.com/statping/statping>
## Requirements
Kubernetes: `>=1.16.0-0`
## Dependencies
| Repository | Name | Version |
|------------|------|---------|
| https://charts.bitnami.com/bitnami | postgresql | 10.3.7 |
| https://k8s-at-home.com/charts/ | common | 3.1.0 |
## TL;DR
```console
$ helm repo add k8s-at-home https://k8s-at-home.com/charts/
$ helm install k8s-at-home/statping
helm repo add k8s-at-home https://k8s-at-home.com/charts/
helm repo update
helm install statping k8s-at-home/statping
```
## Installing the Chart
To install the chart with the release name `statping`:
To install the chart with the release name `statping`
```console
helm install statping k8s-at-home/statping
```
## Uninstalling the Chart
To uninstall the `statping` deployment:
To uninstall the `statping` deployment
```console
helm uninstall statping
```
The command removes all the Kubernetes components associated with the chart and deletes the release.
The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
## Configuration
Read through the [values.yaml](https://github.com/k8s-at-home/charts/blob/master/charts/statping/values.yaml)
file. It has several commented out suggested values.
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
Other values may be used from the [values.yaml](../common/values.yaml) from the [common library](../common).
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
```console
helm install statping \
--set statping.env.TZ="America/New York" \
--set env.TZ="America/New York" \
k8s-at-home/statping
```
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the
chart. For example,
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
```console
helm install statping k8s-at-home/statping --values values.yaml
helm install statping k8s-at-home/statping -f values.yaml
```
## Custom configuration
N/A
## Values
**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/)
| Key | Type | Default | Description |
|-----|------|---------|-------------|
| env.ADMIN_EMAIL | string | `"info@example.com"` | dashboard admin email |
| env.ADMIN_PASSWORD | string | `"admin"` | dashboard admin password (needed to edit) |
| env.ADMIN_USER | string | `"admin"` | dashboard admin user (needed to edit) |
| env.DB_CONN | string | `"postgres"` | Type of database to use |
| env.DB_DATABASE | string | postgresql.postgresqlDatabase value | Postgres database password |
| env.DB_HOST | string | internal postgresql URL | Postgres database hostname |
| env.DB_PASS | string | postgresql.postgresqlPassword value | Postgres database password |
| env.DB_USER | string | postgresql.postgresqlUsername value | Postgres database user name |
| env.DESCRIPTION | string | `"This is a Statping instance deployed as Helm chart"` | Description of the Statping instance |
| env.DISABLE_LOGS | bool | `false` | Disable logs from appearing and writing to disk |
| env.NAME | string | `"Statping Example"` | Name of the Statping instance |
| env.POSTGRES_SSLMODE | string | `"disable"` | Enable ssl_mode for postgres (To enable use require) |
| env.USE_CDN | bool | `false` | Use CDN for static context from third-parties |
| env.VIRTUAL_HOST | string | `""` | External URL you use to connect to the statping (the one you enter in your browser) |
| image.pullPolicy | string | `"IfNotPresent"` | |
| image.repository | string | `"statping/statping"` | |
| image.tag | string | `"v0.90.65"` | |
| ingress.enabled | bool | `false` | |
| persistence | object | see bellow | Generated application config.yaml and logs are written here. Usually does not need to be persisted. |
| postgresql | object | see bellow | Bitnami postgres chart. For more options see https://github.com/bitnami/charts/tree/master/bitnami/postgresql |
| postgresql.enabled | bool | `true` | By default uses an internal postgress. Disable if you use your own Postgres. |
| postgresql.persistence.enabled | bool | `false` | if database is stored to a PVC. Set to true when you are done testing. |
| postgresql.postgresqlDatabase | string | `"postgres"` | Postgres database password |
| postgresql.postgresqlPassword | string | `"changeme"` | Postgres database password |
| postgresql.postgresqlUsername | string | `"postgres"` | Postgres database user name |
| service.port.port | int | `8080` | |
| strategy.type | string | `"Recreate"` | |
## Changelog
All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/README.md#Changelog).
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
### [2.0.0]
#### Added
- N/A
#### Changed
- Migrated to common library chart
- Moved `service.port` to `service.port.port`
#### Removed
- N/A
[2.0.0]: #2.0.0
## Support
- See the [Wiki](https://github.com/k8s-at-home/charts/wiki)
- Open a [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
- Ask a [question](https://github.com/k8s-at-home/charts/discussions)
- Join our [Discord](https://discord.gg/sTMX7Vh) community
----------------------------------------------
Autogenerated from chart metadata using [helm-docs v1.5.0](https://github.com/norwoodj/helm-docs/releases/v1.5.0)

View File

@ -0,0 +1,145 @@
{{- define "custom.repository.organization" -}}
k8s-at-home
{{- end -}}
{{- define "custom.repository.url" -}}
https://github.com/k8s-at-home/charts
{{- end -}}
{{- define "custom.helm.url" -}}
https://k8s-at-home.com/charts/
{{- end -}}
{{- define "custom.helm.path" -}}
{{ template "custom.repository.organization" . }}/{{ template "chart.name" . }}
{{- end -}}
{{- define "custom.notes" -}}
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/k8s-at-home/charts/issues/new/choose)**
{{- end -}}
{{- define "custom.requirements" -}}
## Requirements
{{ template "chart.kubeVersionLine" . }}
{{- end -}}
{{- define "custom.dependencies" -}}
## Dependencies
{{ template "chart.requirementsTable" . }}
{{- end -}}
{{- define "custom.install.tldr" -}}
## TL;DR
```console
helm repo add {{ template "custom.repository.organization" . }} {{ template "custom.helm.url" . }}
helm repo update
helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
```
{{- end -}}
{{- define "custom.install" -}}
## Installing the Chart
To install the chart with the release name `{{ template "chart.name" . }}`
```console
helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }}
```
{{- end -}}
{{- define "custom.uninstall" -}}
## Uninstalling the Chart
To uninstall the `{{ template "chart.name" . }}` deployment
```console
helm uninstall {{ template "chart.name" . }}
```
The command removes all the Kubernetes components associated with the chart **including persistent volumes** and deletes the release.
{{- end -}}
{{- define "custom.configuration.header" -}}
## Configuration
{{- end -}}
{{- define "custom.configuration.readValues" -}}
Read through the [values.yaml](./values.yaml) file. It has several commented out suggested values.
Other values may be used from the [values.yaml](../common/values.yaml) from the [common library](../common).
{{- end -}}
{{- define "custom.configuration.example.set" -}}
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`.
```console
helm install {{ template "chart.name" . }} \
--set env.TZ="America/New York" \
{{ template "custom.helm.path" . }}
```
{{- end -}}
{{- define "custom.configuration.example.file" -}}
Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart.
```console
helm install {{ template "chart.name" . }} {{ template "custom.helm.path" . }} -f values.yaml
```
{{- end -}}
{{- define "custom.valuesSection" -}}
## Values
**Important**: When deploying an application Helm chart you can add more values from our common library chart [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/)
{{ template "chart.valuesTable" . }}
{{- end -}}
{{- define "custom.support" -}}
## Support
- See the [Wiki](https://github.com/k8s-at-home/charts/wiki)
- Open a [issue](https://github.com/k8s-at-home/charts/issues/new/choose)
- Ask a [question](https://github.com/k8s-at-home/charts/discussions)
- Join our [Discord](https://discord.gg/sTMX7Vh) community
{{- end -}}
{{ template "chart.header" . }}
{{ template "chart.versionBadge" . }}{{ template "chart.typeBadge" . }}{{ template "chart.appVersionBadge" . }}
{{ template "chart.description" . }}
{{ template "custom.notes" . }}
{{ template "chart.sourcesSection" . }}
{{ template "custom.requirements" . }}
{{ template "custom.dependencies" . }}
{{ template "custom.install.tldr" . }}
{{ template "custom.install" . }}
{{ template "custom.uninstall" . }}
{{ template "custom.configuration.header" . }}
{{ template "custom.configuration.readValues" . }}
{{ template "custom.configuration.example.set" . }}
{{ template "custom.configuration.example.file" . }}
{{ template "custom.custom.configuration" . }}
{{ template "custom.valuesSection" . }}
{{ template "custom.changelog" . }}
{{ template "custom.support" . }}
{{ template "helm-docs.versionFooter" . }}

View File

@ -0,0 +1,28 @@
{{- define "custom.changelog.header" -}}
## Changelog
{{- end -}}
{{- define "custom.changelog" -}}
{{ template "custom.changelog.header" . }}
All notable changes to this application Helm chart will be documented in this file but does not include changes from our common library. To read those click [here](https://github.com/k8s-at-home/charts/tree/master/charts/common/README.md#Changelog).
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
### [2.0.0]
#### Added
- N/A
#### Changed
- Migrated to common library chart
- Moved `service.port` to `service.port.port`
#### Removed
- N/A
[2.0.0]: #2.0.0
{{- end -}}

View File

@ -0,0 +1,9 @@
{{- define "custom.custom.configuration.header" -}}
## Custom configuration
{{- end -}}
{{- define "custom.custom.configuration" -}}
{{ template "custom.custom.configuration.header" . }}
N/A
{{- end -}}

View File

@ -1,21 +1 @@
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 }}{{ . }}
{{- 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 "statping.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 the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "statping.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "statping.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 "statping.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
{{- end }}
{{- include "common.notes.defaultNotes" . -}}

View File

@ -1,62 +0,0 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "statping.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 "statping.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 "statping.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "statping.labels" -}}
helm.sh/chart: {{ include "statping.chart" . }}
{{ include "statping.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "statping.selectorLabels" -}}
app.kubernetes.io/name: {{ include "statping.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "statping.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "statping.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}

View File

@ -0,0 +1,26 @@
{{/* Make sure all variables are set properly */}}
{{- include "common.values.setup" . }}
{{/* use the port specified in the service */}}
{{- $_ := set .Values.env "VIRTUAL_PORT" .Values.service.port.port -}}
{{/* if DB_HOST is not set use internal postgres chart */}}
{{- if eq .Values.env.DB_HOST "" -}}
{{- $_ := set .Values.env "DB_HOST" (printf "%s-postgresql" .Release.Name) -}}
{{- end -}}
{{/* if DB_USER is not set use internal postgres chart */}}
{{- if eq .Values.env.DB_USER "" -}}
{{- $_ := set .Values.env "DB_USER" .Values.postgresql.postgresqlUsername -}}
{{- end -}}
{{/* if DB_PASS is not set use internal postgres chart */}}
{{- if eq .Values.env.DB_PASS "" -}}
{{- $_ := set .Values.env "DB_PASS" .Values.postgresql.postgresqlPassword -}}
{{- end -}}
{{/* if DB_DATABASE is not set use internal postgres chart */}}
{{- if eq .Values.env.DB_DATABASE "" -}}
{{- $_ := set .Values.env "DB_DATABASE" .Values.postgresql.postgresqlDatabase -}}
{{- end -}}
{{/* Render the templates */}}
{{ include "common.all" . }}

View File

@ -1,166 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "statping.fullname" . }}
labels:
{{- include "statping.labels" . | nindent 4 }}
spec:
{{- if not .Values.autoscaling.enabled }}
replicas: {{ .Values.replicaCount }}
{{- end }}
selector:
matchLabels:
{{- include "statping.selectorLabels" . | nindent 6 }}
template:
metadata:
{{- with .Values.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "statping.selectorLabels" . | nindent 8 }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ include "statping.serviceAccountName" . }}
{{- with .Values.podSecurityContext }}
securityContext:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: {{ .Chart.Name }}
{{- with .Values.securityContext }}
securityContext:
{{- toYaml . | nindent 12 }}
{{- end }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
env:
{{- if .Values.statping.name }}
- name: NAME
value: {{ .Values.statping.name | quote }}
{{- end }}
{{- if .Values.statping.description }}
- name: DESCRIPTION
value: {{ .Values.statping.description | quote }}
{{- end }}
{{- if .Values.statping.domain }}
- name: DOMAIN
value: {{ .Values.statping.domain | quote }}
{{- end }}
- name: ADMIN_USER
valueFrom:
secretKeyRef:
{{- if .Values.statping.admin.existingSecret.enabled }}
name: {{ .Values.statping.admin.existingSecret.name | quote }}
key: {{ .Values.statping.admin.existingSecret.userKey | default "admin-user" }}
{{- else }}
name: {{ include "statping.fullname" . }}
key: admin-user
{{- end }}
- name: ADMIN_PASSWORD
valueFrom:
secretKeyRef:
{{- if .Values.statping.admin.existingSecret.enabled }}
name: {{ .Values.statping.admin.existingSecret.name | quote }}
key: {{ .Values.statping.admin.existingSecret.passwordKey | default "admin-password" }}
{{- else }}
name: {{ include "statping.fullname" . }}
key: admin-password
{{- end }}
- name: ADMIN_EMAIL
valueFrom:
secretKeyRef:
{{- if .Values.statping.admin.existingSecret.enabled }}
name: {{ .Values.statping.admin.existingSecret.name | quote }}
key: {{ .Values.statping.admin.existingSecret.emailKey | default "admin-email" }}
{{- else }}
name: {{ include "statping.fullname" . }}
key: admin-email
{{- end }}
{{- if and (eq .Values.postgres.type "kubedb") .Values.postgres.kubedb.enabled }}
- name: DB_CONN
value: postgres
- name: DB_HOST
value: postgres-{{ template "statping.fullname" . }}
- name: DB_DATABASE
value: postgres
- name: DB_USER
valueFrom:
secretKeyRef:
name: postgres-{{ template "statping.fullname" . }}-auth
key: POSTGRES_USER
- name: DB_PASS
valueFrom:
secretKeyRef:
name: postgres-{{ template "statping.fullname" . }}-auth
key: POSTGRES_PASSWORD
{{- end }}
{{- if and (eq .Values.postgres.type "postgresql") .Values.postgres.posgresql.enabled }}
- name: DB_CONN
value: postgres
- name: DB_HOST
value: {{ template "common.names.fullname" . }}-postgresql
- name: DB_DATABASE
value: {{ template "postgresql.database" . }}
- name: DB_USER
value: {{ template "postgresql.username" . }}
- name: DB_PASS
valueFrom:
secretKeyRef:
name: {{ template "postgresql.secretName" . }}-postgresql
key: postgresql-password
{{- end }}
{{- with .Values.env }}
{{- toYaml . | nindent 12 }}
{{- end }}
ports:
- name: http
containerPort: 8080
protocol: TCP
livenessProbe:
httpGet:
path: /
port: http
readinessProbe:
httpGet:
path: /
port: http
volumeMounts:
- mountPath: /app
name: config
{{- if .Values.persistence.subPath }}
subPath: {{ .Values.persistence.subPath }}
{{- end }}
{{- if .Values.additionalVolumeMounts }}
{{- toYaml .Values.additionalVolumes | nindent 12 }}
{{- end }}
{{- with .Values.resources }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
volumes:
- name: config
{{- if .Values.persistence.enabled }}
persistentVolumeClaim:
claimName: {{ if .Values.persistence.existingClaim }}{{ .Values.persistence.existingClaim }}{{- else }}{{ template "statping.fullname" . }}{{- end }}
{{- else }}
emptyDir: {}
{{- end }}
{{- if .Values.additionalVolumes }}
{{- toYaml .Values.additionalVolumes | 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 }}

View File

@ -1,14 +0,0 @@
{{- if and .Values.externalSecret.enabled (eq .Values.externalSecret.type "kubernetes-external-secrets") }}
apiVersion: kubernetes-client.io/v1
kind: ExternalSecret
metadata:
name: {{ include "statping.fullname" . }}
spec:
{{- with .Values.externalSecret.kubernetesExternalSecrets.spec }}
{{- toYaml . | nindent 2 }}
{{- end }}
data:
{{- with .Values.externalSecret.kubernetesExternalSecrets.data }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{- end }}

View File

@ -1,28 +0,0 @@
{{- if .Values.autoscaling.enabled }}
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: {{ include "statping.fullname" . }}
labels:
{{- include "statping.labels" . | nindent 4 }}
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: {{ include "statping.fullname" . }}
minReplicas: {{ .Values.autoscaling.minReplicas }}
maxReplicas: {{ .Values.autoscaling.maxReplicas }}
metrics:
{{- if .Values.autoscaling.targetCPUUtilizationPercentage }}
- type: Resource
resource:
name: cpu
targetAverageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }}
{{- end }}
{{- if .Values.autoscaling.targetMemoryUtilizationPercentage }}
- type: Resource
resource:
name: memory
targetAverageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }}
{{- end }}
{{- end }}

View File

@ -1,41 +0,0 @@
{{- if .Values.ingress.enabled -}}
{{- $fullName := include "statping.fullname" . -}}
{{- $svcPort := .Values.service.port -}}
{{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1beta1
{{- else -}}
apiVersion: extensions/v1beta1
{{- end }}
kind: Ingress
metadata:
name: {{ $fullName }}
labels:
{{- include "statping.labels" . | nindent 4 }}
{{- with .Values.ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- 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: {{ . }}
backend:
serviceName: {{ $fullName }}
servicePort: {{ $svcPort }}
{{- end }}
{{- end }}
{{- end }}

View File

@ -1,13 +0,0 @@
{{- if and .Values.postgres.enabled (eq .Values.postgres.type "kubedb") }}
apiVersion: kubedb.com/v1alpha1
kind: Postgres
metadata:
name: postgres-{{ template "statping.fullname" . }}
spec:
version: {{ .Values.postgres.kubedb.version }}
storageType: {{ .Values.postgres.kubedb.storageType }}
{{- with .Values.postgres.kubedb.storage }}
storage:
{{- toYaml . | nindent 4 }}
{{- end }}
{{- end }}

View File

@ -1,15 +0,0 @@
{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) -}}
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: {{ include "statping.fullname" . }}
spec:
accessModes:
- {{ .Values.persistence.accessMode | quote }}
resources:
requests:
storage: {{ .Values.persistence.size | quote }}
{{- if .Values.persistence.storageClass }}
storageClassName: {{ .Values.persistence.storageClass | quote }}
{{- end }}
{{- end -}}

View File

@ -1,13 +0,0 @@
{{- if not .Values.statping.admin.existingSecret.enabled }}
apiVersion: v1
kind: Secret
metadata:
name: {{ template "statping.fullname" . }}
labels:
{{- include "statping.labels" . | nindent 4 }}
type: Opaque
data:
admin-user: {{ default "admin" .Values.statping.admin.user | b64enc | quote }}
admin-password: {{ randAlphaNum 16 | b64enc | quote }}
admin-email: {{ default "info@admin.com" .Values.statping.admin.email | b64enc | quote}}
{{- end }}

View File

@ -1,19 +0,0 @@
apiVersion: v1
kind: Service
metadata:
name: {{ include "statping.fullname" . }}
labels:
{{- include "statping.labels" . | nindent 4 }}
{{- with .Values.service.annotations }}
annotations:
{{ toYaml . | indent 4 }}
{{- end }}
spec:
type: {{ .Values.service.type }}
ports:
- port: {{ .Values.service.port }}
targetPort: http
protocol: TCP
name: http
selector:
{{- include "statping.selectorLabels" . | nindent 4 }}

View File

@ -1,12 +0,0 @@
{{- if .Values.serviceAccount.create -}}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ include "statping.serviceAccountName" . }}
labels:
{{- include "statping.labels" . | nindent 4 }}
{{- with .Values.serviceAccount.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
{{- end }}

View File

@ -1,15 +0,0 @@
apiVersion: v1
kind: Pod
metadata:
name: "{{ include "statping.fullname" . }}-test-connection"
labels:
{{- include "statping.labels" . | nindent 4 }}
annotations:
"helm.sh/hook": test-success
spec:
containers:
- name: wget
image: busybox
command: ['wget']
args: ['{{ include "statping.fullname" . }}:{{ .Values.service.port }}']
restartPolicy: Never

View File

@ -1,171 +1,83 @@
# Default values for statping.
#
# IMPORTANT NOTE
#
# This chart inherits from our common library chart. You can check the default values/options here:
# https://github.com/k8s-at-home/charts/tree/master/charts/common/values.yaml
#
image:
repository: statping/statping
pullPolicy: IfNotPresent
tag: ""
tag: "v0.90.65"
global:
postgresql:
postgresqlDatabase: "postgres"
postgresqlUsername: "postgres"
strategy:
type: Recreate
statping:
name: ""
description: ""
domain: ""
admin:
user: ""
password: ""
email: ""
existingSecret:
enabled: false
name: ""
userKey: ""
passwordKey: ""
emailKey: ""
# See more environment variables in the statping documentation
# https://github.com/statping/statping/wiki/Config-with-.env-File
env:
# -- Name of the Statping instance
NAME: Statping Example
# -- Description of the Statping instance
DESCRIPTION: This is a Statping instance deployed as Helm chart
# -- External URL you use to connect to the statping (the one you enter in your browser)
VIRTUAL_HOST: ""
# -- Type of database to use
DB_CONN: postgres
# -- Postgres database hostname
# @default -- internal postgresql URL
DB_HOST: ""
# -- Enable ssl_mode for postgres (To enable use require)
POSTGRES_SSLMODE: "disable"
# -- Postgres database user name
# @default -- postgresql.postgresqlUsername value
DB_USER: ""
# -- Postgres database password
# @default -- postgresql.postgresqlPassword value
DB_PASS: ""
# -- Postgres database password
# @default -- postgresql.postgresqlDatabase value
DB_DATABASE: ""
# -- dashboard admin user (needed to edit)
ADMIN_USER: admin
# -- dashboard admin password (needed to edit)
ADMIN_PASSWORD: admin
# -- dashboard admin email
ADMIN_EMAIL: info@example.com
# -- Use CDN for static context from third-parties
USE_CDN: false
# -- Disable logs from appearing and writing to disk
DISABLE_LOGS: false
# Probes configuration
probes:
liveness:
initialDelaySeconds: 60
failureThreshold: 5
timeoutSeconds: 10
readiness:
initialDelaySeconds: 60
failureThreshold: 5
timeoutSeconds: 10
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
env: []
service:
type: ClusterIP
port: 8080
## Specify the nodePort value for the LoadBalancer and NodePort service types.
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
##
# nodePort:
## Provide any additional annotations which may be required. This can be used to
## set the LoadBalancer service type to internal only.
## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
##
annotations: {}
labels: {}
additionalSpec: {}
port:
port: 8080
ingress:
enabled: false
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: "true"
labels: {}
hosts:
- host: chart-example.local
paths:
- /
tls: []
# - secretName: chart-example-tls
# hosts:
# - chart-example.local
# -- Generated application config.yaml and logs are written here.
# Usually does not need to be persisted.
# @default -- see bellow
persistence:
enabled: true
## statping configuration data Persistent Volume Storage Class
## If defined, storageClassName: <storageClass>
## If set to "-", storageClassName: "", which disables dynamic provisioning
## If undefined (the default) or set to null, no storageClassName spec is
## set, choosing the default provisioner. (gp2 on AWS, standard on
## GKE, AWS & OpenStack)
##
# storageClass: "-"
##
## If you want to reuse an existing claim, you can pass the name of the PVC using
## the existingClaim variable
# existingClaim: your-claim
# subPath: some-subpath
accessMode: ReadWriteOnce
size: 1Gi
## Do not delete the pvc upon helm uninstall
skipuninstall: false
postgres:
type: postgresql
kubedb:
data:
enabled: false
version: 11.1
storageType: Durable
storage:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
posgresql:
enabled: true
# See https://github.com/bitnami/charts/tree/master/bitnami/postgresql for configuration
emptyDir: false
mountPath: /app
# This is required for postgresql to render its fullname template
replication:
enabled: false
externalSecret:
enabled: false
type: kubernetes-external-secrets
kubernetesExternalSecrets:
spec: {}
data: []
additionalVolumes: []
additionalVolumeMounts: []
serviceAccount:
# Specifies whether a service account should be created
create: true
# Annotations to add to the service account
annotations: {}
# The name of the service account to use.
# If not set and create is true, a name is generated using the fullname template
name: ""
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 3
targetCPUUtilizationPercentage: 80
# targetMemoryUtilizationPercentage: 80
podSecurityContext: {}
# fsGroup: 2000
securityContext: {}
# capabilities:
# drop:
# - ALL
# readOnlyRootFilesystem: true
# runAsNonRoot: true
# runAsUser: 1000
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
# resources, such as Minikube. If you do want to specify resources, uncomment the following
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
# limits:
# cpu: 100m
# memory: 128Mi
# requests:
# cpu: 100m
# memory: 128Mi
nodeSelector: {}
tolerations: []
affinity: {}
podAnnotations: {}
# -- Bitnami postgres chart. For more options see https://github.com/bitnami/charts/tree/master/bitnami/postgresql
# @default -- see bellow
postgresql:
# -- By default uses an internal postgress. Disable if you use your own Postgres.
enabled: true
# -- Postgres database user name
postgresqlUsername: postgres
# -- Postgres database password
postgresqlPassword: "changeme"
# -- Postgres database password
postgresqlDatabase: postgres
persistence:
# -- if database is stored to a PVC. Set to true when you are done testing.
enabled: false
# storageClass: ""