github.com/argoproj/argo-cd@v1.8.7/manifests/ha/base/redis-ha/chart/upstream.yaml (about) 1 # This is an auto-generated file. DO NOT EDIT 2 --- 3 # Source: redis-ha/charts/redis-ha/templates/redis-ha-configmap.yaml 4 apiVersion: v1 5 kind: ConfigMap 6 metadata: 7 name: argocd-redis-ha-configmap 8 namespace: argocd 9 labels: 10 heritage: Tiller 11 release: argocd 12 chart: redis-ha-4.5.3 13 app: argocd-redis-ha 14 data: 15 redis.conf: | 16 dir "/data" 17 port 6379 18 maxmemory 0 19 maxmemory-policy volatile-lru 20 min-replicas-max-lag 5 21 min-replicas-to-write 1 22 rdbchecksum yes 23 rdbcompression yes 24 repl-diskless-sync yes 25 save "" 26 27 sentinel.conf: | 28 dir "/data" 29 sentinel down-after-milliseconds argocd 10000 30 sentinel failover-timeout argocd 180000 31 maxclients 10000 32 sentinel parallel-syncs argocd 5 33 34 init.sh: | 35 HOSTNAME="$(hostname)" 36 INDEX="${HOSTNAME##*-}" 37 MASTER="$(redis-cli -h argocd-redis-ha -p 26379 sentinel get-master-addr-by-name argocd | grep -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}')" 38 MASTER_GROUP="argocd" 39 QUORUM="2" 40 REDIS_CONF=/data/conf/redis.conf 41 REDIS_PORT=6379 42 SENTINEL_CONF=/data/conf/sentinel.conf 43 SENTINEL_PORT=26379 44 SERVICE=argocd-redis-ha 45 set -eu 46 47 sentinel_update() { 48 echo "Updating sentinel config with master $MASTER" 49 eval MY_SENTINEL_ID="\${SENTINEL_ID_$INDEX}" 50 sed -i "1s/^/sentinel myid $MY_SENTINEL_ID\\n/" "$SENTINEL_CONF" 51 sed -i "2s/^/sentinel monitor $MASTER_GROUP $1 $REDIS_PORT $QUORUM \\n/" "$SENTINEL_CONF" 52 echo "sentinel announce-ip $ANNOUNCE_IP" >> $SENTINEL_CONF 53 echo "sentinel announce-port $SENTINEL_PORT" >> $SENTINEL_CONF 54 } 55 56 redis_update() { 57 echo "Updating redis config" 58 echo "slaveof $1 $REDIS_PORT" >> "$REDIS_CONF" 59 echo "slave-announce-ip $ANNOUNCE_IP" >> $REDIS_CONF 60 echo "slave-announce-port $REDIS_PORT" >> $REDIS_CONF 61 } 62 63 copy_config() { 64 cp /readonly-config/redis.conf "$REDIS_CONF" 65 cp /readonly-config/sentinel.conf "$SENTINEL_CONF" 66 } 67 68 setup_defaults() { 69 echo "Setting up defaults" 70 if [ "$INDEX" = "0" ]; then 71 echo "Setting this pod as the default master" 72 redis_update "$ANNOUNCE_IP" 73 sentinel_update "$ANNOUNCE_IP" 74 sed -i "s/^.*slaveof.*//" "$REDIS_CONF" 75 else 76 DEFAULT_MASTER="$(getent hosts "$SERVICE-announce-0" | awk '{ print $1 }')" 77 if [ -z "$DEFAULT_MASTER" ]; then 78 echo "Unable to resolve host" 79 exit 1 80 fi 81 echo "Setting default slave config.." 82 redis_update "$DEFAULT_MASTER" 83 sentinel_update "$DEFAULT_MASTER" 84 fi 85 } 86 87 find_master() { 88 echo "Attempting to find master" 89 if [ "$(redis-cli -h "$MASTER" ping)" != "PONG" ]; then 90 echo "Can't ping master, attempting to force failover" 91 if redis-cli -h "$SERVICE" -p "$SENTINEL_PORT" sentinel failover "$MASTER_GROUP" | grep -q 'NOGOODSLAVE' ; then 92 setup_defaults 93 return 0 94 fi 95 sleep 10 96 MASTER="$(redis-cli -h $SERVICE -p $SENTINEL_PORT sentinel get-master-addr-by-name $MASTER_GROUP | grep -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}')" 97 if [ "$MASTER" ]; then 98 sentinel_update "$MASTER" 99 redis_update "$MASTER" 100 else 101 echo "Could not failover, exiting..." 102 exit 1 103 fi 104 else 105 echo "Found reachable master, updating config" 106 sentinel_update "$MASTER" 107 redis_update "$MASTER" 108 fi 109 } 110 111 mkdir -p /data/conf/ 112 113 echo "Initializing config.." 114 copy_config 115 116 ANNOUNCE_IP=$(getent hosts "$SERVICE-announce-$INDEX" | awk '{ print $1 }') 117 if [ -z "$ANNOUNCE_IP" ]; then 118 "Could not resolve the announce ip for this pod" 119 exit 1 120 elif [ "$MASTER" ]; then 121 find_master 122 else 123 setup_defaults 124 fi 125 126 if [ "${AUTH:-}" ]; then 127 echo "Setting auth values" 128 ESCAPED_AUTH=$(echo "$AUTH" | sed -e 's/[\/&]/\\&/g'); 129 sed -i "s/replace-default-auth/${ESCAPED_AUTH}/" "$REDIS_CONF" "$SENTINEL_CONF" 130 fi 131 132 echo "Ready..." 133 134 haproxy.cfg: |- 135 defaults REDIS 136 mode tcp 137 timeout connect 4s 138 timeout server 6m 139 timeout client 6m 140 timeout check 2s 141 142 listen health_check_http_url 143 bind :8888 144 mode http 145 monitor-uri /healthz 146 option dontlognull 147 # Check Sentinel and whether they are nominated master 148 backend check_if_redis_is_master_0 149 mode tcp 150 option tcp-check 151 tcp-check connect 152 tcp-check send PING\r\n 153 tcp-check expect string +PONG 154 tcp-check send SENTINEL\ get-master-addr-by-name\ argocd\r\n 155 tcp-check expect string REPLACE_ANNOUNCE0 156 tcp-check send QUIT\r\n 157 tcp-check expect string +OK 158 server R0 argocd-redis-ha-announce-0:26379 check inter 3s 159 server R1 argocd-redis-ha-announce-1:26379 check inter 3s 160 server R2 argocd-redis-ha-announce-2:26379 check inter 3s 161 # Check Sentinel and whether they are nominated master 162 backend check_if_redis_is_master_1 163 mode tcp 164 option tcp-check 165 tcp-check connect 166 tcp-check send PING\r\n 167 tcp-check expect string +PONG 168 tcp-check send SENTINEL\ get-master-addr-by-name\ argocd\r\n 169 tcp-check expect string REPLACE_ANNOUNCE1 170 tcp-check send QUIT\r\n 171 tcp-check expect string +OK 172 server R0 argocd-redis-ha-announce-0:26379 check inter 3s 173 server R1 argocd-redis-ha-announce-1:26379 check inter 3s 174 server R2 argocd-redis-ha-announce-2:26379 check inter 3s 175 # Check Sentinel and whether they are nominated master 176 backend check_if_redis_is_master_2 177 mode tcp 178 option tcp-check 179 tcp-check connect 180 tcp-check send PING\r\n 181 tcp-check expect string +PONG 182 tcp-check send SENTINEL\ get-master-addr-by-name\ argocd\r\n 183 tcp-check expect string REPLACE_ANNOUNCE2 184 tcp-check send QUIT\r\n 185 tcp-check expect string +OK 186 server R0 argocd-redis-ha-announce-0:26379 check inter 3s 187 server R1 argocd-redis-ha-announce-1:26379 check inter 3s 188 server R2 argocd-redis-ha-announce-2:26379 check inter 3s 189 190 # decide redis backend to use 191 #master 192 frontend ft_redis_master 193 bind *:6379 194 use_backend bk_redis_master 195 # Check all redis servers to see if they think they are master 196 backend bk_redis_master 197 mode tcp 198 option tcp-check 199 tcp-check connect 200 tcp-check send PING\r\n 201 tcp-check expect string +PONG 202 tcp-check send info\ replication\r\n 203 tcp-check expect string role:master 204 tcp-check send QUIT\r\n 205 tcp-check expect string +OK 206 use-server R0 if { srv_is_up(R0) } { nbsrv(check_if_redis_is_master_0) ge 2 } 207 server R0 argocd-redis-ha-announce-0:6379 check inter 3s fall 1 rise 1 208 use-server R1 if { srv_is_up(R1) } { nbsrv(check_if_redis_is_master_1) ge 2 } 209 server R1 argocd-redis-ha-announce-1:6379 check inter 3s fall 1 rise 1 210 use-server R2 if { srv_is_up(R2) } { nbsrv(check_if_redis_is_master_2) ge 2 } 211 server R2 argocd-redis-ha-announce-2:6379 check inter 3s fall 1 rise 1 212 haproxy_init.sh: | 213 HAPROXY_CONF=/data/haproxy.cfg 214 cp /readonly/haproxy.cfg "$HAPROXY_CONF" 215 for loop in $(seq 1 10); do 216 getent hosts argocd-redis-ha-announce-0 && break 217 echo "Waiting for service argocd-redis-ha-announce-0 to be ready ($loop) ..." && sleep 1 218 done 219 ANNOUNCE_IP0=$(getent hosts "argocd-redis-ha-announce-0" | awk '{ print $1 }') 220 if [ -z "$ANNOUNCE_IP0" ]; then 221 echo "Could not resolve the announce ip for argocd-redis-ha-announce-0" 222 exit 1 223 fi 224 sed -i "s/REPLACE_ANNOUNCE0/$ANNOUNCE_IP0/" "$HAPROXY_CONF" 225 226 if [ "${AUTH:-}" ]; then 227 echo "Setting auth values" 228 ESCAPED_AUTH=$(echo "$AUTH" | sed -e 's/[\/&]/\\&/g'); 229 sed -i "s/REPLACE_AUTH_SECRET/${ESCAPED_AUTH}/" "$HAPROXY_CONF" 230 fi 231 for loop in $(seq 1 10); do 232 getent hosts argocd-redis-ha-announce-1 && break 233 echo "Waiting for service argocd-redis-ha-announce-1 to be ready ($loop) ..." && sleep 1 234 done 235 ANNOUNCE_IP1=$(getent hosts "argocd-redis-ha-announce-1" | awk '{ print $1 }') 236 if [ -z "$ANNOUNCE_IP1" ]; then 237 echo "Could not resolve the announce ip for argocd-redis-ha-announce-1" 238 exit 1 239 fi 240 sed -i "s/REPLACE_ANNOUNCE1/$ANNOUNCE_IP1/" "$HAPROXY_CONF" 241 242 if [ "${AUTH:-}" ]; then 243 echo "Setting auth values" 244 ESCAPED_AUTH=$(echo "$AUTH" | sed -e 's/[\/&]/\\&/g'); 245 sed -i "s/REPLACE_AUTH_SECRET/${ESCAPED_AUTH}/" "$HAPROXY_CONF" 246 fi 247 for loop in $(seq 1 10); do 248 getent hosts argocd-redis-ha-announce-2 && break 249 echo "Waiting for service argocd-redis-ha-announce-2 to be ready ($loop) ..." && sleep 1 250 done 251 ANNOUNCE_IP2=$(getent hosts "argocd-redis-ha-announce-2" | awk '{ print $1 }') 252 if [ -z "$ANNOUNCE_IP2" ]; then 253 echo "Could not resolve the announce ip for argocd-redis-ha-announce-2" 254 exit 1 255 fi 256 sed -i "s/REPLACE_ANNOUNCE2/$ANNOUNCE_IP2/" "$HAPROXY_CONF" 257 258 if [ "${AUTH:-}" ]; then 259 echo "Setting auth values" 260 ESCAPED_AUTH=$(echo "$AUTH" | sed -e 's/[\/&]/\\&/g'); 261 sed -i "s/REPLACE_AUTH_SECRET/${ESCAPED_AUTH}/" "$HAPROXY_CONF" 262 fi 263 264 --- 265 # Source: redis-ha/charts/redis-ha/templates/redis-ha-serviceaccount.yaml 266 267 apiVersion: v1 268 kind: ServiceAccount 269 metadata: 270 name: argocd-redis-ha 271 namespace: argocd 272 labels: 273 heritage: Tiller 274 release: argocd 275 chart: redis-ha-4.5.3 276 app: argocd-redis-ha 277 278 --- 279 # Source: redis-ha/charts/redis-ha/templates/redis-haproxy-serviceaccount.yaml 280 281 apiVersion: v1 282 kind: ServiceAccount 283 metadata: 284 name: argocd-redis-ha-haproxy 285 namespace: argocd 286 labels: 287 heritage: Tiller 288 release: argocd 289 chart: redis-ha-4.5.3 290 app: argocd-redis-ha 291 292 --- 293 # Source: redis-ha/charts/redis-ha/templates/redis-ha-role.yaml 294 295 apiVersion: rbac.authorization.k8s.io/v1 296 kind: Role 297 metadata: 298 name: argocd-redis-ha 299 namespace: argocd 300 labels: 301 heritage: Tiller 302 release: argocd 303 chart: redis-ha-4.5.3 304 app: argocd-redis-ha 305 rules: 306 - apiGroups: 307 - "" 308 resources: 309 - endpoints 310 verbs: 311 - get 312 313 --- 314 # Source: redis-ha/charts/redis-ha/templates/redis-ha-rolebinding.yaml 315 316 kind: RoleBinding 317 apiVersion: rbac.authorization.k8s.io/v1 318 metadata: 319 name: argocd-redis-ha 320 namespace: argocd 321 labels: 322 heritage: Tiller 323 release: argocd 324 chart: redis-ha-4.5.3 325 app: argocd-redis-ha 326 subjects: 327 - kind: ServiceAccount 328 name: argocd-redis-ha 329 roleRef: 330 apiGroup: rbac.authorization.k8s.io 331 kind: Role 332 name: argocd-redis-ha 333 334 --- 335 # Source: redis-ha/charts/redis-ha/templates/redis-ha-announce-service.yaml 336 337 --- 338 apiVersion: v1 339 kind: Service 340 metadata: 341 name: argocd-redis-ha-announce-0 342 namespace: argocd 343 labels: 344 app: redis-ha 345 heritage: "Tiller" 346 release: "argocd" 347 chart: redis-ha-4.5.3 348 annotations: 349 service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" 350 spec: 351 publishNotReadyAddresses: true 352 type: ClusterIP 353 ports: 354 - name: server 355 port: 6379 356 protocol: TCP 357 targetPort: redis 358 - name: sentinel 359 port: 26379 360 protocol: TCP 361 targetPort: sentinel 362 selector: 363 release: argocd 364 app: redis-ha 365 "statefulset.kubernetes.io/pod-name": argocd-redis-ha-server-0 366 --- 367 apiVersion: v1 368 kind: Service 369 metadata: 370 name: argocd-redis-ha-announce-1 371 namespace: argocd 372 labels: 373 app: redis-ha 374 heritage: "Tiller" 375 release: "argocd" 376 chart: redis-ha-4.5.3 377 annotations: 378 service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" 379 spec: 380 publishNotReadyAddresses: true 381 type: ClusterIP 382 ports: 383 - name: server 384 port: 6379 385 protocol: TCP 386 targetPort: redis 387 - name: sentinel 388 port: 26379 389 protocol: TCP 390 targetPort: sentinel 391 selector: 392 release: argocd 393 app: redis-ha 394 "statefulset.kubernetes.io/pod-name": argocd-redis-ha-server-1 395 --- 396 apiVersion: v1 397 kind: Service 398 metadata: 399 name: argocd-redis-ha-announce-2 400 namespace: argocd 401 labels: 402 app: redis-ha 403 heritage: "Tiller" 404 release: "argocd" 405 chart: redis-ha-4.5.3 406 annotations: 407 service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" 408 spec: 409 publishNotReadyAddresses: true 410 type: ClusterIP 411 ports: 412 - name: server 413 port: 6379 414 protocol: TCP 415 targetPort: redis 416 - name: sentinel 417 port: 26379 418 protocol: TCP 419 targetPort: sentinel 420 selector: 421 release: argocd 422 app: redis-ha 423 "statefulset.kubernetes.io/pod-name": argocd-redis-ha-server-2 424 425 --- 426 # Source: redis-ha/charts/redis-ha/templates/redis-ha-service.yaml 427 apiVersion: v1 428 kind: Service 429 metadata: 430 name: argocd-redis-ha 431 namespace: argocd 432 labels: 433 app: redis-ha 434 heritage: "Tiller" 435 release: "argocd" 436 chart: redis-ha-4.5.3 437 annotations: 438 spec: 439 type: ClusterIP 440 clusterIP: None 441 ports: 442 - name: server 443 port: 6379 444 protocol: TCP 445 targetPort: redis 446 - name: sentinel 447 port: 26379 448 protocol: TCP 449 targetPort: sentinel 450 selector: 451 release: argocd 452 app: redis-ha 453 --- 454 # Source: redis-ha/charts/redis-ha/templates/redis-haproxy-service.yaml 455 456 apiVersion: v1 457 kind: Service 458 metadata: 459 name: argocd-redis-ha-haproxy 460 namespace: argocd 461 labels: 462 app: redis-ha 463 heritage: "Tiller" 464 release: "argocd" 465 chart: redis-ha-4.5.3 466 component: argocd-redis-ha-haproxy 467 annotations: 468 spec: 469 type: ClusterIP 470 ports: 471 - name: haproxy 472 port: 6379 473 protocol: TCP 474 targetPort: redis 475 selector: 476 release: argocd 477 app: redis-ha-haproxy 478 479 --- 480 # Source: redis-ha/charts/redis-ha/templates/redis-haproxy-deployment.yaml 481 482 kind: Deployment 483 apiVersion: apps/v1 484 metadata: 485 name: argocd-redis-ha-haproxy 486 namespace: argocd 487 labels: 488 app: redis-ha 489 heritage: "Tiller" 490 release: "argocd" 491 chart: redis-ha-4.5.3 492 spec: 493 strategy: 494 type: RollingUpdate 495 revisionHistoryLimit: 1 496 replicas: 3 497 selector: 498 matchLabels: 499 app: redis-ha-haproxy 500 release: argocd 501 template: 502 metadata: 503 name: argocd-redis-ha-haproxy 504 labels: 505 app: redis-ha-haproxy 506 release: argocd 507 annotations: 508 checksum/config: 790be9eae7c7e468c497c0256949ab96cb3f14b935c6702424647c3c60fba91c 509 spec: 510 # Needed when using unmodified rbac-setup.yml 511 512 serviceAccountName: argocd-redis-ha-haproxy 513 514 nodeSelector: 515 {} 516 517 tolerations: 518 null 519 520 affinity: 521 podAntiAffinity: 522 requiredDuringSchedulingIgnoredDuringExecution: 523 - labelSelector: 524 matchLabels: 525 app: redis-ha-haproxy 526 release: argocd 527 topologyKey: kubernetes.io/hostname 528 preferredDuringSchedulingIgnoredDuringExecution: 529 - weight: 100 530 podAffinityTerm: 531 labelSelector: 532 matchLabels: 533 app: redis-ha-haproxy 534 release: argocd 535 topologyKey: failure-domain.beta.kubernetes.io/zone 536 initContainers: 537 - name: config-init 538 image: haproxy:2.0.4 539 imagePullPolicy: IfNotPresent 540 resources: 541 {} 542 543 command: 544 - sh 545 args: 546 - /readonly/haproxy_init.sh 547 volumeMounts: 548 - name: config-volume 549 mountPath: /readonly 550 readOnly: true 551 - name: data 552 mountPath: /data 553 securityContext: 554 fsGroup: 1000 555 runAsNonRoot: true 556 runAsUser: 1000 557 558 containers: 559 - name: haproxy 560 image: haproxy:2.0.4 561 imagePullPolicy: IfNotPresent 562 livenessProbe: 563 httpGet: 564 path: /healthz 565 port: 8888 566 initialDelaySeconds: 5 567 periodSeconds: 3 568 ports: 569 - name: redis 570 containerPort: 6379 571 resources: 572 {} 573 574 volumeMounts: 575 - name: data 576 mountPath: /usr/local/etc/haproxy 577 - name: shared-socket 578 mountPath: /run/haproxy 579 volumes: 580 - name: config-volume 581 configMap: 582 name: argocd-redis-ha-configmap 583 - name: shared-socket 584 emptyDir: 585 {} 586 587 - name: data 588 emptyDir: 589 {} 590 591 592 --- 593 # Source: redis-ha/charts/redis-ha/templates/redis-ha-statefulset.yaml 594 apiVersion: apps/v1 595 kind: StatefulSet 596 metadata: 597 name: argocd-redis-ha-server 598 namespace: argocd 599 labels: 600 argocd-redis-ha: replica 601 app: redis-ha 602 heritage: "Tiller" 603 release: "argocd" 604 chart: redis-ha-4.5.3 605 spec: 606 selector: 607 matchLabels: 608 release: argocd 609 app: redis-ha 610 serviceName: argocd-redis-ha 611 replicas: 3 612 podManagementPolicy: OrderedReady 613 updateStrategy: 614 type: RollingUpdate 615 template: 616 metadata: 617 annotations: 618 checksum/init-config: 552ee3bec8fe5d9d865e371f7b615c6d472253649eb65d53ed4ae874f782647c 619 labels: 620 release: argocd 621 app: redis-ha 622 argocd-redis-ha: replica 623 spec: 624 affinity: 625 podAntiAffinity: 626 requiredDuringSchedulingIgnoredDuringExecution: 627 - labelSelector: 628 matchLabels: 629 app: redis-ha 630 release: argocd 631 argocd-redis-ha: replica 632 topologyKey: kubernetes.io/hostname 633 preferredDuringSchedulingIgnoredDuringExecution: 634 - weight: 100 635 podAffinityTerm: 636 labelSelector: 637 matchLabels: 638 app: redis-ha 639 release: argocd 640 argocd-redis-ha: replica 641 topologyKey: failure-domain.beta.kubernetes.io/zone 642 securityContext: 643 fsGroup: 1000 644 runAsNonRoot: true 645 runAsUser: 1000 646 647 serviceAccountName: argocd-redis-ha 648 initContainers: 649 - name: config-init 650 image: redis:5.0.10-alpine 651 imagePullPolicy: IfNotPresent 652 resources: 653 {} 654 655 command: 656 - sh 657 args: 658 - /readonly-config/init.sh 659 env: 660 - name: SENTINEL_ID_0 661 value: 25b71bd9d0e4a51945d8422cab53f27027397c12 662 663 - name: SENTINEL_ID_1 664 value: 896627000a81c7bdad8dbdcffd39728c9c17b309 665 666 - name: SENTINEL_ID_2 667 value: 3acbca861108bc47379b71b1d87d1c137dce591f 668 669 volumeMounts: 670 - name: config 671 mountPath: /readonly-config 672 readOnly: true 673 - name: data 674 mountPath: /data 675 containers: 676 - name: redis 677 image: redis:5.0.10-alpine 678 imagePullPolicy: IfNotPresent 679 command: 680 - redis-server 681 args: 682 - /data/conf/redis.conf 683 livenessProbe: 684 tcpSocket: 685 port: 6379 686 initialDelaySeconds: 15 687 resources: 688 {} 689 690 ports: 691 - name: redis 692 containerPort: 6379 693 volumeMounts: 694 - mountPath: /data 695 name: data 696 - name: sentinel 697 image: redis:5.0.10-alpine 698 imagePullPolicy: IfNotPresent 699 command: 700 - redis-sentinel 701 args: 702 - /data/conf/sentinel.conf 703 livenessProbe: 704 tcpSocket: 705 port: 26379 706 initialDelaySeconds: 15 707 resources: 708 {} 709 710 ports: 711 - name: sentinel 712 containerPort: 26379 713 volumeMounts: 714 - mountPath: /data 715 name: data 716 volumes: 717 - name: config 718 configMap: 719 name: argocd-redis-ha-configmap 720 - name: data 721 emptyDir: 722 {} 723 724 725 --- 726 # Source: redis-ha/charts/redis-ha/templates/redis-auth-secret.yaml 727 728 --- 729 # Source: redis-ha/charts/redis-ha/templates/redis-ha-exporter-script-configmap.yaml 730 731 --- 732 # Source: redis-ha/charts/redis-ha/templates/redis-ha-pdb.yaml 733 734 --- 735 # Source: redis-ha/charts/redis-ha/templates/redis-ha-servicemonitor.yaml 736 737 738 --- 739 # Source: redis-ha/charts/redis-ha/templates/redis-haproxy-servicemonitor.yaml 740 741