From 6e41807629cddd8ab63e6913314f024a797e0779 Mon Sep 17 00:00:00 2001 From: Mahima Singh <105724608+smahima27@users.noreply.github.com> Date: Tue, 5 May 2026 14:56:07 +0530 Subject: [PATCH 1/5] P4DEVOPS-11504: add waitForRedis init container option to vmpooler chart --- helm-charts/vmpooler/values.yaml | 218 +------------------------------ 1 file changed, 1 insertion(+), 217 deletions(-) diff --git a/helm-charts/vmpooler/values.yaml b/helm-charts/vmpooler/values.yaml index e251dfa..a096656 100644 --- a/helm-charts/vmpooler/values.yaml +++ b/helm-charts/vmpooler/values.yaml @@ -1,217 +1 @@ -# this is used for the site name, the metrics prefix, and is -# the hostname in the ingress -vmpoolerInstance: 'test-instance' - -image: - repository: ghcr.io/puppetlabs/vmpooler-deployment/vmpooler - pullPolicy: IfNotPresent - -jruby_opts: '-J-XX:+UseG1GC' -configmapName: 'vmpooler-baseconfig' -usage_stats: true -ondemand_request_ttl: '50' -ondemand_clone_limit: '50' -max_lifetime_upper_limit: '336' -vm_lifetime: '2' -vm_lifetime_auth: '12' -timeout: '15' - -redis_connection_pool_size: '200' -redis_connection_pool_timeout: '40' -redis_reconnect_attempts: '[0,0.25,0.5,1,2,4,8,16,32,64,128,256,512]' - -:dns_configs: - :example: - dns_class: dynamic-dns - domain: 'vmpooler.example.com' - -# .json private key, set in ENV var -gce: - keyfile: '/vault/secrets/gce-keyfile.json' - -ec2: - keyfile: '/vault/secrets/ec2-keyfile.rsa' - root_keys_script: '' - -tracing: - enabled: 'false' - # jaegerHost: 'http://otel-collector.otel-collector.svc:14268/api/traces' - -baseconfig_extras: {} - # :config: - # backend_weight: - # vmware_cluster1: 0 - # vmware_cluster2: 100 - # vmware_cluster4: 180 - -# auth: - # provider: 'ldap' - # :ldap: - # host: 'ldap.example.com' - # port: 636 - # encryption: - # :method: :simple_tls - # :tls_options: - # :ssl_version: 'TLSv1_2' - # base: - # - 'ou=dept1,dc=example,dc=com' - # - 'ou=dept2,dc=example,dc=com' - # user_object: - # - 'uid' - # - 'cn' - -additionalConfigFiles: '/etc/vmpooler/config/pools.yaml' - -api: - replicaCount: 1 - resources: - requests: - cpu: 1500m - memory: 2Gi - limits: - cpu: 2000m - memory: 4Gi - -manager: - resources: - requests: - cpu: 4000m - memory: 4Gi - limits: - cpu: 4000m - memory: 4Gi - annotations: {} - -serviceAccount: - # Specifies whether a service account should be created - create: true - # Annotations to add to the service account - annotations: {} - # The name of the service account to use. - # If not set and create is true, a name is generated using the fullname template - # Letting the name be created automatically will prevent the SA resource from being - # shared between multiple instances of vmpooler such as when stage and prod are both - # deployed to the same cluster. - name: '' - -podSecurityContext: - fsGroup: 1001 - -securityContext: - capabilities: - drop: - - ALL - runAsNonRoot: true - readOnlyRootFilesystem: true - runAsUser: 1001 - runAsGroup: 1001 - -service: - type: ClusterIP - port: 4567 - metricsEnabled: true - -ingress: - enabled: false - # useTLS: true - # annotations: - # cert-manager.io/cluster-issuer: letsencrypt-prod - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: 'true' - # nginx.ingress.kubernetes.io/ssl-redirect: 'true' - # domain: k8s.example.com - -nodeSelector: {} - -tolerations: [] - -affinity: {} - -# Redis provided by bitnami/redis -# For a full list of parameters see: https://github.com/bitnami/charts/tree/master/bitnami/redis/ -redis: - # Override the Redis image - image: - registry: artifactory.delivery.puppetlabs.net - repository: release-engineering/redis - tag: "6.2.7-debian-11-r11" - pullPolicy: IfNotPresent - fullnameOverride: redis - architecture: standalone - networkPolicy: - enabled: true - master: - podSecurityContext: - enabled: true - fsGroup: 1001 - containerSecurityContext: - enabled: true - runAsUser: 1001 - resources: - requests: - cpu: 1000m - memory: 2048Mi - limits: - cpu: 1000m - memory: 2048Mi - livenessProbe: - initialDelaySeconds: 40 - periodSeconds: 10 - failureThreshold: 10 - readinessProbe: - initialDelaySeconds: 40 - periodSeconds: 10 - failureThreshold: 10 - lifecycleHooks: - postStart: - exec: - command: - - /bin/sh - - -c - - echo "AUTH $REDIS_PASSWORD\nBGREWRITEAOF" | redis-cli - metrics: - image: - registry: artifactory.delivery.puppetlabs.net - repository: release-engineering/redis-exporter - tag: "1.43.0-debian-11-r4" - pullPolicy: IfNotPresent - enabled: true - resources: - requests: - cpu: 50m - memory: 64Mi - limits: - cpu: 200m - memory: 256Mi - - -# Pools are listed last becaue the list can be really long when listed here. -# The default ConfigMap uses the value of the pools key to create pools.yaml. -# You could, instead, provide your own ConfigMap and specify its name below. -poolsConfigMapName: vmpooler-pools -pools: - - name: 'almalinux-8-x86_64-pixa4' - template: 'templates/cluster2/almalinux-8-x86_64-0.0.2' - folder: 'test-instance/cluster2/almalinux-8-x86_64' - datastore: 'vmpooler_cluster2' - clone_target: 'cluster2' - size: 5 - datacenter: 'pix' - provider: 'vsphere-ci67' - snapshot_mainMem_ioBlockPages: '2048' - snapshot_mainMem_iowait: '5' - network: 'vmpooler1' - - name: 'centos-6-x86_64-pixa4' - alias: - - 'centos-6-x86_64' - template: 'templates/cluster2/centos-6.8-x86_64-0.0.2-8gb' - folder: test-instance/cluster2/centos-6-x86_64' - datastore: 'vmpooler_cluster2' - clone_target: 'cluster2' - size: 0 - timeout: 5 - datacenter: 'pix' - provider: 'vsphere-ci67' - snapshot_mainMem_ioBlockPages: '2048' - snapshot_mainMem_iowait: '5' - network: 'vmpooler2' +IyB0aGlzIGlzIHVzZWQgZm9yIHRoZSBzaXRlIG5hbWUsIHRoZSBtZXRyaWNzIHByZWZpeCwgYW5kIGlzCiMgdGhlIGhvc3RuYW1lIGluIHRoZSBpbmdyZXNzCnZtcG9vbGVySW5zdGFuY2U6ICd0ZXN0LWluc3RhbmNlJwoKaW1hZ2U6CiAgcmVwb3NpdG9yeTogZ2hjci5pby9wdXBwZXRsYWJzL3ZtcG9vbGVyLWRlcGxveW1lbnQvdm1wb29sZXIKICBwdWxsUG9saWN5OiBJZk5vdFByZXNlbnQKCmpydWJ5X29wdHM6ICctSi1YWDorVXNlRzFHQycKY29uZmlnbWFwTmFtZTogJ3ZtcG9vbGVyLWJhc2Vjb25maWcnCnVzYWdlX3N0YXRzOiB0cnVlCm9uZGVtYW5kX3JlcXVlc3RfdHRsOiAnNTAnCm9uZGVtYW5kX2Nsb25lX2xpbWl0OiAnNTAnCm1heF9saWZldGltZV91cHBlcl9saW1pdDogJzMzNicKdm1fbGlmZXRpbWU6ICcyJwp2bV9saWZldGltZV9hdXRoOiAnMTInCnRpbWVvdXQ6ICcxNScKCnJlZGlzX2Nvbm5lY3Rpb25fcG9vbF9zaXplOiAnMjAwJwpyZWRpc19jb25uZWN0aW9uX3Bvb2xfdGltZW91dDogJzQwJwpyZWRpc19yZWNvbm5lY3RfYXR0ZW1wdHM6ICdbMCwwLjI1LDAuNSwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNTYsNTEyXScKCjpkbnNfY29uZmlnczoKICA6ZXhhbXBsZToKICAgIGRuc19jbGFzczogZHluYW1pYy1kbnMKICAgIGRvbWFpbjogJ3ZtcG9vbGVyLmV4YW1wbGUuY29tJwoKIyAuanNvbiBwcml2YXRlIGtleSwgc2V0IGluIEVOViB2YXIKZ2NlOgogIGtleWZpbGU6ICcvdmF1bHQvc2VjcmV0cy9nY2Uta2V5ZmlsZS5qc29uJwoKZWMyOgogIGtleWZpbGU6ICcvdmF1bHQvc2VjcmV0cy9lYzIta2V5ZmlsZS5yc2EnCiAgcm9vdF9rZXlzX3NjcmlwdDogJycKCnRyYWNpbmc6CiAgZW5hYmxlZDogJ2ZhbHNlJwogICMgamFlZ2VySG9zdDogJ2h0dHA6Ly9vdGVsLWNvbGxlY3Rvci5vdGVsLWNvbGxlY3Rvci5zdmM6MTQyNjgvYXBpL3RyYWNlcycKCmJhc2Vjb25maWdfZXh0cmFzOiB7fQogICMgOmNvbmZpZzoKICAjICAgYmFja2VuZF93ZWlnaHQ6CiAgIyAgICAgdm13YXJlX2NsdXN0ZXIxOiAwCiAgIyAgICAgdm13YXJlX2NsdXN0ZXIyOiAxMDAKICAjICAgICB2bXdhcmVfY2x1c3RlcjQ6IDE4MAoKIyBhdXRoOgogICMgcHJvdmlkZXI6ICdsZGFwJwogICMgOmxkYXA6CiAgIyAgIGhvc3Q6ICdsZGFwLmV4YW1wbGUuY29tJwogICMgICBwb3J0OiA2MzYKICAjICAgZW5jcnlwdGlvbjoKICAjICAgICA6bWV0aG9kOiA6c2ltcGxlX3RscwogICMgICAgIDp0bHNfb3B0aW9uczoKICAjICAgICAgIDpzc2xfdmVyc2lvbjogJ1RMU3YxXzInCiAgIyAgIGJhc2U6CiAgIyAgICAgLSAnb3U9ZGVwdDEsZGM9ZXhhbXBsZSxkYz1jb20nCiAgIyAgICAgLSAnb3U9ZGVwdDIsZGM9ZXhhbXBsZSxkYz1jb20nCiAgIyAgIHVzZXJfb2JqZWN0OgogICMgICAgIC0gJ3VpZCcKICAjICAgICAtICdjbicKCmFkZGl0aW9uYWxDb25maWdGaWxlczogJy9ldGMvdm1wb29sZXIvY29uZmlnL3Bvb2xzLnlhbWwnCgphcGk6CiAgcmVwbGljYUNvdW50OiAxCiAgIyBTZXQgdG8gdHJ1ZSB0byBhZGQgYW4gaW5pdCBjb250YWluZXIgdGhhdCB3YWl0cyBmb3IgUmVkaXMgdG8gYWNjZXB0CiAgIyBjb25uZWN0aW9ucyBiZWZvcmUgdGhlIEFQSSBjb250YWluZXIgc3RhcnRzLiBVc2VmdWwgaW4gZW52aXJvbm1lbnRzCiAgIyB3aGVyZSBSZWRpcyBzdGFydHMgc2xvd2x5IChsb3cgcmVzb3VyY2VzKS4KICB3YWl0Rm9yUmVkaXM6IGZhbHNlCiAgcmVzb3VyY2VzOgogICAgcmVxdWVzdHM6CiAgICAgIGNwdTogMTUwMG0KICAgICAgbWVtb3J5OiAyR2kKICAgIGxpbWl0czoKICAgICAgY3B1OiAyMDAwbQogICAgICBtZW1vcnk6IDRHaQoKbWFuYWdlcjoKICAjIFNldCB0byB0cnVlIHRvIGFkZCBhbiBpbml0IGNvbnRhaW5lciB0aGF0IHdhaXRzIGZvciBSZWRpcyB0byBhY2NlcHQKICAjIGNvbm5lY3Rpb25zIGJlZm9yZSB0aGUgbWFuYWdlciBjb250YWluZXIgc3RhcnRzLiBVc2VmdWwgaW4gZW52aXJvbm1lbnRzCiAgIyB3aGVyZSBSZWRpcyBzdGFydHMgc2xvd2x5IChsb3cgcmVzb3VyY2VzKS4KICB3YWl0Rm9yUmVkaXM6IGZhbHNlCiAgcmVzb3VyY2VzOgogICAgcmVxdWVzdHM6CiAgICAgIGNwdTogNDAwMG0KICAgICAgbWVtb3J5OiA0R2kKICAgIGxpbWl0czoKICAgICAgY3B1OiA0MDAwbQogICAgICBtZW1vcnk6IDRHaQogIGFubm90YXRpb25zOiB7fQoKc2VydmljZUFjY291bnQ6CiAgIyBTcGVjaWZpZXMgd2hldGhlciBhIHNlcnZpY2UgYWNjb3VudCBzaG91bGQgYmUgY3JlYXRlZAogIGNyZWF0ZTogdHJ1ZQogICMgQW5ub3RhdGlvbnMgdG8gYWRkIHRvIHRoZSBzZXJ2aWNlIGFjY291bnQKICBhbm5vdGF0aW9uczoge30KICAjIFRoZSBuYW1lIG9mIHRoZSBzZXJ2aWNlIGFjY291bnQgdG8gdXNlLgogICMgSWYgbm90IHNldCBhbmQgY3JlYXRlIGlzIHRydWUsIGEgbmFtZSBpcyBnZW5lcmF0ZWQgdXNpbmcgdGhlIGZ1bGxuYW1lIHRlbXBsYXRlCiAgIyBMZXR0aW5nIHRoZSBuYW1lIGJlIGNyZWF0ZWQgYXV0b21hdGljYWxseSB3aWxsIHByZXZlbnQgdGhlIFNBIHJlc291cmNlIGZyb20gYmVpbmcKICAjIHNoYXJlZCBiZXR3ZWVuIG11bHRpcGxlIGluc3RhbmNlcyBvZiB2bXBvb2xlciBzdWNoIGFzIHdoZW4gc3RhZ2UgYW5kIHByb2QgYXJlIGJvdGgKICAjIGRlcGxveWVkIHRvIHRoZSBzYW1lIGNsdXN0ZXIuCiAgbmFtZTogJycKCnBvZFNlY3VyaXR5Q29udGV4dDoKICBmc0dyb3VwOiAxMDAxCgpzZWN1cml0eUNvbnRleHQ6CiAgY2FwYWJpbGl0aWVzOgogICAgZHJvcDoKICAgIC0gQUxMCiAgcnVuQXNOb25Sb290OiB0cnVlCiAgcmVhZE9ubHlSb290RmlsZXN5c3RlbTogdHJ1ZQogIHJ1bkFzVXNlcjogMTAwMQogIHJ1bkFzR3JvdXA6IDEwMDEKCnNlcnZpY2U6CiAgdHlwZTogQ2x1c3RlcklQCiAgcG9ydDogNDU2NwogIG1ldHJpY3NFbmFibGVkOiB0cnVlCgppbmdyZXNzOgogIGVuYWJsZWQ6IGZhbHNlCiAgIyB1c2VUTFM6IHRydWUKICAjIGFubm90YXRpb25zOgogICMgICBjZXJ0LW1hbmFnZXIuaW8vY2x1c3Rlci1pc3N1ZXI6IGxldHNlbmNyeXB0LXByb2QKICAjICAga3ViZXJuZXRlcy5pby9pbmdyZXNzLmNsYXNzOiBuZ2lueAogICMgICBrdWJlcm5ldGVzLmlvL3Rscy1hY21lOiAndHJ1ZScKICAjICAgbmdpbnguaW5ncmVzcy5rdWJlcm5ldGVzLmlvL3NzbC1yZWRpcmVjdDogJ3RydWUnCiAgIyBkb21haW46IGs4cy5leGFtcGxlLmNvbQoKbm9kZVNlbGVjdG9yOiB7fQoKdG9sZXJhdGlvbnM6IFtdCgphZmZpbml0eToge30KCiMgUmVkaXMgcHJvdmlkZWQgYnkgYml0bmFtaS9yZWRpcwojIEZvciBhIGZ1bGwgbGlzdCBvZiBwYXJhbWV0ZXJzIHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2JpdG5hbWkvY2hhcnRzL3RyZWUvbWFzdGVyL2JpdG5hbWkvcmVkaXMvCnJlZGlzOgogICMgT3ZlcnJpZGUgdGhlIFJlZGlzIGltYWdlCiAgaW1hZ2U6CiAgICByZWdpc3RyeTogYXJ0aWZhY3RvcnkuZGVsaXZlcnkucHVwcGV0bGFicy5uZXQKICAgIHJlcG9zaXRvcnk6IHJlbGVhc2UtZW5naW5lZXJpbmcvcmVkaXMKICAgIHRhZzogIjYuMi43LWRlYmlhbi0xMS1yMTEiCiAgICBwdWxsUG9saWN5OiBJZk5vdFByZXNlbnQKICBmdWxsbmFtZU92ZXJyaWRlOiByZWRpcwogIGFyY2hpdGVjdHVyZTogc3RhbmRhbG9uZQogIG5ldHdvcmtQb2xpY3k6CiAgICBlbmFibGVkOiB0cnVlCiAgbWFzdGVyOgogICAgcG9kU2VjdXJpdHlDb250ZXh0OgogICAgICBlbmFibGVkOiB0cnVlCiAgICAgIGZzR3JvdXA6IDEwMDEKICAgIGNvbnRhaW5lclNlY3VyaXR5Q29udGV4dDoKICAgICAgZW5hYmxlZDogdHJ1ZQogICAgICBydW5Bc1VzZXI6IDEwMDEKICAgIHJlc291cmNlczoKICAgICAgcmVxdWVzdHM6CiAgICAgICAgY3B1OiAxMDAwbQogICAgICAgIG1lbW9yeTogMjA0OE1pCiAgICAgIGxpbWl0czoKICAgICAgICBjcHU6IDEwMDBtCiAgICAgICAgbWVtb3J5OiAyMDQ4TWkKICAgIGxpdmVuZXNzUHJvYmU6CiAgICAgIGluaXRpYWxEZWxheVNlY29uZHM6IDQwCiAgICAgIHBlcmlvZFNlY29uZHM6IDEwCiAgICAgIGZhaWx1cmVUaHJlc2hvbGQ6IDEwCiAgICByZWFkaW5lc3NQcm9iZToKICAgICAgaW5pdGlhbERlbGF5U2Vjb25kczogNDAKICAgICAgcGVyaW9kU2Vjb25kczogMTAKICAgICAgZmFpbHVyZVRocmVzaG9sZDogMTAKICAgIGxpZmVjeWNsZUhvb2tzOgogICAgICBwb3N0U3RhcnQ6CiAgICAgICAgZXhlYzoKICAgICAgICAgIGNvbW1hbmQ6CiAgICAgICAgICAtIC9iaW4vc2gKICAgICAgICAgIC0gLWMKICAgICAgICAgIC0gZWNobyAiQVVUSCAkUkVESVNfUEFTU1dPUkRcbkJHUkVXUklURUFPRiIgfCByZWRpcy1jbGkKICBtZXRyaWNzOgogICAgaW1hZ2U6CiAgICAgIHJlZ2lzdHJ5OiBhcnRpZmFjdG9yeS5kZWxpdmVyeS5wdXBwZXRsYWJzLm5ldAogICAgICByZXBvc2l0b3J5OiByZWxlYXNlLWVuZ2luZWVyaW5nL3JlZGlzLWV4cG9ydGVyCiAgICAgIHRhZzogIjEuNDMuMC1kZWJpYW4tMTEtcjQiCiAgICAgIHB1bGxQb2xpY3k6IElmTm90UHJlc2VudAogICAgZW5hYmxlZDogdHJ1ZQogICAgcmVzb3VyY2VzOgogICAgICByZXF1ZXN0czoKICAgICAgICBjcHU6IDUwbQogICAgICAgIG1lbW9yeTogNjRNaQogICAgICBsaW1pdHM6CiAgICAgICAgY3B1OiAyMDBtCiAgICAgICAgbWVtb3J5OiAyNTZNaQoKCiMgUG9vbHMgYXJlIGxpc3RlZCBsYXN0IGJlY2F1ZSB0aGUgbGlzdCBjYW4gYmUgcmVhbGx5IGxvbmcgd2hlbiBsaXN0ZWQgaGVyZS4KIyBUaGUgZGVmYXVsdCBDb25maWdNYXAgdXNlcyB0aGUgdmFsdWUgb2YgdGhlIHBvb2xzIGtleSB0byBjcmVhdGUgcG9vbHMueWFtbC4KIyBZb3UgY291bGQsIGluc3RlYWQsIHByb3ZpZGUgeW91ciBvd24gQ29uZmlnTWFwIGFuZCBzcGVjaWZ5IGl0cyBuYW1lIGJlbG93Lgpwb29sc0NvbmZpZ01hcE5hbWU6IHZtcG9vbGVyLXBvb2xzCnBvb2xzOgogIC0gbmFtZTogJ2FsbWFsaW51eC04LXg4Nl82NC1waXhhNCcKICAgIHRlbXBsYXRlOiAndGVtcGxhdGVzL2NsdXN0ZXIyL2FsbWFsaW51eC04LXg4Nl82NC0wLjAuMicKICAgIGZvbGRlcjogJ3Rlc3QtaW5zdGFuY2UvY2x1c3RlcjIvYWxtYWxpbnV4LTgteHg4Nl82NCcKICAgIGRhdGFzdG9yZTogJ3ZtcG9vbGVyX2NsdXN0ZXIyJwogICAgY2xvbmVfdGFyZ2V0OiAnY2x1c3RlcjInCiAgICBzaXplOiA1CiAgICBkYXRhY2VudGVyOiAncGl4JwogICAgcHJvdmlkZXI6ICd2c3BoZXJlLWNpNjcnCiAgICBzbmFwc2hvdF9tYWluTWVtX2lvQmxvY2tQYWdlczogJzIwNDgnCiAgICBzbmFwc2hvdF9tYWluTWVtX2lvd2FpdDogJzUnCiAgICBuZXR3b3JrOiAndm1wb29sZXIxJwogIC0gbmFtZTogJ2NlbnRvcy02LXg4Nl82NC1waXhhNCcKICAgIGFsaWFzOgogICAgICAtICdjZW50b3MtNi14ODZfNjQnCiAgICB0ZW1wbGF0ZTogJ3RlbXBsYXRlcy9jbHVzdGVyMi9jZW50b3MtNi44LXg4Nl82NC0wLjAuMi04Z2InCiAgICBmb2xkZXI6IHRlc3QtaW5zdGFuY2UvY2x1c3RlcjIvY2VudG9zLTYteDg2XzY0JwogICAgZGF0YXN0b3JlOiAndm1wb29sZXJfY2x1c3RlcjInCiAgICBjbG9uZV90YXJnZXQ6ICdjbHVzdGVyMicKICAgIHNpemU6IDAK \ No newline at end of file From 40410411ebffee7162a7b7e739d924102856ece1 Mon Sep 17 00:00:00 2001 From: Mahima Singh <105724608+smahima27@users.noreply.github.com> Date: Tue, 5 May 2026 14:56:46 +0530 Subject: [PATCH 2/5] P4DEVOPS-11504: add waitForRedis init container to deployment-api --- .../vmpooler/templates/deployment-api.yaml | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/helm-charts/vmpooler/templates/deployment-api.yaml b/helm-charts/vmpooler/templates/deployment-api.yaml index f89bec8..f23926d 100644 --- a/helm-charts/vmpooler/templates/deployment-api.yaml +++ b/helm-charts/vmpooler/templates/deployment-api.yaml @@ -32,6 +32,29 @@ spec: serviceAccountName: {{ include "vmpooler.serviceAccountName" . }} securityContext: {{- toYaml .Values.podSecurityContext | nindent 8 }} + {{- if .Values.api.waitForRedis }} + initContainers: + - name: wait-for-redis + image: "{{ .Values.redis.image.registry }}/{{ .Values.redis.image.repository }}:{{ .Values.redis.image.tag }}" + imagePullPolicy: {{ .Values.redis.image.pullPolicy }} + command: + - /bin/sh + - -c + - | + until redis-cli -h redis-master -p 6379 -a "$REDIS_PASSWORD" ping | grep -q PONG; do + echo "Waiting for Redis to be ready..." + sleep 2 + done + echo "Redis is ready." + env: + - name: REDIS_PASSWORD + valueFrom: + secretKeyRef: + name: redis + key: redis-password + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + {{- end }} containers: - name: {{ $fullName }}-api securityContext: From 62fc1c42515c7aecff878a495e88aeba64dbe2aa Mon Sep 17 00:00:00 2001 From: Mahima Singh <105724608+smahima27@users.noreply.github.com> Date: Tue, 5 May 2026 14:57:51 +0530 Subject: [PATCH 3/5] P4DEVOPS-11504: add waitForRedis init container to deployment-manager --- .../templates/deployment-manager.yaml | 35 ++++++++++++------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/helm-charts/vmpooler/templates/deployment-manager.yaml b/helm-charts/vmpooler/templates/deployment-manager.yaml index 63bda8f..8c8b471 100644 --- a/helm-charts/vmpooler/templates/deployment-manager.yaml +++ b/helm-charts/vmpooler/templates/deployment-manager.yaml @@ -34,6 +34,29 @@ spec: serviceAccountName: {{ include "vmpooler.serviceAccountName" . }} securityContext: {{- toYaml .Values.podSecurityContext | nindent 8 }} + {{- if .Values.manager.waitForRedis }} + initContainers: + - name: wait-for-redis + image: "{{ .Values.redis.image.registry }}/{{ .Values.redis.image.repository }}:{{ .Values.redis.image.tag }}" + imagePullPolicy: {{ .Values.redis.image.pullPolicy }} + command: + - /bin/sh + - -c + - | + until redis-cli -h redis-master -p 6379 -a "$REDIS_PASSWORD" ping | grep -q PONG; do + echo "Waiting for Redis to be ready..." + sleep 2 + done + echo "Redis is ready." + env: + - name: REDIS_PASSWORD + valueFrom: + secretKeyRef: + name: redis + key: redis-password + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + {{- end }} containers: - name: {{ $fullName }}-manager securityContext: @@ -154,15 +177,3 @@ spec: tolerations: {{- toYaml . | nindent 8 }} {{- end }} - {{- with .Values.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.affinity }} - affinity: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} From ceabe6de5728fa32ba039068e0f71d474b98813e Mon Sep 17 00:00:00 2001 From: Mahima Singh <105724608+smahima27@users.noreply.github.com> Date: Tue, 5 May 2026 14:58:15 +0530 Subject: [PATCH 4/5] P4DEVOPS-11504: bump chart version to 3.10.4 --- helm-charts/vmpooler/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helm-charts/vmpooler/Chart.yaml b/helm-charts/vmpooler/Chart.yaml index 6907109..8140f2a 100644 --- a/helm-charts/vmpooler/Chart.yaml +++ b/helm-charts/vmpooler/Chart.yaml @@ -3,7 +3,7 @@ name: vmpooler description: A Helm chart to deploy vmpooler type: application icon: https://github.com/puppetlabs/vmpooler/raw/master/lib/vmpooler/public/img/logo.png -version: 3.10.3 +version: 3.10.4 appVersion: pr177-9010ad15d1b63bae44be352e7288a477bf6f667d dependencies: - name: redis From 904439b62a6540681389091b24bf503ba5dc4868 Mon Sep 17 00:00:00 2001 From: Mahima Singh Date: Tue, 5 May 2026 17:05:20 +0530 Subject: [PATCH 5/5] P4DEVOPS-11504: fix corrupted files - use plain text YAML --- .../templates/deployment-manager.yaml | 12 + helm-charts/vmpooler/values.yaml | 226 +++++++++++++++++- 2 files changed, 237 insertions(+), 1 deletion(-) diff --git a/helm-charts/vmpooler/templates/deployment-manager.yaml b/helm-charts/vmpooler/templates/deployment-manager.yaml index 8c8b471..e02e645 100644 --- a/helm-charts/vmpooler/templates/deployment-manager.yaml +++ b/helm-charts/vmpooler/templates/deployment-manager.yaml @@ -177,3 +177,15 @@ spec: tolerations: {{- toYaml . | nindent 8 }} {{- end }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} diff --git a/helm-charts/vmpooler/values.yaml b/helm-charts/vmpooler/values.yaml index a096656..6b7e31e 100644 --- a/helm-charts/vmpooler/values.yaml +++ b/helm-charts/vmpooler/values.yaml @@ -1 +1,225 @@ -IyB0aGlzIGlzIHVzZWQgZm9yIHRoZSBzaXRlIG5hbWUsIHRoZSBtZXRyaWNzIHByZWZpeCwgYW5kIGlzCiMgdGhlIGhvc3RuYW1lIGluIHRoZSBpbmdyZXNzCnZtcG9vbGVySW5zdGFuY2U6ICd0ZXN0LWluc3RhbmNlJwoKaW1hZ2U6CiAgcmVwb3NpdG9yeTogZ2hjci5pby9wdXBwZXRsYWJzL3ZtcG9vbGVyLWRlcGxveW1lbnQvdm1wb29sZXIKICBwdWxsUG9saWN5OiBJZk5vdFByZXNlbnQKCmpydWJ5X29wdHM6ICctSi1YWDorVXNlRzFHQycKY29uZmlnbWFwTmFtZTogJ3ZtcG9vbGVyLWJhc2Vjb25maWcnCnVzYWdlX3N0YXRzOiB0cnVlCm9uZGVtYW5kX3JlcXVlc3RfdHRsOiAnNTAnCm9uZGVtYW5kX2Nsb25lX2xpbWl0OiAnNTAnCm1heF9saWZldGltZV91cHBlcl9saW1pdDogJzMzNicKdm1fbGlmZXRpbWU6ICcyJwp2bV9saWZldGltZV9hdXRoOiAnMTInCnRpbWVvdXQ6ICcxNScKCnJlZGlzX2Nvbm5lY3Rpb25fcG9vbF9zaXplOiAnMjAwJwpyZWRpc19jb25uZWN0aW9uX3Bvb2xfdGltZW91dDogJzQwJwpyZWRpc19yZWNvbm5lY3RfYXR0ZW1wdHM6ICdbMCwwLjI1LDAuNSwxLDIsNCw4LDE2LDMyLDY0LDEyOCwyNTYsNTEyXScKCjpkbnNfY29uZmlnczoKICA6ZXhhbXBsZToKICAgIGRuc19jbGFzczogZHluYW1pYy1kbnMKICAgIGRvbWFpbjogJ3ZtcG9vbGVyLmV4YW1wbGUuY29tJwoKIyAuanNvbiBwcml2YXRlIGtleSwgc2V0IGluIEVOViB2YXIKZ2NlOgogIGtleWZpbGU6ICcvdmF1bHQvc2VjcmV0cy9nY2Uta2V5ZmlsZS5qc29uJwoKZWMyOgogIGtleWZpbGU6ICcvdmF1bHQvc2VjcmV0cy9lYzIta2V5ZmlsZS5yc2EnCiAgcm9vdF9rZXlzX3NjcmlwdDogJycKCnRyYWNpbmc6CiAgZW5hYmxlZDogJ2ZhbHNlJwogICMgamFlZ2VySG9zdDogJ2h0dHA6Ly9vdGVsLWNvbGxlY3Rvci5vdGVsLWNvbGxlY3Rvci5zdmM6MTQyNjgvYXBpL3RyYWNlcycKCmJhc2Vjb25maWdfZXh0cmFzOiB7fQogICMgOmNvbmZpZzoKICAjICAgYmFja2VuZF93ZWlnaHQ6CiAgIyAgICAgdm13YXJlX2NsdXN0ZXIxOiAwCiAgIyAgICAgdm13YXJlX2NsdXN0ZXIyOiAxMDAKICAjICAgICB2bXdhcmVfY2x1c3RlcjQ6IDE4MAoKIyBhdXRoOgogICMgcHJvdmlkZXI6ICdsZGFwJwogICMgOmxkYXA6CiAgIyAgIGhvc3Q6ICdsZGFwLmV4YW1wbGUuY29tJwogICMgICBwb3J0OiA2MzYKICAjICAgZW5jcnlwdGlvbjoKICAjICAgICA6bWV0aG9kOiA6c2ltcGxlX3RscwogICMgICAgIDp0bHNfb3B0aW9uczoKICAjICAgICAgIDpzc2xfdmVyc2lvbjogJ1RMU3YxXzInCiAgIyAgIGJhc2U6CiAgIyAgICAgLSAnb3U9ZGVwdDEsZGM9ZXhhbXBsZSxkYz1jb20nCiAgIyAgICAgLSAnb3U9ZGVwdDIsZGM9ZXhhbXBsZSxkYz1jb20nCiAgIyAgIHVzZXJfb2JqZWN0OgogICMgICAgIC0gJ3VpZCcKICAjICAgICAtICdjbicKCmFkZGl0aW9uYWxDb25maWdGaWxlczogJy9ldGMvdm1wb29sZXIvY29uZmlnL3Bvb2xzLnlhbWwnCgphcGk6CiAgcmVwbGljYUNvdW50OiAxCiAgIyBTZXQgdG8gdHJ1ZSB0byBhZGQgYW4gaW5pdCBjb250YWluZXIgdGhhdCB3YWl0cyBmb3IgUmVkaXMgdG8gYWNjZXB0CiAgIyBjb25uZWN0aW9ucyBiZWZvcmUgdGhlIEFQSSBjb250YWluZXIgc3RhcnRzLiBVc2VmdWwgaW4gZW52aXJvbm1lbnRzCiAgIyB3aGVyZSBSZWRpcyBzdGFydHMgc2xvd2x5IChsb3cgcmVzb3VyY2VzKS4KICB3YWl0Rm9yUmVkaXM6IGZhbHNlCiAgcmVzb3VyY2VzOgogICAgcmVxdWVzdHM6CiAgICAgIGNwdTogMTUwMG0KICAgICAgbWVtb3J5OiAyR2kKICAgIGxpbWl0czoKICAgICAgY3B1OiAyMDAwbQogICAgICBtZW1vcnk6IDRHaQoKbWFuYWdlcjoKICAjIFNldCB0byB0cnVlIHRvIGFkZCBhbiBpbml0IGNvbnRhaW5lciB0aGF0IHdhaXRzIGZvciBSZWRpcyB0byBhY2NlcHQKICAjIGNvbm5lY3Rpb25zIGJlZm9yZSB0aGUgbWFuYWdlciBjb250YWluZXIgc3RhcnRzLiBVc2VmdWwgaW4gZW52aXJvbm1lbnRzCiAgIyB3aGVyZSBSZWRpcyBzdGFydHMgc2xvd2x5IChsb3cgcmVzb3VyY2VzKS4KICB3YWl0Rm9yUmVkaXM6IGZhbHNlCiAgcmVzb3VyY2VzOgogICAgcmVxdWVzdHM6CiAgICAgIGNwdTogNDAwMG0KICAgICAgbWVtb3J5OiA0R2kKICAgIGxpbWl0czoKICAgICAgY3B1OiA0MDAwbQogICAgICBtZW1vcnk6IDRHaQogIGFubm90YXRpb25zOiB7fQoKc2VydmljZUFjY291bnQ6CiAgIyBTcGVjaWZpZXMgd2hldGhlciBhIHNlcnZpY2UgYWNjb3VudCBzaG91bGQgYmUgY3JlYXRlZAogIGNyZWF0ZTogdHJ1ZQogICMgQW5ub3RhdGlvbnMgdG8gYWRkIHRvIHRoZSBzZXJ2aWNlIGFjY291bnQKICBhbm5vdGF0aW9uczoge30KICAjIFRoZSBuYW1lIG9mIHRoZSBzZXJ2aWNlIGFjY291bnQgdG8gdXNlLgogICMgSWYgbm90IHNldCBhbmQgY3JlYXRlIGlzIHRydWUsIGEgbmFtZSBpcyBnZW5lcmF0ZWQgdXNpbmcgdGhlIGZ1bGxuYW1lIHRlbXBsYXRlCiAgIyBMZXR0aW5nIHRoZSBuYW1lIGJlIGNyZWF0ZWQgYXV0b21hdGljYWxseSB3aWxsIHByZXZlbnQgdGhlIFNBIHJlc291cmNlIGZyb20gYmVpbmcKICAjIHNoYXJlZCBiZXR3ZWVuIG11bHRpcGxlIGluc3RhbmNlcyBvZiB2bXBvb2xlciBzdWNoIGFzIHdoZW4gc3RhZ2UgYW5kIHByb2QgYXJlIGJvdGgKICAjIGRlcGxveWVkIHRvIHRoZSBzYW1lIGNsdXN0ZXIuCiAgbmFtZTogJycKCnBvZFNlY3VyaXR5Q29udGV4dDoKICBmc0dyb3VwOiAxMDAxCgpzZWN1cml0eUNvbnRleHQ6CiAgY2FwYWJpbGl0aWVzOgogICAgZHJvcDoKICAgIC0gQUxMCiAgcnVuQXNOb25Sb290OiB0cnVlCiAgcmVhZE9ubHlSb290RmlsZXN5c3RlbTogdHJ1ZQogIHJ1bkFzVXNlcjogMTAwMQogIHJ1bkFzR3JvdXA6IDEwMDEKCnNlcnZpY2U6CiAgdHlwZTogQ2x1c3RlcklQCiAgcG9ydDogNDU2NwogIG1ldHJpY3NFbmFibGVkOiB0cnVlCgppbmdyZXNzOgogIGVuYWJsZWQ6IGZhbHNlCiAgIyB1c2VUTFM6IHRydWUKICAjIGFubm90YXRpb25zOgogICMgICBjZXJ0LW1hbmFnZXIuaW8vY2x1c3Rlci1pc3N1ZXI6IGxldHNlbmNyeXB0LXByb2QKICAjICAga3ViZXJuZXRlcy5pby9pbmdyZXNzLmNsYXNzOiBuZ2lueAogICMgICBrdWJlcm5ldGVzLmlvL3Rscy1hY21lOiAndHJ1ZScKICAjICAgbmdpbnguaW5ncmVzcy5rdWJlcm5ldGVzLmlvL3NzbC1yZWRpcmVjdDogJ3RydWUnCiAgIyBkb21haW46IGs4cy5leGFtcGxlLmNvbQoKbm9kZVNlbGVjdG9yOiB7fQoKdG9sZXJhdGlvbnM6IFtdCgphZmZpbml0eToge30KCiMgUmVkaXMgcHJvdmlkZWQgYnkgYml0bmFtaS9yZWRpcwojIEZvciBhIGZ1bGwgbGlzdCBvZiBwYXJhbWV0ZXJzIHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2JpdG5hbWkvY2hhcnRzL3RyZWUvbWFzdGVyL2JpdG5hbWkvcmVkaXMvCnJlZGlzOgogICMgT3ZlcnJpZGUgdGhlIFJlZGlzIGltYWdlCiAgaW1hZ2U6CiAgICByZWdpc3RyeTogYXJ0aWZhY3RvcnkuZGVsaXZlcnkucHVwcGV0bGFicy5uZXQKICAgIHJlcG9zaXRvcnk6IHJlbGVhc2UtZW5naW5lZXJpbmcvcmVkaXMKICAgIHRhZzogIjYuMi43LWRlYmlhbi0xMS1yMTEiCiAgICBwdWxsUG9saWN5OiBJZk5vdFByZXNlbnQKICBmdWxsbmFtZU92ZXJyaWRlOiByZWRpcwogIGFyY2hpdGVjdHVyZTogc3RhbmRhbG9uZQogIG5ldHdvcmtQb2xpY3k6CiAgICBlbmFibGVkOiB0cnVlCiAgbWFzdGVyOgogICAgcG9kU2VjdXJpdHlDb250ZXh0OgogICAgICBlbmFibGVkOiB0cnVlCiAgICAgIGZzR3JvdXA6IDEwMDEKICAgIGNvbnRhaW5lclNlY3VyaXR5Q29udGV4dDoKICAgICAgZW5hYmxlZDogdHJ1ZQogICAgICBydW5Bc1VzZXI6IDEwMDEKICAgIHJlc291cmNlczoKICAgICAgcmVxdWVzdHM6CiAgICAgICAgY3B1OiAxMDAwbQogICAgICAgIG1lbW9yeTogMjA0OE1pCiAgICAgIGxpbWl0czoKICAgICAgICBjcHU6IDEwMDBtCiAgICAgICAgbWVtb3J5OiAyMDQ4TWkKICAgIGxpdmVuZXNzUHJvYmU6CiAgICAgIGluaXRpYWxEZWxheVNlY29uZHM6IDQwCiAgICAgIHBlcmlvZFNlY29uZHM6IDEwCiAgICAgIGZhaWx1cmVUaHJlc2hvbGQ6IDEwCiAgICByZWFkaW5lc3NQcm9iZToKICAgICAgaW5pdGlhbERlbGF5U2Vjb25kczogNDAKICAgICAgcGVyaW9kU2Vjb25kczogMTAKICAgICAgZmFpbHVyZVRocmVzaG9sZDogMTAKICAgIGxpZmVjeWNsZUhvb2tzOgogICAgICBwb3N0U3RhcnQ6CiAgICAgICAgZXhlYzoKICAgICAgICAgIGNvbW1hbmQ6CiAgICAgICAgICAtIC9iaW4vc2gKICAgICAgICAgIC0gLWMKICAgICAgICAgIC0gZWNobyAiQVVUSCAkUkVESVNfUEFTU1dPUkRcbkJHUkVXUklURUFPRiIgfCByZWRpcy1jbGkKICBtZXRyaWNzOgogICAgaW1hZ2U6CiAgICAgIHJlZ2lzdHJ5OiBhcnRpZmFjdG9yeS5kZWxpdmVyeS5wdXBwZXRsYWJzLm5ldAogICAgICByZXBvc2l0b3J5OiByZWxlYXNlLWVuZ2luZWVyaW5nL3JlZGlzLWV4cG9ydGVyCiAgICAgIHRhZzogIjEuNDMuMC1kZWJpYW4tMTEtcjQiCiAgICAgIHB1bGxQb2xpY3k6IElmTm90UHJlc2VudAogICAgZW5hYmxlZDogdHJ1ZQogICAgcmVzb3VyY2VzOgogICAgICByZXF1ZXN0czoKICAgICAgICBjcHU6IDUwbQogICAgICAgIG1lbW9yeTogNjRNaQogICAgICBsaW1pdHM6CiAgICAgICAgY3B1OiAyMDBtCiAgICAgICAgbWVtb3J5OiAyNTZNaQoKCiMgUG9vbHMgYXJlIGxpc3RlZCBsYXN0IGJlY2F1ZSB0aGUgbGlzdCBjYW4gYmUgcmVhbGx5IGxvbmcgd2hlbiBsaXN0ZWQgaGVyZS4KIyBUaGUgZGVmYXVsdCBDb25maWdNYXAgdXNlcyB0aGUgdmFsdWUgb2YgdGhlIHBvb2xzIGtleSB0byBjcmVhdGUgcG9vbHMueWFtbC4KIyBZb3UgY291bGQsIGluc3RlYWQsIHByb3ZpZGUgeW91ciBvd24gQ29uZmlnTWFwIGFuZCBzcGVjaWZ5IGl0cyBuYW1lIGJlbG93Lgpwb29sc0NvbmZpZ01hcE5hbWU6IHZtcG9vbGVyLXBvb2xzCnBvb2xzOgogIC0gbmFtZTogJ2FsbWFsaW51eC04LXg4Nl82NC1waXhhNCcKICAgIHRlbXBsYXRlOiAndGVtcGxhdGVzL2NsdXN0ZXIyL2FsbWFsaW51eC04LXg4Nl82NC0wLjAuMicKICAgIGZvbGRlcjogJ3Rlc3QtaW5zdGFuY2UvY2x1c3RlcjIvYWxtYWxpbnV4LTgteHg4Nl82NCcKICAgIGRhdGFzdG9yZTogJ3ZtcG9vbGVyX2NsdXN0ZXIyJwogICAgY2xvbmVfdGFyZ2V0OiAnY2x1c3RlcjInCiAgICBzaXplOiA1CiAgICBkYXRhY2VudGVyOiAncGl4JwogICAgcHJvdmlkZXI6ICd2c3BoZXJlLWNpNjcnCiAgICBzbmFwc2hvdF9tYWluTWVtX2lvQmxvY2tQYWdlczogJzIwNDgnCiAgICBzbmFwc2hvdF9tYWluTWVtX2lvd2FpdDogJzUnCiAgICBuZXR3b3JrOiAndm1wb29sZXIxJwogIC0gbmFtZTogJ2NlbnRvcy02LXg4Nl82NC1waXhhNCcKICAgIGFsaWFzOgogICAgICAtICdjZW50b3MtNi14ODZfNjQnCiAgICB0ZW1wbGF0ZTogJ3RlbXBsYXRlcy9jbHVzdGVyMi9jZW50b3MtNi44LXg4Nl82NC0wLjAuMi04Z2InCiAgICBmb2xkZXI6IHRlc3QtaW5zdGFuY2UvY2x1c3RlcjIvY2VudG9zLTYteDg2XzY0JwogICAgZGF0YXN0b3JlOiAndm1wb29sZXJfY2x1c3RlcjInCiAgICBjbG9uZV90YXJnZXQ6ICdjbHVzdGVyMicKICAgIHNpemU6IDAK \ No newline at end of file +# this is used for the site name, the metrics prefix, and is +# the hostname in the ingress +vmpoolerInstance: 'test-instance' + +image: + repository: ghcr.io/puppetlabs/vmpooler-deployment/vmpooler + pullPolicy: IfNotPresent + +jruby_opts: '-J-XX:+UseG1GC' +configmapName: 'vmpooler-baseconfig' +usage_stats: true +ondemand_request_ttl: '50' +ondemand_clone_limit: '50' +max_lifetime_upper_limit: '336' +vm_lifetime: '2' +vm_lifetime_auth: '12' +timeout: '15' + +redis_connection_pool_size: '200' +redis_connection_pool_timeout: '40' +redis_reconnect_attempts: '[0,0.25,0.5,1,2,4,8,16,32,64,128,256,512]' + +:dns_configs: + :example: + dns_class: dynamic-dns + domain: 'vmpooler.example.com' + +# .json private key, set in ENV var +gce: + keyfile: '/vault/secrets/gce-keyfile.json' + +ec2: + keyfile: '/vault/secrets/ec2-keyfile.rsa' + root_keys_script: '' + +tracing: + enabled: 'false' + # jaegerHost: 'http://otel-collector.otel-collector.svc:14268/api/traces' + +baseconfig_extras: {} + # :config: + # backend_weight: + # vmware_cluster1: 0 + # vmware_cluster2: 100 + # vmware_cluster4: 180 + +# auth: + # provider: 'ldap' + # :ldap: + # host: 'ldap.example.com' + # port: 636 + # encryption: + # :method: :simple_tls + # :tls_options: + # :ssl_version: 'TLSv1_2' + # base: + # - 'ou=dept1,dc=example,dc=com' + # - 'ou=dept2,dc=example,dc=com' + # user_object: + # - 'uid' + # - 'cn' + +additionalConfigFiles: '/etc/vmpooler/config/pools.yaml' + +api: + replicaCount: 1 + # Set to true to add an init container that waits for Redis to accept + # connections before the API container starts. Useful in environments + # where Redis starts slowly (low resources). + waitForRedis: false + resources: + requests: + cpu: 1500m + memory: 2Gi + limits: + cpu: 2000m + memory: 4Gi + +manager: + # Set to true to add an init container that waits for Redis to accept + # connections before the manager container starts. Useful in environments + # where Redis starts slowly (low resources). + waitForRedis: false + resources: + requests: + cpu: 4000m + memory: 4Gi + limits: + cpu: 4000m + memory: 4Gi + annotations: {} + +serviceAccount: + # Specifies whether a service account should be created + create: true + # Annotations to add to the service account + annotations: {} + # The name of the service account to use. + # If not set and create is true, a name is generated using the fullname template + # Letting the name be created automatically will prevent the SA resource from being + # shared between multiple instances of vmpooler such as when stage and prod are both + # deployed to the same cluster. + name: '' + +podSecurityContext: + fsGroup: 1001 + +securityContext: + capabilities: + drop: + - ALL + runAsNonRoot: true + readOnlyRootFilesystem: true + runAsUser: 1001 + runAsGroup: 1001 + +service: + type: ClusterIP + port: 4567 + metricsEnabled: true + +ingress: + enabled: false + # useTLS: true + # annotations: + # cert-manager.io/cluster-issuer: letsencrypt-prod + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: 'true' + # nginx.ingress.kubernetes.io/ssl-redirect: 'true' + # domain: k8s.example.com + +nodeSelector: {} + +tolerations: [] + +affinity: {} + +# Redis provided by bitnami/redis +# For a full list of parameters see: https://github.com/bitnami/charts/tree/master/bitnami/redis/ +redis: + # Override the Redis image + image: + registry: artifactory.delivery.puppetlabs.net + repository: release-engineering/redis + tag: "6.2.7-debian-11-r11" + pullPolicy: IfNotPresent + fullnameOverride: redis + architecture: standalone + networkPolicy: + enabled: true + master: + podSecurityContext: + enabled: true + fsGroup: 1001 + containerSecurityContext: + enabled: true + runAsUser: 1001 + resources: + requests: + cpu: 1000m + memory: 2048Mi + limits: + cpu: 1000m + memory: 2048Mi + livenessProbe: + initialDelaySeconds: 40 + periodSeconds: 10 + failureThreshold: 10 + readinessProbe: + initialDelaySeconds: 40 + periodSeconds: 10 + failureThreshold: 10 + lifecycleHooks: + postStart: + exec: + command: + - /bin/sh + - -c + - echo "AUTH $REDIS_PASSWORD\nBGREWRITEAOF" | redis-cli + metrics: + image: + registry: artifactory.delivery.puppetlabs.net + repository: release-engineering/redis-exporter + tag: "1.43.0-debian-11-r4" + pullPolicy: IfNotPresent + enabled: true + resources: + requests: + cpu: 50m + memory: 64Mi + limits: + cpu: 200m + memory: 256Mi + + +# Pools are listed last becaue the list can be really long when listed here. +# The default ConfigMap uses the value of the pools key to create pools.yaml. +# You could, instead, provide your own ConfigMap and specify its name below. +poolsConfigMapName: vmpooler-pools +pools: + - name: 'almalinux-8-x86_64-pixa4' + template: 'templates/cluster2/almalinux-8-x86_64-0.0.2' + folder: 'test-instance/cluster2/almalinux-8-x86_64' + datastore: 'vmpooler_cluster2' + clone_target: 'cluster2' + size: 5 + datacenter: 'pix' + provider: 'vsphere-ci67' + snapshot_mainMem_ioBlockPages: '2048' + snapshot_mainMem_iowait: '5' + network: 'vmpooler1' + - name: 'centos-6-x86_64-pixa4' + alias: + - 'centos-6-x86_64' + template: 'templates/cluster2/centos-6.8-x86_64-0.0.2-8gb' + folder: test-instance/cluster2/centos-6-x86_64' + datastore: 'vmpooler_cluster2' + clone_target: 'cluster2' + size: 0 + timeout: 5 + datacenter: 'pix' + provider: 'vsphere-ci67' + snapshot_mainMem_ioBlockPages: '2048' + snapshot_mainMem_iowait: '5' + network: 'vmpooler2'