Helm installation issue

Checklist
[ x] I have read intro post: About the Installation Issues category
[ x] I have read the tutorials, help and searched for similar issues
[ x] I provide relevant information about my server (component names and versions, etc.)
I provide a copy of my logs and healthcheck
[ x] I describe the steps I have taken to trouble shoot the problem
[ x] I describe the steps on how to reproduce the issue

Hello,

I followed the instruction on deploying this using default values but the passbolt deployment pod just stays stuck in pending. The init sidecar container seems to keep “waiting to connect to a database” but it doesn’t even though the maria-db and redis cluster is up.

I followed these instructions: Installing passbolt with Helm | Kubernetes | passbolt

side note: I did not set any values for email as I just want to get this up first. I’m not sure if email has to be set in values for the deployment pod to start.

Kubernetes version: 1.24.13

This a fresh install on my EKS cluster. I can reproduce this every time I uninstall and redeploy.

@johnson-huynh welcome to the forum!

Since you mention using default values did you go through and change all of the CHANGEME fields?

Additionally which all pods are running currently?

Hi @clayton!

I did when I deployed it the first time. The pods ran for maria-db and redis but the passbolt deply server pods were stuck in pending state. The init container logs just shows “waiting for database connection” even though the database pods were running.

I ended up just uninstalling and redeploying again leaving the CHANGEME values as is and received the same results.

Here is some deployment info to the passbolt deployment:

Name:                   mypassbolt-depl-srv
Namespace:              default
CreationTimestamp:      Mon, 12 Jun 2023 17:56:24 -0500
Labels:                 app.kubernetes.io/action=srv
                        app.kubernetes.io/instance=mypassbolt
                        app.kubernetes.io/managed-by=Helm
                        app.kubernetes.io/name=passbolt
                        app.kubernetes.io/type=depl
                        app.kubernetes.io/version=4.0.0-2-ce
                        helm.sh/chart=passbolt-0.3.2
Annotations:            deployment.kubernetes.io/revision: 1
                        meta.helm.sh/release-name: mypassbolt
                        meta.helm.sh/release-namespace: default
Selector:               app.kubernetes.io/instance=mypassbolt,app.kubernetes.io/name=passbolt,app.kubernetes.io/type notin (cron,job)
Replicas:               2 desired | 2 updated | 2 total | 0 available | 2 unavailable
StrategyType:           RollingUpdate
MinReadySeconds:        0
RollingUpdateStrategy:  25% max unavailable, 25% max surge
Pod Template:
  Labels:           app.kubernetes.io/instance=mypassbolt
                    app.kubernetes.io/name=passbolt
  Annotations:      checksum/cm-env: a835c3e7c316adc22a194561741001176409abc05ba3a94149d4b7758a5c9baf
                    checksum/sec-env: a9076b32888a1b6e41f5cb628d68867de1e7e7aef5ea26369e5b36c477e64e5f
                    checksum/sec-gpg: c227af8051a503af939932719c196383bb9288eec02a31a5df25d8c4fd3f12c7
                    checksum/sec-jwt: 2f41f5633f80dd2504aa5868336c5a0016af810da0c0e0abc8e3c531b2aca3c4
                    checksum/sec-redis-proxy: 7c4521bdc515549da22421dc7b425295dc3dbdd055751da9511e12889e828f08
  Service Account:  mypassbolt-sa-common
  Init Containers:
   mypassbolt-depl-srv-init:
    Image:      mariadb:latest
    Port:       <none>
    Host Port:  <none>
    Command:
      /bin/bash
    Args:
      -c
      cat <<-EOF > /tmp/defaultsfile.cnf
      [client]
      user=${DATASOURCES_DEFAULT_USERNAME}
      password=${DATASOURCES_DEFAULT_PASSWORD}
      host=${DATASOURCES_DEFAULT_HOST}
      connect-timeout=2
      EOF
      userhost="%"
      while ! mysql --defaults-file=/tmp/defaultsfile.cnf -e "SELECT 1" > /dev/null 2>&1; do
        echo "Waiting for database connection..."
        sleep 2
      done
      
    Environment Variables from:
      mypassbolt-cm-env   ConfigMap  Optional: false
      mypassbolt-sec-env  Secret     Optional: false
    Environment:
      DATASOURCES_DEFAULT_HOST:  mypassbolt-mariadb-primary
    Mounts:                      <none>
  Containers:
   mypassbolt-depl-srv:
    Image:       passbolt/passbolt:4.0.0-2-ce
    Ports:       443/TCP, 80/TCP
    Host Ports:  0/TCP, 0/TCP
    Command:
      /bin/bash
    Args:
      -c
      set -e
      > /etc/supervisor/conf.d/cron.conf
      /docker-entrypoint.sh
      
    Liveness:   http-get https://:https/healthcheck/status.json delay=20s timeout=1s period=10s #success=1 #failure=3
    Readiness:  http-get https://:https/healthcheck/status.json delay=5s timeout=1s period=10s #success=1 #failure=3
    Environment Variables from:
      mypassbolt-cm-env   ConfigMap  Optional: false
      mypassbolt-sec-env  Secret     Optional: false
    Environment:
      DATASOURCES_DEFAULT_HOST:  mypassbolt-mariadb-primary
    Mounts:
      /etc/passbolt/app.php from mypassbolt-cm-app-php (ro,path="app.php")
      /etc/passbolt/gpg from mypassbolt-depl-srv-sec-gpg (ro)
      /etc/passbolt/jwt from mypassbolt-depl-srv-sec-jwt (ro)
      /etc/ssl/certs/passbolt from mypassbolt-depl-srv-sec-tls (ro)
   mypassbolt-depl-srv-redisproxy:
    Image:        haproxy:latest
    Port:         <none>
    Host Port:    <none>
    Environment:  <none>
    Mounts:
      /usr/local/etc/haproxy/haproxy.cfg from mypassbolt-depl-srv-sec-redis-proxy (ro,path="haproxy.cfg")
  Volumes:
   mypassbolt-depl-srv-sec-tls:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  mypassbolt-sec-tls
    Optional:    false
   mypassbolt-depl-srv-sec-gpg:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  mypassbolt-sec-gpg
    Optional:    false
   mypassbolt-cm-app-php:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      mypassbolt-cm-app-php
    Optional:  false
   mypassbolt-depl-srv-sec-jwt:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  mypassbolt-sec-jwt
    Optional:    false
   mypassbolt-depl-srv-sec-redis-proxy:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  mypassbolt-sec-redis-proxy
    Optional:    false
Conditions:
  Type           Status  Reason
  ----           ------  ------
  Available      False   MinimumReplicasUnavailable
  Progressing    True    ReplicaSetUpdated
OldReplicaSets:  <none>
NewReplicaSet:   mypassbolt-depl-srv-54576658c6 (2/2 replicas created)
Events:
  Type    Reason             Age   From                   Message
  ----    ------             ----  ----                   -------
  Normal  ScalingReplicaSet  35m   deployment-controller  Scaled up replica set mypassbolt-depl-srv-54576658c6 to 2

Mariadb logs:

mariadb 22:58:58.69 INFO  ==> ** Starting MariaDB **
2023-06-12 22:58:58 0 [Note] Starting MariaDB 10.6.12-MariaDB-log source revision 4c79e15cc3716f69c044d4287ad2160da8101cdc as process 1
2023-06-12 22:58:58 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
2023-06-12 22:58:58 0 [Note] InnoDB: Number of pools: 1
2023-06-12 22:58:58 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions
2023-06-12 22:58:58 0 [Note] mysqld: O_TMPFILE is not supported on /opt/bitnami/mariadb/tmp (disabling future attempts)
2023-06-12 22:58:58 0 [Note] InnoDB: Using Linux native AIO
2023-06-12 22:58:58 0 [Note] InnoDB: Initializing buffer pool, total size = 134217728, chunk size = 134217728
2023-06-12 22:58:58 0 [Note] InnoDB: Completed initialization of buffer pool
2023-06-12 22:58:59 0 [Note] InnoDB: 128 rollback segments are active.
2023-06-12 22:58:59 0 [Note] InnoDB: Creating shared tablespace for temporary tables
2023-06-12 22:58:59 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
2023-06-12 22:59:24 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
2023-06-12 22:59:24 0 [Note] InnoDB: 10.6.12 started; log sequence number 42204; transaction id 14
2023-06-12 22:59:24 0 [Note] Plugin 'FEEDBACK' is disabled.
2023-06-12 22:59:24 0 [Note] InnoDB: Loading buffer pool(s) from /bitnami/mariadb/data/ib_buffer_pool
2023-06-12 22:59:24 0 [Note] InnoDB: Buffer pool(s) load completed at 230612 22:59:24
2023-06-12 22:59:24 0 [Note] Server socket created on IP: '0.0.0.0'.
2023-06-12 22:59:24 0 [Note] Server socket created on IP: '::'.
2023-06-12 22:59:24 0 [Warning] 'proxies_priv' entry '@% root@mypassbolt-mariadb-primary-0' ignored in --skip-name-resolve mode.
2023-06-12 22:59:25 0 [Note] /opt/bitnami/mariadb/sbin/mysqld: ready for connections.
Version: '10.6.12-MariaDB-log'  socket: '/opt/bitnami/mariadb/tmp/mysql.sock'  port: 3306  Source distribution
2023-06-12 23:00:09 9 [Note] Start binlog_dump to slave_server(338), pos(, 4), using_gtid(0), gtid('')
1 Like

This is resolved now!

Mariadb container latest image doesn’t have the mysql client that is used for check the database connection in the init container. I ended up changing the default chart values to:

app:
  initImage:
    repository: bitnami/mariadb
1 Like

@vasconce1o the post got hung up for approval, sorry about that. Thanks for contributing!