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:
@@ -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