Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Add persistence option to memcached on helm chart #13619

Merged
merged 5 commits into from
Sep 2, 2024
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
100 changes: 100 additions & 0 deletions docs/sources/setup/install/helm/reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -1623,6 +1623,56 @@ true
<td><pre lang="json">
5
</pre>
</td>
</tr>
<tr>
<td>chunksCache.persistence</td>
<td>object</td>
<td>Persistence settings for the chunks-cache</td>
<td><pre lang="json">
{
"enabled": false,
"mountPath": "/data",
"storageClass": null,
"storageSize": "10G"
}
</pre>
</td>
</tr>
<tr>
<td>chunksCache.persistence.enabled</td>
<td>bool</td>
<td>Enable creating PVCs for the chunks-cache</td>
<td><pre lang="json">
false
</pre>
</td>
</tr>
<tr>
<td>chunksCache.persistence.mountPath</td>
<td>string</td>
<td>Volume mount path</td>
<td><pre lang="json">
"/data"
</pre>
</td>
</tr>
<tr>
<td>chunksCache.persistence.storageClass</td>
<td>string</td>
<td>Storage class to be used. If defined, storageClassName: <storageClass>. If set to "-", storageClassName: "", which disables dynamic provisioning. If empty or set to null, no storageClassName spec is set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).</td>
<td><pre lang="json">
null
</pre>
</td>
</tr>
<tr>
<td>chunksCache.persistence.storageSize</td>
<td>string</td>
<td>Size of persistent disk</td>
<td><pre lang="json">
"10G"
</pre>
</td>
</tr>
<tr>
Expand Down Expand Up @@ -9035,6 +9085,56 @@ true
<td><pre lang="json">
{}
</pre>
</td>
</tr>
<tr>
<td>resultsCache.persistence</td>
<td>object</td>
<td>Persistence settings for the results-cache</td>
<td><pre lang="json">
{
"enabled": false,
"mountPath": "/data",
"storageClass": null,
"storageSize": "10G"
}
</pre>
</td>
</tr>
<tr>
<td>resultsCache.persistence.enabled</td>
<td>bool</td>
<td>Enable creating PVCs for the results-cache</td>
<td><pre lang="json">
false
</pre>
</td>
</tr>
<tr>
<td>resultsCache.persistence.mountPath</td>
<td>string</td>
<td>Volume mount path</td>
<td><pre lang="json">
"/data"
</pre>
</td>
</tr>
<tr>
<td>resultsCache.persistence.storageClass</td>
<td>string</td>
<td>Storage class to be used. If defined, storageClassName: <storageClass>. If set to "-", storageClassName: "", which disables dynamic provisioning. If empty or set to null, no storageClassName spec is set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).</td>
<td><pre lang="json">
null
</pre>
</td>
</tr>
<tr>
<td>resultsCache.persistence.storageSize</td>
<td>string</td>
<td>Size of persistent disk</td>
<td><pre lang="json">
"10G"
</pre>
</td>
</tr>
<tr>
Expand Down
5 changes: 4 additions & 1 deletion production/helm/loki/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ Entries should include a reference to the pull request that introduced the chang

[//]: # (<AUTOMATED_UPDATES_LOCATOR> : do not remove this line. This locator is used by the CI pipeline to automatically create a changelog entry for each new Loki release. Add other chart versions and respective changelog entries bellow this line.)

## 6.11.0

- [FEATURE] Add support for configuring persistence for memcached.

## 6.10.2

- [CHANGE] Bumped version of `nginxinc/nginx-unprivileged` to 1.27-alpine; this remediates several CVE
Expand All @@ -27,7 +31,6 @@ Entries should include a reference to the pull request that introduced the chang
- [CHANGE] Changed version of Grafana Loki to 3.1.1
- [ENHANCEMENT] Added ability to disable AWS S3 dualstack endpoint usage.


## 6.9.0

- [BUGFIX] Fixed how we set imagePullSecrets for the memcached and provisioner.
Expand Down
2 changes: 1 addition & 1 deletion production/helm/loki/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: loki
description: Helm chart for Grafana Loki and Grafana Enterprise Logs supporting both simple, scalable and distributed modes.
type: application
appVersion: 3.1.1
version: 6.10.2
version: 6.11.0
home: https://grafana.github.io/helm-charts
sources:
- https://github.com/grafana/loki
Expand Down
2 changes: 1 addition & 1 deletion production/helm/loki/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# loki

![Version: 6.10.2](https://img.shields.io/badge/Version-6.10.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 3.1.1](https://img.shields.io/badge/AppVersion-3.1.1-informational?style=flat-square)
![Version: 6.11.0](https://img.shields.io/badge/Version-6.11.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 3.1.1](https://img.shields.io/badge/AppVersion-3.1.1-informational?style=flat-square)

Helm chart for Grafana Loki and Grafana Enterprise Logs supporting both simple, scalable and distributed modes.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ spec:
name: client
args:
- -m {{ .allocatedMemory }}
- --extended=modern,track_sizes{{ with .extraExtendedOptions }},{{ . }}{{ end }}
- --extended=modern,track_sizes{{ if .persistence.enabled }},ext_path={{ .persistence.mountPath }}/file:{{ .persistence.storageSize }}{{ end }}{{ with .extraExtendedOptions }},{{ . }}{{ end }}
- -I {{ .maxItemMemory }}m
- -c {{ .connectionLimit }}
- -v
Expand All @@ -122,10 +122,16 @@ spec:
{{- end }}
securityContext:
{{- toYaml $.ctx.Values.memcached.containerSecurityContext | nindent 12 }}
{{- if .extraVolumeMounts }}
{{- if or .persistence.enabled .extraVolumeMounts }}
volumeMounts:
{{- if .persistence.enabled }}
- name: data
mountPath: {{ .persistence.mountPath }}
{{- end }}
{{- if .extraVolumeMounts }}
{{- toYaml .extraVolumeMounts | nindent 12 }}
{{- end }}
{{- end }}

{{- if $.ctx.Values.memcachedExporter.enabled }}
- name: exporter
Expand All @@ -151,6 +157,19 @@ spec:
{{- toYaml .extraVolumeMounts | nindent 12 }}
{{- end }}
{{- end }}
{{- if .persistence.enabled }}
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes: [ "ReadWriteOnce" ]
{{- with .persistence.storageClass }}
storageClassName: {{ if (eq "-" .) }}""{{ else }}{{ . }}{{ end }}
{{- end }}
resources:
requests:
storage: {{ .persistence.storageSize | quote }}
{{- end }}
{{- end -}}
{{- end -}}
{{- end -}}
Expand Down
28 changes: 28 additions & 0 deletions production/helm/loki/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2967,6 +2967,20 @@ resultsCache:
service:
annotations: {}
labels: {}
# -- Persistence settings for the results-cache
persistence:
# -- Enable creating PVCs for the results-cache
enabled: false
# -- Size of persistent disk
storageSize: 10G
# -- Storage class to be used.
# If defined, storageClassName: <storageClass>.
# If set to "-", storageClassName: "", which disables dynamic provisioning.
# If empty or set to null, no storageClassName spec is
# set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
storageClass: null
# -- Volume mount path
mountPath: /data
chunksCache:
# -- Specifies whether memcached based chunks-cache should be enabled
enabled: true
Expand Down Expand Up @@ -3055,6 +3069,20 @@ chunksCache:
service:
annotations: {}
labels: {}
# -- Persistence settings for the chunks-cache
persistence:
# -- Enable creating PVCs for the chunks-cache
enabled: false
# -- Size of persistent disk
storageSize: 10G
# -- Storage class to be used.
# If defined, storageClassName: <storageClass>.
# If set to "-", storageClassName: "", which disables dynamic provisioning.
# If empty or set to null, no storageClassName spec is
# set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
storageClass: null
# -- Volume mount path
mountPath: /data
######################################################################################################################
#
# Subchart configurations
Expand Down
Loading