From 66412ff589abe68349304c5d90d44d990a95a254 Mon Sep 17 00:00:00 2001 From: Philippe Caseiro Date: Tue, 20 May 2025 15:52:43 +0200 Subject: [PATCH] feat(node): adding all in one node support --- files/default.vcl | 6 - kustomization.yaml | 11 +- misc/docker/Dockerfile | 1 + resources/deployment.yaml | 53 --- .../node/files/conf/replication.conf.tpl | 108 ++++++ resources/node/files/conf/sentinel.conf.tpl | 41 +++ .../node/files/scripts/liveness-local.sh | 27 ++ resources/node/files/scripts/ping-sentinel.sh | 28 ++ .../node/files/scripts/pre-start-sentinel.sh | 0 resources/node/files/scripts/pre-stop.sh | 50 +++ .../node/files/scripts/readiness-local.sh | 26 ++ resources/node/kustomization.yaml | 30 ++ resources/node/resources/sa.yaml | 10 + resources/node/resources/statefulset.yaml | 311 ++++++++++++++++++ resources/svc.yaml | 12 - 15 files changed, 633 insertions(+), 81 deletions(-) delete mode 100644 files/default.vcl delete mode 100644 resources/deployment.yaml create mode 100644 resources/node/files/conf/replication.conf.tpl create mode 100644 resources/node/files/conf/sentinel.conf.tpl create mode 100644 resources/node/files/scripts/liveness-local.sh create mode 100644 resources/node/files/scripts/ping-sentinel.sh create mode 100644 resources/node/files/scripts/pre-start-sentinel.sh create mode 100644 resources/node/files/scripts/pre-stop.sh create mode 100644 resources/node/files/scripts/readiness-local.sh create mode 100644 resources/node/kustomization.yaml create mode 100644 resources/node/resources/sa.yaml create mode 100644 resources/node/resources/statefulset.yaml delete mode 100644 resources/svc.yaml diff --git a/files/default.vcl b/files/default.vcl deleted file mode 100644 index 1cb8790..0000000 --- a/files/default.vcl +++ /dev/null @@ -1,6 +0,0 @@ -vcl 4.0; - -backend default { - .host = "127.0.0.1"; - .port = "8080"; -} \ No newline at end of file diff --git a/kustomization.yaml b/kustomization.yaml index 10dfa43..ad68128 100644 --- a/kustomization.yaml +++ b/kustomization.yaml @@ -2,13 +2,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: -- resources/deployment.yaml -- resources/svc.yaml - -configMapGenerator: -- name: varnish-env - literals: - - VARNISH_SIZE=1G -- name: varnish-config - files: - - files/default.vcl +- resources/node diff --git a/misc/docker/Dockerfile b/misc/docker/Dockerfile index d468f70..0591de2 100644 --- a/misc/docker/Dockerfile +++ b/misc/docker/Dockerfile @@ -14,5 +14,6 @@ RUN git clone https://github.com/coveooss/gotemplate.git . && \ FROM busybox COPY --from=builder /app/gotemplate /gotemplate +COPY --from=builder /bin/cp /cp ENTRYPOINT [ "/gotemplate" ] \ No newline at end of file diff --git a/resources/deployment.yaml b/resources/deployment.yaml deleted file mode 100644 index 3ae5e80..0000000 --- a/resources/deployment.yaml +++ /dev/null @@ -1,53 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: varnish - labels: - app: varnish -spec: - replicas: 1 - selector: - matchLabels: - app: varnish - template: - metadata: - labels: - app: varnish - spec: - containers: - - name: varnish - image: reg.cadoles.com/dh/library/varnish:7.6.1-alpine - imagePullPolicy: IfNotPresent - env: - - name: VARNISH_HTTP_PORT - value: "8080" - envFrom: - - configMapRef: - name: varnish-env - ports: - - containerPort: 8080 - volumeMounts: - - mountPath: /etc/varnish/default.vcl - name: varnish-config - subPath: default.vcl - - mountPath: /var/lib/varnish/varnishd - name: varnish-lib - securityContext: - readOnlyRootFilesystem: true - allowPrivilegeEscalation: false - capabilities: - add: [ "IPC_LOCK" ] - volumes: - - name: varnish-config - configMap: - name: varnish-config - items: - - key: default.vcl - path: default.vcl - - name: varnish-lib - emptyDir: - sizeLimit: 1Gi - securityContext: - runAsUser: 1000 - runAsGroup: 1000 - runAsNonRoot: true diff --git a/resources/node/files/conf/replication.conf.tpl b/resources/node/files/conf/replication.conf.tpl new file mode 100644 index 0000000..a2cc086 --- /dev/null +++ b/resources/node/files/conf/replication.conf.tpl @@ -0,0 +1,108 @@ +################################## INCLUDES ################################### +################################## MODULES ##################################### +################################## NETWORK ##################################### +bind 127.0.0.1 -::1 +protected-mode yes +port 6379 +tcp-backlog 511 +timeout 0 +tcp-keepalive 300 +################################# TLS/SSL ##################################### +port {{ env "VALKEY_PORT" }} +################################### RDMA ###################################### +################################# GENERAL ##################################### +daemonize yes +pidfile /opt/bitnami/valkey/tmp/valkey.pid +loglevel notice +logfile "" +databases 16 +always-show-logo no +hide-user-data-from-log yes +set-proc-title yes +proc-title-template "{title} {listen-addr} {server-mode}" +locale-collate "" +################################ SNAPSHOTTING ################################ +stop-writes-on-bgsave-error yes +rdbcompression yes +rdbchecksum yes +rdb-version-check strict +dbfilename dump.rdb +rdb-del-sync-files no +dir {{ env "VALKEY_DATA_DIR" }} +################################# REPLICATION ################################# +replica-serve-stale-data yes +replica-read-only yes +repl-diskless-sync yes +repl-diskless-sync-delay 5 +repl-diskless-sync-max-replicas 0 +repl-diskless-load disabled +dual-channel-replication-enabled no +repl-disable-tcp-nodelay no +replica-priority 100 +############################### KEYS TRACKING ################################# +################################## SECURITY ################################### +acllog-max-len 128 +################################### CLIENTS #################################### +############################## MEMORY MANAGEMENT ################################ +############################# LAZY FREEING #################################### +lazyfree-lazy-eviction yes +lazyfree-lazy-expire yes +lazyfree-lazy-server-del yes +replica-lazy-flush yes +lazyfree-lazy-user-del yes +lazyfree-lazy-user-flush yes +################################ THREADED I/O ################################# +############################ KERNEL OOM CONTROL ############################## +oom-score-adj no +oom-score-adj-values 0 200 800 +#################### KERNEL transparent hugepage CONTROL ###################### +disable-thp yes +############################## APPEND ONLY MODE ############################### +appendonly no +appendfilename "appendonly.aof" +appenddirname "appendonlydir" +appendfsync everysec +no-appendfsync-on-rewrite no +auto-aof-rewrite-percentage 100 +auto-aof-rewrite-min-size 64mb +aof-load-truncated yes +aof-use-rdb-preamble yes +aof-timestamp-enabled no +################################ SHUTDOWN ##################################### +################ NON-DETERMINISTIC LONG BLOCKING COMMANDS ##################### +################################ VALKEY CLUSTER ############################### +########################## CLUSTER DOCKER/NAT support ######################## +################################## COMMAND LOG ################################### +commandlog-execution-slower-than 10000 +commandlog-slow-execution-max-len 128 +commandlog-request-larger-than 1048576 +commandlog-large-request-max-len 128 +commandlog-reply-larger-than 1048576 +commandlog-large-reply-max-len 128 +################################ LATENCY MONITOR ############################## +latency-monitor-threshold 0 +################################ LATENCY TRACKING ############################## +############################# EVENT NOTIFICATION ############################## +notify-keyspace-events "" +############################### ADVANCED CONFIG ############################### +hash-max-listpack-entries 512 +hash-max-listpack-value 64 +list-max-listpack-size -2 +list-compress-depth 0 +set-max-intset-entries 512 +set-max-listpack-entries 128 +set-max-listpack-value 64 +zset-max-listpack-entries 128 +zset-max-listpack-value 64 +hll-sparse-max-bytes 3000 +stream-node-max-bytes 4096 +stream-node-max-entries 100 +activerehashing yes +client-output-buffer-limit normal 0 0 0 +client-output-buffer-limit replica 256mb 64mb 60 +client-output-buffer-limit pubsub 32mb 8mb 60 +hz 10 +aof-rewrite-incremental-fsync yes +rdb-save-incremental-fsync yes +########################### ACTIVE DEFRAGMENTATION ####################### +jemalloc-bg-thread yes diff --git a/resources/node/files/conf/sentinel.conf.tpl b/resources/node/files/conf/sentinel.conf.tpl new file mode 100644 index 0000000..5a22f32 --- /dev/null +++ b/resources/node/files/conf/sentinel.conf.tpl @@ -0,0 +1,41 @@ +{{- $hostname := env "HOSTNAME" }} +{{- $service := env "VALKEY_SERVICE" }} +{{- $namespace := env "NAMESPACE" }} +{{- $port := env "VALKEY_PORT" }} +{{- $sentinel_port := env "VALKEY_SENTINEL_PORT" }} +{{- $replicas := env "VALKEY_REPLICAS" }} +{{- $domain := printf "%s.%s.svc.cluster.local" $service $namespace }} +{{- $fqdn := printf "%s.%s" $hostname $domain }} +{{- $hostid := sha1sum $hostname }} + +dir "/tmp" +port {{ $port }} +sentinel monitor mymaster {{ printf "%s %s" $fqdn $port }} 2 +sentinel down-after-milliseconds mymaster 60000 + +# User-supplied sentinel configuration: +# End of sentinel configuration +{{- printf "sentinel myid %s" $hostid }} + +sentinel announce-hostnames yes +sentinel resolve-hostnames yes +sentinel announce-port {{- $sentinel_port }} +sentinel announce-ip {{- $fqdn }} + +# Generated by CONFIG REWRITE +latency-tracking-info-percentiles 50 99 99.9 +protected-mode no +# gotemplate-pause! +user default on nopass sanitize-payload ~* &* +@all +# gotemplate-resume! +sentinel config-epoch mymaster 0 +sentinel leader-epoch mymaster 0 +sentinel current-epoch 0 + +{{- range $i, $e := until ( int $replicas ) }} + {{- $ndeHostname := printf "valkey-node-%d" $i }} + {{- $ndeFQDN := printf "%s.%s" $ndeHostname $domain }} + {{- $nodeID := sha1sum $ndeHostname }} +sentinel {{ printf "known-sentinel mymaster %s %s %s" $ndeFQDN $sentinel_port $nodeID }} +sentinel {{ printf "known-replica mymaster %s %s" $ndeFQDN $port }} +{{- end}} \ No newline at end of file diff --git a/resources/node/files/scripts/liveness-local.sh b/resources/node/files/scripts/liveness-local.sh new file mode 100644 index 0000000..f56965f --- /dev/null +++ b/resources/node/files/scripts/liveness-local.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +ping_valkey() { + resp=$(timeout -s 15 $1 \ + valkey-cli \ + -h localhost \ + -p $VALKEY_PORT \ + ping) + ret=${?} + echo $resp + return ${ret} +} + +response=$(ping_valkey 5) +if [ "$?" -eq "124" ]; then + echo "Timed out" + exit 1 +fi + +firstWord=$(echo $response | awk 'NR==1 {print $1;}') +if [ "$response" != "PONG" ] && [ "$firstWord" != "LOADING" ] && [ "$firstWord" != "MASTERDOWN" ]; then + echo "Valey is not alive [${response}]" + exit 1 +fi + +echo "$( date +'[%Y/%m/%d %H:%M:%S]') Valkey is alive" +exit 0 diff --git a/resources/node/files/scripts/ping-sentinel.sh b/resources/node/files/scripts/ping-sentinel.sh new file mode 100644 index 0000000..892712b --- /dev/null +++ b/resources/node/files/scripts/ping-sentinel.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +ping_sentinel() { + resp=$(timeout -s 15 $1 \ + valkey-cli \ + -h localhost \ + -p $VALKEY_SENTINEL_PORT \ + ping) + ret=${?} + echo $resp + return ${ret} +} + + +response=$(ping_sentinel 5) +if [ "${?}" -eq 124 ]; then + echo "Sentinel ping timed out" + exit 124 +fi + +if [ "${response}" != "PONG" ]; +then + echo "Sentinel is not responding" + exit 1 +fi + +echo "$( date +'[%Y/%m/%d %H:%M:%S]') Sentinel is responding" +exit 0 \ No newline at end of file diff --git a/resources/node/files/scripts/pre-start-sentinel.sh b/resources/node/files/scripts/pre-start-sentinel.sh new file mode 100644 index 0000000..e69de29 diff --git a/resources/node/files/scripts/pre-stop.sh b/resources/node/files/scripts/pre-stop.sh new file mode 100644 index 0000000..506ecb6 --- /dev/null +++ b/resources/node/files/scripts/pre-stop.sh @@ -0,0 +1,50 @@ +#!/bin/bash + +# Run Valkey command +vcli() { + valkey_cli -h 127.0.0.1 -P "${VALKEY_PORT}" "$@" + return $? +} + +# Run Sentinel command +vscli() { + valkey-cli -h "$VALKEY_SERVICE" -p "$VALKEY_SENTINEL_PORT" sentinel "$@" + return $? +} + +sentinelFailOverFinished() { + # Check if the failover is finished + local failoverStatus + primaryInfo=$(vscli get-primary-by-name "mymaster") + primaryHost=${primaryInfo[0]} + fullPrimaryHostname="${primaryHost}.${HEADLESS_SERVICE}" + [[ "${fullPrimaryHostname}" == "${HOSTNAME}}" ]] +} + +if [ "${VALKEY_ROLE}" = "replication"]; then + echo "Stopping replication" + ROLE=$(vcli role | head 1) + if [ "${ROLE}" = "master" ]; then + #Pausing write connections to avoid data loss" + vcli CLIENT PAUSE "22000" + + echo "Failover in progress" + vscli failover "mymaster" + i=0 + while true; do + sentinelFailOverFinished + if [ $? -eq 0 ]; then + echo "Failover finished" + break + fi + sleep 1 + i=$((i + 1)) + if [ $i -gt 60 ]; then + echo "Failover timed out" + exit 1 + fi + done + else + exit 0 + fi +fi \ No newline at end of file diff --git a/resources/node/files/scripts/readiness-local.sh b/resources/node/files/scripts/readiness-local.sh new file mode 100644 index 0000000..c852cb1 --- /dev/null +++ b/resources/node/files/scripts/readiness-local.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +ping_valkey() { + resp=$(timeout -s 15 $1 \ + valkey-cli \ + -h localhost \ + -p $VALKEY_PORT \ + ping) + ret=${?} + echo $resp + return ${ret} +} + +response=$(ping_valkey 5) +if [ "$?" -eq "124" ]; then + echo "Timed out" + exit 1 +fi + +if [ "$response" != "PONG" ]; then + echo "Valey is not ready [${response}]" + exit 1 +fi + +echo "$( date +'[%Y/%m/%d %H:%M:%S]') Valkey is ready" +exit 0 diff --git a/resources/node/kustomization.yaml b/resources/node/kustomization.yaml new file mode 100644 index 0000000..d49648c --- /dev/null +++ b/resources/node/kustomization.yaml @@ -0,0 +1,30 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: +- resources/sa.yaml +- resources/statefulset.yaml + +configMapGenerator: +- name: valkey-env + literals: + - NAMESPACE="default" + - VALKEY_ENV="base" + - VALKEY_REPLICAS="4" + - VALKEY_PORT="6379" + - VALKEY_SENTINEL_PORT="26379" + - ALLOW_EMPTY_PASSWORD="yes" + - VALKEY_TLS_ENABLED="no" + - VALKEY_SENTINEL_TLS_ENABLED="no" + - VALKEY_DATA_DIR="/data" +- name: valkey-config + files: + - files/conf/replication.conf.tpl + - files/conf/sentinel.conf.tpl +- name: valkey-scripts + files: + - files/scripts/pre-stop.sh + - files/scripts/pre-start-sentinel.sh + - files/scripts/ping-sentinel.sh + - files/scripts/liveness-local.sh + - files/scripts/readiness-local.sh diff --git a/resources/node/resources/sa.yaml b/resources/node/resources/sa.yaml new file mode 100644 index 0000000..4e0e6e6 --- /dev/null +++ b/resources/node/resources/sa.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: + app.kubernetes.io/instance: valkey + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: valkey + app.kubernetes.io/part-of: valkey + app.kubernetes.io/version: 8.1.1 + name: valkey diff --git a/resources/node/resources/statefulset.yaml b/resources/node/resources/statefulset.yaml new file mode 100644 index 0000000..02f6652 --- /dev/null +++ b/resources/node/resources/statefulset.yaml @@ -0,0 +1,311 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + labels: + app.kubernetes.io/component: node + app.kubernetes.io/instance: valkey + app.kubernetes.io/managed-by: kustomize + app.kubernetes.io/name: valkey + app.kubernetes.io/part-of: valkey + app.kubernetes.io/version: 8.1.1 + name: valkey-node +spec: + persistentVolumeClaimRetentionPolicy: + whenDeleted: Retain + whenScaled: Retain + podManagementPolicy: OrderedReady + replicas: 4 + revisionHistoryLimit: 10 + selector: + matchLabels: + app.kubernetes.io/component: node + app.kubernetes.io/instance: valkey + app.kubernetes.io/name: valkey + serviceName: valkey-headless + updateStrategy: + type: RollingUpdate + template: + metadata: + labels: + app.kubernetes.io/component: node + app.kubernetes.io/instance: valkey + app.kubernetes.io/managed-by: Helm + app.kubernetes.io/name: valkey + app.kubernetes.io/version: 8.1.1 + helm.sh/chart: valkey-3.0.7 + spec: + affinity: + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - podAffinityTerm: + labelSelector: + matchLabels: + app.kubernetes.io/component: node + app.kubernetes.io/instance: valkey + app.kubernetes.io/name: valkey + topologyKey: kubernetes.io/hostname + weight: 1 + automountServiceAccountToken: false + initContainers: + - name: copy-config-templates + image: reg.cadoles.com/dh/library/busybox:1.37.0-musl + command: + - /bin/cp + args: + - -R + - /templates + - /tmp/ + imagePullPolicy: IfNotPresent + resources: + limits: + cpu: 100m + memory: 128Mi + requests: + cpu: 100m + memory: 128Mi + volumeMounts: + - mountPath: /templates/replication.conf + name: valkey-config + subPath: replication.conf.tpl + - mountPath: /templates/sentinel.conf + name: valkey-config + subPath: sentinel.conf.tpl + - mountPath: /tmp/ + name: tmp + - name: generate-config + image: reg.cadoles.com/cadoles/gotemplate:0.0.5-dev + imagePullPolicy: IfNotPresent + args: + - --source + - /tmp/templates + - --target + - /etc/valkey/ + - --no-overwrite + - replication.conf + - sentinel.conf + envFrom: + - configMapRef: + name: valkey-env + resources: + limits: + cpu: 100m + memory: 128Mi + requests: + cpu: 100m + memory: 128Mi + volumeMounts: + - mountPath: /etc/valkey/ + name: valkey-etc + - mountPath: /tmp/ + name: tmp + containers: + - name: valkey + image: reg.cadoles.com/dh/valkey/valkey:8.1.1-alpine3.21 + command: + - valkey-server + args: + - /etc/valkey/replication.conf + imagePullPolicy: IfNotPresent + env: + - name: VALKEY_ROLE + value: "replication" + lifecycle: + preStop: + exec: + command: + - /bin/bash + - -c + - /opt/scripts/pre-stop.sh + livenessProbe: + exec: + command: + - sh + - -c + - /opt/scripts/liveness-local.sh 5 + failureThreshold: 5 + initialDelaySeconds: 20 + periodSeconds: 5 + successThreshold: 1 + timeoutSeconds: 5 + ports: + - containerPort: 6379 + name: valkey + protocol: TCP + readinessProbe: + exec: + command: + - sh + - -c + - /opt/scripts/readiness-local.sh 1 + failureThreshold: 5 + initialDelaySeconds: 20 + periodSeconds: 5 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + cpu: 150m + memory: 192Mi + ephemeral-storage: 2Gi + requests: + cpu: 100m + memory: 128Mi + ephemeral-storage: 50Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + runAsGroup: 1001 + runAsNonRoot: true + runAsUser: 1001 + seLinuxOptions: {} + seccompProfile: + type: RuntimeDefault + startupProbe: + exec: + command: + - sh + - -c + - /opt/scripts/liveness-local.sh 5 + failureThreshold: 22 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /etc/valkey/ + name: valkey-etc + - mountPath: /opt/scripts + name: valkey-scripts + - name: sentinel + image: reg.cadoles.com/dh/valkey/valkey:8.1.1-alpine3.21 + imagePullPolicy: IfNotPresent + command: + args: + - --sentienel + - /etc/valkey/sentinel.conf + env: + - name: ALLOW_EMPTY_PASSWORD + value: "yes" + - name: VALKEY_SENTINEL_TLS_ENABLED + value: "no" + - name: VALKEY_SENTINEL_PORT + value: "26379" + # lifecycle: + # preStop: + # exec: + # command: + # - /bin/bash + # - -c + # - /opt/scripts/pre-stop-sentinel.sh + livenessProbe: + exec: + command: + - sh + - -c + - /health/ping_sentinel.sh 5 + failureThreshold: 6 + initialDelaySeconds: 20 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + ports: + - containerPort: 26379 + name: valkey-sentinel + protocol: TCP + readinessProbe: + exec: + command: + - sh + - -c + - /health/ping_sentinel.sh 1 + failureThreshold: 6 + initialDelaySeconds: 20 + periodSeconds: 5 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + cpu: 150m + ephemeral-storage: 2Gi + memory: 192Mi + requests: + cpu: 100m + ephemeral-storage: 50Mi + memory: 128Mi + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + runAsGroup: 1001 + runAsNonRoot: true + runAsUser: 1001 + seLinuxOptions: {} + seccompProfile: + type: RuntimeDefault + startupProbe: + exec: + command: + - sh + - -c + - /opt/scripts/ping-sentinel.sh 5 + failureThreshold: 22 + initialDelaySeconds: 10 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 5 + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /opt/scripts + name: valkey-scripts + - mountPath: /etc/valkey/ + name: valkey-etc + dnsPolicy: ClusterFirst + enableServiceLinks: true + restartPolicy: Always + schedulerName: default-scheduler + securityContext: + fsGroup: 1001 + fsGroupChangePolicy: Always + serviceAccount: valkey + serviceAccountName: valkey + terminationGracePeriodSeconds: 30 + volumes: + - name: valkey-scripts + configMap: + defaultMode: 493 + name: valkey-scripts + - name: valkey-config + configMap: + defaultMode: 420 + name: valkey-config + - emptyDir: {} + name: valkey-etc + - emptyDir: {} + name: tmp + volumeClaimTemplates: + - apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + creationTimestamp: null + labels: + app.kubernetes.io/component: node + app.kubernetes.io/instance: valkey + app.kubernetes.io/name: valkey + name: valkey-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 8Gi + volumeMode: Filesystem + status: + phase: Pending diff --git a/resources/svc.yaml b/resources/svc.yaml deleted file mode 100644 index 8e5047d..0000000 --- a/resources/svc.yaml +++ /dev/null @@ -1,12 +0,0 @@ -kind: Service -apiVersion: v1 -metadata: - name: varnish -spec: - selector: - app: varnish - ports: - - name: varnish-http - protocol: TCP - port: 8080 - targetPort: 8080