feat: Add incubator valkey chart scaffolded from stable redis (#44984)
This PR introduces a new `charts/incubator/valkey` chart using
`charts/stable/redis` as the baseline, so Valkey has an incubator chart
with equivalent defaults and structure. The chart metadata and docs were
minimally adapted to Valkey while preserving Redis-compatible runtime
behavior where required by the upstream image.
- **Chart bootstrap (redis → valkey)**
- Added `charts/incubator/valkey` by copying the stable Redis chart
layout and assets (`templates`, `ci`, icons, helmignore, values).
- Set chart identity and train to incubator in `Chart.yaml` (`name:
valkey`, train annotations updated).
- **Metadata and documentation alignment**
- Updated chart URLs/sources/icon/install/docs references from Redis
paths to Valkey/incubator paths.
- Replaced inherited Redis changelog history with a fresh initial Valkey
entry.
- **Valkey-specific defaults with compatibility retained**
- Switched image repository to `docker.io/bitnamisecure/valkey`.
- Updated data mount path to `/bitnami/valkey`.
- Kept `REDIS_*` env variable usage (with explicit compatibility note)
to match Bitnami Valkey image conventions.
- Updated loading-status strings and health persistence key naming for
Valkey consistency.
- Updated CI override from `redisPassword` to `password` to match chart
values.
```yaml
# charts/incubator/valkey/Chart.yaml
annotations:
truecharts.org/train: incubator
name: valkey
# charts/incubator/valkey/values.yaml
image:
repository: docker.io/bitnamisecure/valkey
volumeClaimTemplates:
data:
mountPath: "/bitnami/valkey"
```
> [!WARNING]
>
> <details>
> <summary>Firewall rules blocked me from connecting to one or more
addresses (expand for details)</summary>
>
> #### I tried to connect to the following addresses, but was blocked by
firewall rules:
>
> - `oci.trueforge.org`
> - Triggering command: `/usr/local/bin/helm helm dependency build` (dns
block)
>
> If you need me to access, download, or install something from one of
these locations, you can either:
>
> - Configure [Actions setup
steps](https://gh.io/copilot/actions-setup-steps) to set up my
environment, which run before the firewall is enabled
> - Add the appropriate URLs or hosts to the custom allowlist in this
repository's [Copilot coding agent
settings](https://github.com/trueforge-org/truecharts/settings/copilot/coding_agent)
(admins only)
>
> </details>
<!-- START COPILOT CODING AGENT TIPS -->
---
✨ Let Copilot coding agent [set things up for
you](https://github.com/trueforge-org/truecharts/issues/new?title=✨+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
— coding agent works faster and does higher quality work when set up for
your repo.
---------
Signed-off-by: Kjeld Schouten <info@kjeldschouten.nl>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: PrivatePuffin <7613738+PrivatePuffin@users.noreply.github.com>
Co-authored-by: Kjeld Schouten <info@kjeldschouten.nl>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
co-authored by
copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
PrivatePuffin
Kjeld Schouten
Copilot
parent
cfbcf2453e
commit
b21ce0e1f5
@@ -0,0 +1,32 @@
|
|||||||
|
# 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
|
||||||
|
.vscode/
|
||||||
|
# OWNERS file for Kubernetes
|
||||||
|
OWNERS
|
||||||
|
# helm-docs templates
|
||||||
|
*.gotmpl
|
||||||
|
# docs folder
|
||||||
|
/docs
|
||||||
|
# icon
|
||||||
|
icon.png
|
||||||
|
icon.webp
|
||||||
|
icon-small.webp
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
title: Changelog
|
||||||
|
pagefind: false
|
||||||
|
---
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
annotations:
|
||||||
|
artifacthub.io/links: |-
|
||||||
|
- name: support
|
||||||
|
url: https://discord.com/invite/tVsPTHWTtr
|
||||||
|
truecharts.org/category: unsorted
|
||||||
|
truecharts.org/max_helm_version: "3.17"
|
||||||
|
truecharts.org/max_kubernetes_version: 1.32.0
|
||||||
|
truecharts.org/min_helm_version: "3.14"
|
||||||
|
truecharts.org/min_kubernetes_version: 1.24.0
|
||||||
|
truecharts.org/train: incubator
|
||||||
|
trueforge.org/category: database
|
||||||
|
trueforge.org/max_helm_version: "4.1"
|
||||||
|
trueforge.org/max_kubernetes_version: 1.35.0
|
||||||
|
trueforge.org/min_helm_version: "3.14"
|
||||||
|
trueforge.org/train: incubator
|
||||||
|
apiVersion: v2
|
||||||
|
appVersion: latest
|
||||||
|
dependencies:
|
||||||
|
- name: common
|
||||||
|
version: 28.29.59
|
||||||
|
repository: oci://oci.trueforge.org/truecharts
|
||||||
|
condition: ""
|
||||||
|
alias: ""
|
||||||
|
tags: []
|
||||||
|
import-values: []
|
||||||
|
deprecated: false
|
||||||
|
description: Open source, advanced key-value store.
|
||||||
|
home: https://trueforge.org/truetech/truecharts/charts/incubator/valkey
|
||||||
|
icon: https://trueforge.org/img/hotlink-ok/chart-icons/valkey.webp
|
||||||
|
keywords:
|
||||||
|
- valkey
|
||||||
|
- keyvalue
|
||||||
|
- database
|
||||||
|
kubeVersion: '>=1.27.0-0'
|
||||||
|
maintainers:
|
||||||
|
- name: TrueCharts
|
||||||
|
email: info@trueforge.org
|
||||||
|
url: https://trueforge.org
|
||||||
|
name: valkey
|
||||||
|
sources:
|
||||||
|
- https://github.com/bitnami/containers/tree/main/bitnami/valkey
|
||||||
|
- https://github.com/trueforge-org/truecharts/tree/master/charts/incubator/valkey
|
||||||
|
- https://hub.docker.com/r/bitnamisecure/valkey
|
||||||
|
type: application
|
||||||
|
version: 17.15.22
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
---
|
||||||
|
title: README
|
||||||
|
---
|
||||||
|
|
||||||
|
## General Info
|
||||||
|
|
||||||
|
For more information about this Chart, please check the docs on the TrueCharts [website](https://trueforge.org/truecharts/charts/incubator/valkey)
|
||||||
|
|
||||||
|
**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/trueforge-org/truecharts/issues/new/choose)**
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
### Helm-Chart installation
|
||||||
|
|
||||||
|
To install TrueCharts Helm charts using Helm, you can use our OCI Repository.
|
||||||
|
|
||||||
|
`helm install mychart oci://oci.trueforge.org/truecharts/valkey`
|
||||||
|
|
||||||
|
For more information on how to install TrueCharts Helm charts, checkout the [instructions on the website](https://trueforge.org/truecharts/guides/)
|
||||||
|
|
||||||
|
## Chart Specific Guides and information
|
||||||
|
|
||||||
|
All our charts have dedicated documentation pages.
|
||||||
|
The documentation for this chart can be found here:
|
||||||
|
https://trueforge.org/truecharts/incubator/valkey
|
||||||
|
|
||||||
|
## Configuration Options
|
||||||
|
|
||||||
|
To view the chart specific options, please view Values.yaml included in the chart.
|
||||||
|
The most recent version of which, is available here: https://github.com/trueforge-org/truecharts/blob/master/charts/incubator/valkey/values.yaml
|
||||||
|
|
||||||
|
All our Charts use a shared "common" library chart that contains most of the templating and options.
|
||||||
|
For the complete overview of all available options, please checkout the documentation for them on the [common docs on our website](https://trueforge.org/truecharts-common/)
|
||||||
|
|
||||||
|
For information about the common chart and all defaults included with it, please review its values.yaml file available here: https://github.com/trueforge-org/truecharts/blob/master/charts/library/common/values.yaml
|
||||||
|
|
||||||
|
## Support
|
||||||
|
|
||||||
|
- See the [Website](https://trueforge.org)
|
||||||
|
- Check our [Discord](https://discord.gg/tVsPTHWTtr)
|
||||||
|
- Open a [issue](https://github.com/trueforge-org/truecharts/issues/new/choose)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Sponsor TrueCharts
|
||||||
|
|
||||||
|
TrueCharts can only exist due to the incredible effort of our staff.
|
||||||
|
Please consider making a [donation](https://trueforge.org/general/sponsor/) or contributing back to the project any way you can!
|
||||||
|
|
||||||
|
_All Rights Reserved - The TrueCharts Project_
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
password: "testpassword"
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 694 B |
Binary file not shown.
|
After Width: | Height: | Size: 3.8 KiB |
@@ -0,0 +1 @@
|
|||||||
|
{{- include "tc.v1.common.lib.chart.notes" $ -}}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
{{ include "tc.v1.common.loader.all" . }}
|
||||||
@@ -0,0 +1,156 @@
|
|||||||
|
# yaml-language-server: $schema=./values.schema.json
|
||||||
|
image:
|
||||||
|
repository: docker.io/bitnamisecure/valkey
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
tag: latest@sha256:1c41e7028ac48d7a9d79d855a432eef368aa440f37c8073ae1651879b02c72f4
|
||||||
|
|
||||||
|
workload:
|
||||||
|
main:
|
||||||
|
replicas: 1
|
||||||
|
type: StatefulSet
|
||||||
|
strategy: RollingUpdate
|
||||||
|
podSpec:
|
||||||
|
containers:
|
||||||
|
main:
|
||||||
|
env:
|
||||||
|
# DEVNOTE: Bitnami Valkey keeps REDIS_* env variable names for compatibility.
|
||||||
|
REDIS_REPLICATION_MODE: master
|
||||||
|
ALLOW_EMPTY_PASSWORD: "yes"
|
||||||
|
REDIS_PORT: "{{ .Values.service.main.ports.main.targetPort }}"
|
||||||
|
REDIS_PASSWORD: "{{ .Values.password }}"
|
||||||
|
probes:
|
||||||
|
liveness:
|
||||||
|
enabled: true
|
||||||
|
type: exec
|
||||||
|
command:
|
||||||
|
- sh
|
||||||
|
- -c
|
||||||
|
- /health/ping_liveness_local.sh 2
|
||||||
|
readiness:
|
||||||
|
enabled: true
|
||||||
|
type: exec
|
||||||
|
command:
|
||||||
|
- sh
|
||||||
|
- -c
|
||||||
|
- /health/ping_readiness_local.sh 2
|
||||||
|
# -- Startup probe configuration
|
||||||
|
# @default -- See below
|
||||||
|
startup:
|
||||||
|
# -- Enable the startup probe
|
||||||
|
enabled: true
|
||||||
|
type: exec
|
||||||
|
command:
|
||||||
|
- sh
|
||||||
|
- -c
|
||||||
|
- /health/ping_readiness_local.sh 2
|
||||||
|
securityContext:
|
||||||
|
container:
|
||||||
|
readOnlyRootFilesystem: false
|
||||||
|
runAsGroup: 0
|
||||||
|
configmap:
|
||||||
|
health:
|
||||||
|
enabled: true
|
||||||
|
data:
|
||||||
|
ping_readiness_local.sh: |-
|
||||||
|
#!/bin/bash
|
||||||
|
[[ -n "$REDIS_PASSWORD" ]] && export REDISCLI_AUTH="$REDIS_PASSWORD"
|
||||||
|
response=$(
|
||||||
|
timeout -s 3 $1 \
|
||||||
|
redis-cli \
|
||||||
|
-h localhost \
|
||||||
|
-p $REDIS_PORT \
|
||||||
|
ping
|
||||||
|
)
|
||||||
|
if [ "$response" != "PONG" ]; then
|
||||||
|
echo "failed to connect using password: $REDIS_PASSWORD response: $response"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
ping_liveness_local.sh: |-
|
||||||
|
#!/bin/bash
|
||||||
|
[[ -n "$REDIS_PASSWORD" ]] && export REDISCLI_AUTH="$REDIS_PASSWORD"
|
||||||
|
response=$(
|
||||||
|
timeout -s 3 $1 \
|
||||||
|
redis-cli \
|
||||||
|
-h localhost \
|
||||||
|
-p $REDIS_PORT \
|
||||||
|
ping
|
||||||
|
)
|
||||||
|
if [ "$response" != "PONG" ] && [ "$response" != "LOADING Valkey is loading the dataset in memory" ]; then
|
||||||
|
echo "$response"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
ping_readiness_master.sh: |-
|
||||||
|
#!/bin/bash
|
||||||
|
[[ -n "$REDIS_MASTER_PASSWORD" ]] && export REDISCLI_AUTH="$REDIS_MASTER_PASSWORD"
|
||||||
|
response=$(
|
||||||
|
timeout -s 3 $1 \
|
||||||
|
redis-cli \
|
||||||
|
-h $REDIS_MASTER_HOST \
|
||||||
|
-p $REDIS_MASTER_PORT_NUMBER \
|
||||||
|
ping
|
||||||
|
)
|
||||||
|
if [ "$response" != "PONG" ]; then
|
||||||
|
echo "$response"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
ping_liveness_master.sh: |-
|
||||||
|
#!/bin/bash
|
||||||
|
[[ -n "$REDIS_MASTER_PASSWORD" ]] && export REDISCLI_AUTH="$REDIS_MASTER_PASSWORD"
|
||||||
|
response=$(
|
||||||
|
timeout -s 3 $1 \
|
||||||
|
redis-cli \
|
||||||
|
-h $REDIS_MASTER_HOST \
|
||||||
|
-p $REDIS_MASTER_PORT_NUMBER \
|
||||||
|
ping
|
||||||
|
)
|
||||||
|
if [ "$response" != "PONG" ] && [ "$response" != "LOADING Valkey is loading the dataset in memory" ]; then
|
||||||
|
echo "$response"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
ping_readiness_local_and_master.sh: |-
|
||||||
|
script_dir="$(dirname "$0")"
|
||||||
|
exit_status=0
|
||||||
|
"$script_dir/ping_readiness_local.sh" $1 || exit_status=$?
|
||||||
|
"$script_dir/ping_readiness_master.sh" $1 || exit_status=$?
|
||||||
|
exit $exit_status
|
||||||
|
ping_liveness_local_and_master.sh: |-
|
||||||
|
script_dir="$(dirname "$0")"
|
||||||
|
exit_status=0
|
||||||
|
"$script_dir/ping_liveness_local.sh" $1 || exit_status=$?
|
||||||
|
"$script_dir/ping_liveness_master.sh" $1 || exit_status=$?
|
||||||
|
exit $exit_status
|
||||||
|
|
||||||
|
## DEVNOTE: This password needs to match the one set in Common if ever changing defaults
|
||||||
|
password: "PLACEHOLDERPASSWORD"
|
||||||
|
service:
|
||||||
|
main:
|
||||||
|
ports:
|
||||||
|
main:
|
||||||
|
port: 6379
|
||||||
|
targetPort: 6379
|
||||||
|
volumeClaimTemplates:
|
||||||
|
data:
|
||||||
|
enabled: true
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
mountPath: "/bitnami/valkey"
|
||||||
|
persistence:
|
||||||
|
valkey-health:
|
||||||
|
enabled: true
|
||||||
|
type: configmap
|
||||||
|
objectName: health
|
||||||
|
mountPath: "/health"
|
||||||
|
defaultMode: "0755"
|
||||||
|
items:
|
||||||
|
- key: ping_readiness_local.sh
|
||||||
|
path: ping_readiness_local.sh
|
||||||
|
- key: ping_liveness_local.sh
|
||||||
|
path: ping_liveness_local.sh
|
||||||
|
- key: ping_readiness_master.sh
|
||||||
|
path: ping_readiness_master.sh
|
||||||
|
- key: ping_liveness_master.sh
|
||||||
|
path: ping_liveness_master.sh
|
||||||
|
- key: ping_liveness_local_and_master.sh
|
||||||
|
path: ping_liveness_local_and_master.sh
|
||||||
|
- key: ping_readiness_local_and_master.sh
|
||||||
|
path: ping_readiness_local_and_master.sh
|
||||||
Reference in New Issue
Block a user