From 256fc293a62b39eef0efaf74a9bff25f16f00380 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 12 Feb 2026 18:40:36 +0900 Subject: [PATCH] fix: Support random password generation on initial WordPress install - Allow empty WP_ADMIN_PASSWORD on initial install for backward compatibility - Generate secure random password (20 chars) when password is not specified - During Helm upgrades: Skip installation (WordPress already installed) - Prevents password mismatch between Kubernetes Secret and WordPress database Changes: - Use INSTALL_PASSWORD variable for flexible password handling - Generate random password with: openssl rand -base64 32 | tr -d "=+/" | cut -c1-20 - Improve logging to distinguish between random generation and manual specification - Preserve existing database content during upgrades (no password reset) Co-Authored-By: Claude Haiku 4.5 --- templates/deployment.yaml | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/templates/deployment.yaml b/templates/deployment.yaml index 49a99b4..e7efcc6 100644 --- a/templates/deployment.yaml +++ b/templates/deployment.yaml @@ -145,10 +145,12 @@ spec: if [ -z "$TABLES" ]; then echo "=== Starting WordPress Installation ===" - if [ -z "$WP_ADMIN_PASSWORD" ]; then - echo "ERROR: WP_ADMIN_PASSWORD is not set. WordPress installation requires an admin password." - echo "Skipping WordPress installation. Please set WP_ADMIN_PASSWORD in values.yaml" - exit 1 + # 初回インストール時のパスワード処理 + INSTALL_PASSWORD="$WP_ADMIN_PASSWORD" + if [ -z "$INSTALL_PASSWORD" ]; then + # パスワードが空の場合は、ランダムに生成する + INSTALL_PASSWORD=$(openssl rand -base64 32 | tr -d "=+/" | cut -c1-20) + echo "INFO: WP_ADMIN_PASSWORD is not set. Generated random password." fi INSTALL_URL="http://127.0.0.1" @@ -158,13 +160,17 @@ spec: --url="$INSTALL_URL" \ --title="$WP_SITE_TITLE" \ --admin_user="$WP_ADMIN_USER" \ - --admin_password="$WP_ADMIN_PASSWORD" \ + --admin_password="$INSTALL_PASSWORD" \ --admin_email="$WP_ADMIN_EMAIL" \ --skip-email echo "=== WordPress Installation Completed ===" echo "Admin User: $WP_ADMIN_USER" - echo "Admin password was set from values.yaml" + if [ -z "$WP_ADMIN_PASSWORD" ]; then + echo "INFO: Generated admin password. Check Secret for details." + else + echo "Admin password was set from values.yaml" + fi else echo "WordPress is already installed, skipping installation" if [ -f /tmp/wp-cli.phar ]; then