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

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ jobs:
run: |
helm repo add stable https://charts.helm.sh/stable
helm repo add influxdb2 https://helm.influxdata.com/
helm repo add kiwigrid https://kiwigrid.github.io
helm repo add bitnami https://charts.bitnami.com/bitnami

- name: Set up chart-testing
Expand Down
8 changes: 4 additions & 4 deletions charts/flagsmith/Chart.lock
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ dependencies:
repository: https://helm.influxdata.com/
version: 2.1.1
- name: graphite
repository: https://kiwigrid.github.io
version: 0.7.3
digest: sha256:6ed1b4fab608bb1039a42040c445cfdf6a74a32ac80d4b1137f420e86f08e481
generated: "2023-06-20T13:58:28.286957382+01:00"
repository: file://../graphite
version: 2.0.0
digest: sha256:a978f9f6b4c171ddc773f38a1c83ea50198679825b6e27d3ba06caf7b4d561c1
generated: "2025-11-14T15:58:27.463499Z"
4 changes: 2 additions & 2 deletions charts/flagsmith/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ dependencies:
version: 2.1.1
condition: influxdb2.enabled
- name: graphite
repository: https://kiwigrid.github.io
version: 0.7.3
repository: file://../graphite
version: 2.0.0
condition: graphite.enabled
icon: https://docs.flagsmith.com/img/square-icon.png
21 changes: 21 additions & 0 deletions charts/graphite/.helmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# 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
*~
# Various IDEs
.project
.idea/
*.tmproj
6 changes: 6 additions & 0 deletions charts/graphite/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
apiVersion: v2
version: 2.0.0
appVersion: "1.1.10-3"
description: Graphite metrics server
name: graphite
home: https://graphiteapp.org/
66 changes: 66 additions & 0 deletions charts/graphite/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# Graphite

[Graphite](https://graphiteapp.org/) is a monitoring tool.

This chart was rescued from [here](https://github.com/kiwigrid/helm-charts) which is no longer hosted or supported.

## Configuration

The following table lists the configurable parameters of the Graphite chart and their default values.

| Parameter | Description | Default |
|--------------------------------|----------------------------------------------|----------------------------------------|
| `image.repository` | Docker image repo | `graphiteapp/graphite-statsd` |
| `image.tag` | Docker image | `1.1.5-4` |
| `image.pullPolicy` | Docker image pull policy | `IfNotPresent` |
| `service.type` | Service type | `ClusterIP` |
| `service.port` | Service port of Graphite UI | `8080` |
| `service.annotations` | Service annotations | `{}` |
| `service.labels` | Service labels | `{}` |
| `persistence.enabled` | Enable config persistence using PVC | `true` |
| `persistence.storageClass` | PVC Storage Class for config volume | `nil` |
| `persistence.existingClaim` | Name of an existing PVC to use for config | `nil` |
| `persistence.accessMode` | PVC Access Mode for config volume | `ReadWriteOnce` |
| `persistence.size` | PVC Storage Request for config volume | `10Gi` |
| `resources` | Resource limits for Graphite pod | `{}` |
| `ingress.enabled` | Ingress enabled | `false` |
| `ingress.annotations` | Ingress annotations | `{}` |
| `ingress.path` | Ingress path | `/` |
| `ingress.hosts` | Ingress hosts | `[]` |
| `ingress.tls` | Ingress TLS | `[]` |
| `resources` | Resources | `{}` |
| `nodeSelector` | NodeSelector | `{}` |
| `tolerations` | Tolerations | `[]` |
| `affinity` | Affinity | `{}` |
| `env` | Environment Values Passed to Pod | `{}` |
| `timeZone` | Timezone | `Etc/UTC` |
| `initContainers` | Init Containers | `[]` |
| `configMaps` | Graphite Config files | see values.yaml |
| `statsdConfigMaps` | StatsD Config files | see values.yaml |
| `statsd.interface` | StatsD server interface, `TCP` or `UDP` | `UDP` |
| `configMaps` | Graphite Config files | see values.yaml |
| `statsdConfigMaps` | StatsD Config files | see values.yaml |
| `statsd.interface` | StatsD server interface, `TCP` or `UDP` | `UDP` |
| `serviceAccount.accountName` | Define the service account name | `graphite` |
| `serviceAccount.enabled`| Enable service account (Note: Service Account will only be automatically created if `serviceAccount.create` is not set. |`false`|
| `serviceAccount.create`| create service account with the template |`false`|
| `rbac.create`| Enable RBAC rules |`false`|
| `psp.create`| Whether to create a PodSecurityPolicy. WARNING: PodSecurityPolicy is deprecated in Kubernetes v1.21 or later, unavailable in v1. |

Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example:

```bash
$ helm install --name graphite --set ingress.enabled=false kiwigrid/graphite
```

Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart.

### Storage persistence

Graphite itself is a stateful application that stores all related data in its own database. Therefore it uses a PVC to store data.

### Help

For more information about Graphite visit the official [website](https://graphiteapp.org/) and the [docs](http://graphite.readthedocs.io/en/latest/).

To find infos about the Docker container visit [Github](https://github.com/graphite-project/docker-graphite-statsd) or [Dockerhub](https://hub.docker.com/r/graphiteapp/graphite-statsd/).
19 changes: 19 additions & 0 deletions charts/graphite/templates/NOTES.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
1. Get the application URL by running these commands:
{{- if .Values.ingress.enabled }}
{{- range .Values.ingress.hosts }}
http{{ if $.Values.ingress.tls }}s{{ end }}://{{ . }}{{ $.Values.ingress.path }}
{{- end }}
{{- else if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "graphite.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 svc -w {{ template "graphite.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "graphite.fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
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 "graphite.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 port-forward $POD_NAME 8080:80
{{- end }}
39 changes: 39 additions & 0 deletions charts/graphite/templates/_helpers.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "graphite.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 "graphite.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 "graphite.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{/*
Define the service Account name
*/}}
{{- define "graphite.serviceAccount.name" -}}
{{ default "graphite" .Values.serviceAccount.accountName }}
{{- end -}}
14 changes: 14 additions & 0 deletions charts/graphite/templates/configmap-statsd.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "graphite.fullname" . }}-statsd-configmap
labels:
app.kubernetes.io/name: {{ include "graphite.name" . }}
helm.sh/chart: {{ include "graphite.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
data:
{{- range $key, $value := .Values.statsdConfigMaps }}
{{ $key }}: |-
{{ $value | indent 4 }}
{{- end }}
14 changes: 14 additions & 0 deletions charts/graphite/templates/configmap.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "graphite.fullname" . }}-configmap
labels:
app: {{ template "graphite.name" . }}
chart: {{ template "graphite.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
data:
{{- range $key, $value := .Values.configMaps }}
{{ $key }}: |-
{{ $value | indent 4 }}
{{- end }}
41 changes: 41 additions & 0 deletions charts/graphite/templates/ingress.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
{{- if .Values.ingress.enabled -}}
{{- $fullName := include "graphite.fullname" . -}}
{{- $ingressPath := .Values.ingress.path -}}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ $fullName }}
labels:
app.kubernetes.io/name: {{ include "graphite.name" . }}
helm.sh/chart: {{ include "graphite.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- with .Values.ingress.annotations }}
annotations:
{{ toYaml . | indent 4 }}
{{- end }}
spec:
{{- if .Values.ingress.tls }}
tls:
{{- range .Values.ingress.tls }}
- hosts:
{{- range .hosts }}
- {{ . }}
{{- end }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
rules:
{{- range .Values.ingress.hosts }}
- host: {{ . }}
http:
paths:
- path: {{ $ingressPath }}
pathType: Prefix
backend:
service:
name: {{ $fullName }}
port:
number: {{ $.Values.service.port }}
{{- end }}
{{- end }}
26 changes: 26 additions & 0 deletions charts/graphite/templates/pvc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{{- if .Values.persistence.enabled -}}
{{- if not .Values.persistence.existingClaim -}}
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: {{ template "graphite.fullname" . }}-pvc
labels:
app.kubernetes.io/name: {{ include "graphite.name" . }}
helm.sh/chart: {{ include "graphite.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
spec:
accessModes:
- {{ .Values.persistence.accessMode | quote }}
resources:
requests:
storage: {{ .Values.persistence.size | quote }}
{{- if .Values.persistence.storageClass }}
{{- if (eq "-" .Values.persistence.storageClass) }}
storageClassName: ""
{{- else }}
storageClassName: "{{ .Values.persistence.storageClass }}"
{{- end }}
{{- end }}
{{- end }}
{{- end -}}
21 changes: 21 additions & 0 deletions charts/graphite/templates/role.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
{{- if .Values.rbac.create }}
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: {{ include "graphite.serviceAccount.name" . }}-role
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ include "graphite.name" . }}
helm.sh/chart: {{ include "graphite.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
rules:
{{- if .Values.psp.create }}
- apiGroups: ["extensions"]
resources: ["podsecuritypolicies"]
verbs: ["use"]
resourceNames:
- pks-privileged
{{- end }}
{{- end }}
21 changes: 21 additions & 0 deletions charts/graphite/templates/rolebinding.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
{{- if .Values.rbac.create }}
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: {{ include "graphite.serviceAccount.name" . }}-rb
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ include "graphite.name" . }}
helm.sh/chart: {{ include "graphite.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: {{ default "graphite" .Values.serviceAccount.accountName }}-role
subjects:
- kind: ServiceAccount
name: {{ default "graphite" .Values.serviceAccount.accountName }}
namespace: {{ .Release.Namespace }}
{{- end }}
46 changes: 46 additions & 0 deletions charts/graphite/templates/service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
apiVersion: v1
kind: Service
metadata:
name: {{ template "graphite.fullname" . }}
labels:
app.kubernetes.io/name: {{ include "graphite.name" . }}
helm.sh/chart: {{ include "graphite.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- if .Values.service.labels }}
{{ toYaml .Values.service.labels | indent 4 }}
{{- end }}
{{- with .Values.service.annotations }}
annotations:
{{ toYaml . | indent 4 }}
{{- end }}
spec:
type: {{ .Values.service.type }}
ports:
- name: graphite-pickle
port: 2004
protocol: TCP
- name: graphite-plain
port: 2003
protocol: TCP
- name: graphite-udp
port: 2003
protocol: UDP
- name: graphite-gui
port: {{ .Values.service.port }}
protocol: TCP
- name: aggregate-plain
port: 2023
protocol: TCP
- name: aggregate-pickl
port: 2024
protocol: TCP
- name: statsd
port: 8125
protocol: {{ .Values.statsd.interface }}
- name: statsd-admin
port: 8126
protocol: TCP
selector:
app.kubernetes.io/name: {{ include "graphite.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
12 changes: 12 additions & 0 deletions charts/graphite/templates/serviceaccount.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{{- if and (.Values.serviceAccount.enabled) (.Values.serviceAccount.create) }}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ include "graphite.serviceAccount.name" . }}
namespace: {{ .Release.Namespace }}
labels:
app.kubernetes.io/name: {{ include "graphite.name" . }}
helm.sh/chart: {{ include "graphite.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
Loading
Loading