Skip to content

Unable to change root password for the persistent storage implementation in OpenShift #362

@rludva

Description

@rludva

Container platform

OCP 4

Version

  • 8.0-el8
  • Version: '8.0.32'

OS version of the container image

No response

Bugzilla, Jira

No response

Description

Is it expected to have the option to change password for root in the persistent storage scenario?
If yes, how to change the password for root once the pod is created?

When root password is changed in the secrets the pod in OpenShift is constantly in CrashLoopBackOff/Error and restarts. The documentation says that the only way how to change the root password is via env variables. These are defined in the secrets.

When the password is changed via mysql and mysql-persistent-parameters-_____ secrets logs show:

$ oc logs mysql-1-m24qs
=> sourcing 20-validate-variables.sh ...
error: Invalid root password
You must either specify the following environment variables:
  MYSQL_USER (regex: '^[a-zA-Z0-9_]+$')
  MYSQL_PASSWORD (regex: '^[a-zA-Z0-9_~!@#$%^&*()-=<>,.?;:|]+$')
  MYSQL_DATABASE (regex: '^[a-zA-Z0-9_]+$')
Or the following environment variable:
  MYSQL_ROOT_PASSWORD (regex: '^[a-zA-Z0-9_~!@#$%^&*()-=<>,.?;:|]+$')
Or both.
Optional Settings:
  MYSQL_LOWER_CASE_TABLE_NAMES (default: 0)
  MYSQL_LOG_QUERIES_ENABLED (default: 0)
  MYSQL_MAX_CONNECTIONS (default: 151)
  MYSQL_FT_MIN_WORD_LEN (default: 4)
  MYSQL_FT_MAX_WORD_LEN (default: 20)
  MYSQL_AIO (default: 1)
  MYSQL_KEY_BUFFER_SIZE (default: 32M or 10% of available memory)
  MYSQL_MAX_ALLOWED_PACKET (default: 200M)
  MYSQL_TABLE_OPEN_CACHE (default: 400)
  MYSQL_SORT_BUFFER_SIZE (default: 256K)
  MYSQL_READ_BUFFER_SIZE (default: 8M or 5% of available memory)
  MYSQL_INNODB_BUFFER_POOL_SIZE (default: 32M or 50% of available memory)
  MYSQL_INNODB_LOG_FILE_SIZE (default: 8M or 15% of available memory)
  MYSQL_INNODB_LOG_BUFFER_SIZE (default: 8M or 15% of available memory)

For more information, see https://github.com/sclorg/mysql-container

Reproducer

  • Create instance in the OpenShift via OpenShift WebConsole -> Developer -> Add -> Database...
  • Ensure that you are able to connect to the MySQL with the current password.
  • Scale down the pod via deploymentconfig
  • Create a new MYSQL_ROOT_PASSWORD end put it to the secrets mysl and mysql-persistent-parameters-_____ properly encoded to base64.
  • Scale up the mysql deploymentconfig:
$ oc get pods
NAME             READY   STATUS             RESTARTS      AGE
mysql-1-deploy   0/1     Completed          0             9m57s
mysql-1-m24qs    0/1     CrashLoopBackOff   6 (13s ago)   5m59s

```an 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions