valkey initial
This commit is contained in:
6
valkey/kustomization.yaml
Normal file
6
valkey/kustomization.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
resources:
|
||||
- main.yaml
|
||||
168
valkey/main.yaml
Normal file
168
valkey/main.yaml
Normal file
@@ -0,0 +1,168 @@
|
||||
apiVersion: v1
|
||||
automountServiceAccountToken: false
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/instance: valkey
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: valkey
|
||||
app.kubernetes.io/version: 8.1.3
|
||||
helm.sh/chart: valkey-0.7.4
|
||||
name: valkey
|
||||
---
|
||||
apiVersion: v1
|
||||
data:
|
||||
init.sh: "#!/bin/bash\nset -euo pipefail\n\n# Default config paths\nVALKEY_CONFIG=${VALKEY_CONFIG_PATH:-/data/conf/valkey.conf}\n\nLOGFILE=\"/data/init.log\"\nDATA_DIR=\"/data/conf\"\n\n#
|
||||
Logging function\nlog() {\n echo \"$(date) $1\" | tee -a \"$LOGFILE\"\n}\n\n#
|
||||
Clean old log if requested\nif [ \"${KEEP_OLD_LOGS:-false}\" != \"true\" ]; then\n
|
||||
\ rm -f \"$LOGFILE\"\nfi\n\nif [ -f \"$LOGFILE\" ]; then\n log \"Detected restart
|
||||
of this instance ($HOSTNAME)\"\nfi\n\nlog \"Creating configuration in $DATA_DIR...\"\nmkdir
|
||||
-p \"$DATA_DIR\"\nrm -f \"$VALKEY_CONFIG\" \n\n\n# Base valkey.conf\nlog \"Generating
|
||||
base valkey.conf\"\n{\n echo \"port 6379\"\n echo \"protected-mode no\"\n echo
|
||||
\"bind 0.0.0.0\"\n echo \"dir /data\"\n} >>\"$VALKEY_CONFIG\"\n\n# Append extra
|
||||
configs if present\nif [ -f /usr/local/etc/valkey/valkey.conf ]; then\n log \"Appending
|
||||
/usr/local/etc/valkey/valkey.conf\"\n cat /usr/local/etc/valkey/valkey.conf >>\"$VALKEY_CONFIG\"\nfi\nif
|
||||
[ -d /extravalkeyconfigs ]; then\n log \"Appending files in /extravalkeyconfigs/\"\n
|
||||
\ cat /extravalkeyconfigs/* >>\"$VALKEY_CONFIG\"\nfi"
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/instance: valkey
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: valkey
|
||||
app.kubernetes.io/version: 8.1.3
|
||||
helm.sh/chart: valkey-0.7.4
|
||||
name: valkey-init-scripts
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/instance: valkey
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: valkey
|
||||
app.kubernetes.io/version: 8.1.3
|
||||
helm.sh/chart: valkey-0.7.4
|
||||
name: valkey
|
||||
spec:
|
||||
ports:
|
||||
- name: tcp
|
||||
port: 6379
|
||||
protocol: TCP
|
||||
targetPort: tcp
|
||||
selector:
|
||||
app.kubernetes.io/instance: valkey
|
||||
app.kubernetes.io/name: valkey
|
||||
type: ClusterIP
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/instance: valkey
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: valkey
|
||||
app.kubernetes.io/version: 8.1.3
|
||||
helm.sh/chart: valkey-0.7.4
|
||||
name: valkey
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 8
|
||||
storageClassName: openebs-3-replicas
|
||||
volumeMode: Filesystem
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/instance: valkey
|
||||
app.kubernetes.io/managed-by: Helm
|
||||
app.kubernetes.io/name: valkey
|
||||
app.kubernetes.io/version: 8.1.3
|
||||
helm.sh/chart: valkey-0.7.4
|
||||
name: valkey
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/instance: valkey
|
||||
app.kubernetes.io/name: valkey
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/instance: valkey
|
||||
app.kubernetes.io/name: valkey
|
||||
checksum/initconfig: 4ca0bfa021f2da0c4554a57544b03cfc
|
||||
spec:
|
||||
automountServiceAccountToken: false
|
||||
containers:
|
||||
- args:
|
||||
- /data/conf/valkey.conf
|
||||
command:
|
||||
- valkey-server
|
||||
env:
|
||||
- name: VALKEY_LOGLEVEL
|
||||
value: notice
|
||||
image: docker.io/valkey/valkey:8.1.3
|
||||
livenessProbe:
|
||||
exec:
|
||||
command:
|
||||
- sh
|
||||
- -c
|
||||
- valkey-cli ping
|
||||
name: valkey
|
||||
ports:
|
||||
- containerPort: 6379
|
||||
name: tcp
|
||||
protocol: TCP
|
||||
resources: {}
|
||||
securityContext:
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
readOnlyRootFilesystem: true
|
||||
runAsNonRoot: true
|
||||
runAsUser: 1000
|
||||
startupProbe:
|
||||
exec:
|
||||
command:
|
||||
- sh
|
||||
- -c
|
||||
- valkey-cli ping
|
||||
volumeMounts:
|
||||
- mountPath: /data
|
||||
name: valkey-data
|
||||
initContainers:
|
||||
- command:
|
||||
- /scripts/init.sh
|
||||
image: docker.io/valkey/valkey:8.1.3
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: valkey-init
|
||||
securityContext:
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
readOnlyRootFilesystem: true
|
||||
runAsNonRoot: true
|
||||
runAsUser: 1000
|
||||
volumeMounts:
|
||||
- mountPath: /data
|
||||
name: valkey-data
|
||||
- mountPath: /scripts
|
||||
name: scripts
|
||||
securityContext:
|
||||
fsGroup: 1000
|
||||
runAsGroup: 1000
|
||||
runAsUser: 1000
|
||||
serviceAccountName: valkey
|
||||
volumes:
|
||||
- configMap:
|
||||
defaultMode: 365
|
||||
name: valkey-init-scripts
|
||||
name: scripts
|
||||
- name: valkey-data
|
||||
persistentVolumeClaim:
|
||||
claimName: valkey
|
||||
12
valkey/src/kustomization.yaml
Normal file
12
valkey/src/kustomization.yaml
Normal file
@@ -0,0 +1,12 @@
|
||||
---
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
helmCharts:
|
||||
- name: valkey
|
||||
repo: https://valkey.io/valkey-helm/
|
||||
version: 0.7.4
|
||||
releaseName: valkey
|
||||
includeCRDs: true
|
||||
namespace: valkey
|
||||
valuesFile: values.yaml
|
||||
160
valkey/src/values.yaml
Normal file
160
valkey/src/values.yaml
Normal file
@@ -0,0 +1,160 @@
|
||||
# Number of Valkey pods to run
|
||||
replicaCount: 1
|
||||
|
||||
image:
|
||||
# Valkey Docker image to use
|
||||
repository: docker.io/valkey/valkey
|
||||
# Image pull policy (Always, IfNotPresent, Never)
|
||||
pullPolicy: IfNotPresent
|
||||
# Image tag (leave empty to use .Chart.AppVersion)
|
||||
tag: ""
|
||||
|
||||
# List of image pull secrets (for private registries)
|
||||
imagePullSecrets: []
|
||||
|
||||
# Override the default name or full name of resources
|
||||
nameOverride: ""
|
||||
fullnameOverride: ""
|
||||
|
||||
serviceAccount:
|
||||
# Create a service account for Valkey
|
||||
create: true
|
||||
# Whether to automount the service account token
|
||||
automount: false
|
||||
# Annotations to add to the service account
|
||||
annotations: {}
|
||||
# Name of an existing service account to use (if create: false)
|
||||
name: ""
|
||||
|
||||
# Annotations and labels for the pods
|
||||
podAnnotations: {}
|
||||
podLabels: {}
|
||||
|
||||
# Security context for the pod (applies to all containers)
|
||||
podSecurityContext:
|
||||
fsGroup: 1000
|
||||
runAsUser: 1000
|
||||
runAsGroup: 1000
|
||||
|
||||
# Security context for the Valkey containers
|
||||
securityContext:
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
readOnlyRootFilesystem: true
|
||||
runAsNonRoot: true
|
||||
runAsUser: 1000
|
||||
|
||||
service:
|
||||
# Type of Kubernetes service (ClusterIP, NodePort, LoadBalancer)
|
||||
type: ClusterIP
|
||||
# Port on which Valkey will be exposed
|
||||
port: 6379
|
||||
|
||||
# Network policy to control traffic to the pods
|
||||
# More info: https://kubernetes.io/docs/concepts/services-networking/network-policies/
|
||||
networkPolicy: {}
|
||||
|
||||
# Resource limits/requests for the main Valkey container
|
||||
resources: {}
|
||||
# Example:
|
||||
# limits:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
# requests:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
|
||||
# Resource limits/requests for init containers
|
||||
initResources: {}
|
||||
# Example:
|
||||
# limits:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
# requests:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
|
||||
# Persistent storage configuration
|
||||
dataStorage:
|
||||
# Enable persistent volume claim creation
|
||||
enabled: true
|
||||
|
||||
# Use existing PVC by name (skip dynamic provisioning if set)
|
||||
persistentVolumeClaimName: ""
|
||||
|
||||
# Name of the volume (referenced in deployment)
|
||||
volumeName: "valkey-data"
|
||||
|
||||
# Request size (e.g. 5Gi) for dynamically provisioned volume
|
||||
requestedSize: "8"
|
||||
|
||||
# Name of the storage class to use
|
||||
className: openebs-3-replicas
|
||||
|
||||
# Access modes for the PVC (e.g., ReadWriteOnce, ReadWriteMany)
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
|
||||
# If true, keep the PVC on Helm uninstall
|
||||
keepPvc: false
|
||||
|
||||
# Optional annotations to add to the PVC
|
||||
annotations: {}
|
||||
|
||||
# Optional labels to add to the PVC
|
||||
labels: {}
|
||||
|
||||
# Mount additional secrets into the Valkey container
|
||||
extraValkeySecrets: []
|
||||
|
||||
# Mount additional configMaps into the Valkey container
|
||||
extraValkeyConfigs: []
|
||||
|
||||
# Mount extra secrets as volume to init container (deprecated, use extraValkeySecrets)
|
||||
extraSecretValkeyConfigs: false
|
||||
|
||||
# Mount additional emptyDir or hostPath volumes (advanced use)
|
||||
extraStorage: []
|
||||
|
||||
# Content for valkey.conf (will be mounted via ConfigMap)
|
||||
valkeyConfig: ""
|
||||
|
||||
auth:
|
||||
# Enable ACL-based authentication
|
||||
enabled: false
|
||||
|
||||
# Default ACL rules (used only if auth.enabled is true)
|
||||
aclConfig: |
|
||||
# Users and permissions can be defined here
|
||||
# Example:
|
||||
# user default off
|
||||
# user default on >defaultpassword ~* &* +@all
|
||||
|
||||
# Node selector for pod assignment
|
||||
nodeSelector: {}
|
||||
|
||||
# Tolerations for pod assignment to tainted nodes
|
||||
tolerations: []
|
||||
|
||||
# Affinity rules for pod scheduling
|
||||
affinity: {}
|
||||
|
||||
# See https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints
|
||||
topologySpreadConstraints: {}
|
||||
|
||||
# Valkey logging level: debug, verbose, notice, warning
|
||||
valkeyLogLevel: "notice"
|
||||
|
||||
metrics:
|
||||
# Enable Prometheus exporter sidecar
|
||||
enabled: false
|
||||
|
||||
exporter:
|
||||
# Additional secrets to mount for metrics exporter
|
||||
extraExporterSecrets: []
|
||||
|
||||
# Environment variables to inject into Valkey container
|
||||
env: {}
|
||||
# Example:
|
||||
# LOG_LEVEL: info
|
||||
Reference in New Issue
Block a user