From 1e7a5562ab0e9cb6f35ed02116c8e0f9fed3c71f Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Thu, 11 Apr 2024 13:45:02 +0200 Subject: [PATCH] Update Clickhouse database credentials and variables --- app/Actions/Database/StartClickhouse.php | 19 +++---- .../Project/Database/Clickhouse/General.php | 10 ++-- app/Models/StandaloneClickhouse.php | 49 +------------------ bootstrap/helpers/databases.php | 2 +- ...19_create_standalone_clickhouses_table.php | 7 ++- .../database/clickhouse/general.blade.php | 13 ++--- 6 files changed, 19 insertions(+), 81 deletions(-) diff --git a/app/Actions/Database/StartClickhouse.php b/app/Actions/Database/StartClickhouse.php index 10fe6e0d5..a4e78c4a0 100644 --- a/app/Actions/Database/StartClickhouse.php +++ b/app/Actions/Database/StartClickhouse.php @@ -19,7 +19,6 @@ public function handle(StandaloneClickhouse $database) { $this->database = $database; - $startCommand = "clickhouse-server"; $container_name = $this->database->uuid; $this->configuration_dir = database_configuration_dir() . '/' . $container_name; @@ -32,13 +31,12 @@ public function handle(StandaloneClickhouse $database) $persistent_storages = $this->generate_local_persistent_volumes(); $volume_names = $this->generate_local_persistent_volumes_only_volume_names(); $environment_variables = $this->generate_environment_variables(); - + ray($environment_variables); $docker_compose = [ 'version' => '3.8', 'services' => [ $container_name => [ 'image' => $this->database->image, - 'command' => $startCommand, 'container_name' => $container_name, 'environment' => $environment_variables, 'restart' => RESTART_MODE, @@ -54,9 +52,8 @@ public function handle(StandaloneClickhouse $database) 'labels' => [ 'coolify.managed' => 'true', ], - 'user' => $this->database->clickhouse_user, 'healthcheck' => [ - 'test' => "wget -qO- http://localhost:8123/ping || exit 1", + 'test' => "clickhouse-client --password {$this->database->clickhouse_admin_password} --query 'SELECT 1'", 'interval' => '5s', 'timeout' => '5s', 'retries' => 10, @@ -149,16 +146,12 @@ private function generate_environment_variables() $environment_variables->push("$env->key=$env->real_value"); } - if ($environment_variables->filter(fn ($env) => Str::of($env)->contains('CLICKHOUSE_DB'))->isEmpty()) { - $environment_variables->push("CLICKHOUSE_DB={$this->database->clickhouse_db}"); + if ($environment_variables->filter(fn ($env) => Str::of($env)->contains('CLICKHOUSE_ADMIN_USER'))->isEmpty()) { + $environment_variables->push("CLICKHOUSE_ADMIN_USER={$this->database->clickhouse_admin_user}"); } - if ($environment_variables->filter(fn ($env) => Str::of($env)->contains('CLICKHOUSE_USER'))->isEmpty()) { - $environment_variables->push("CLICKHOUSE_USER={$this->database->clickhouse_user}"); - } - - if ($environment_variables->filter(fn ($env) => Str::of($env)->contains('CLICKHOUSE_PASSWORD'))->isEmpty()) { - $environment_variables->push("CLICKHOUSE_PASSWORD={$this->database->clickhouse_password}"); + if ($environment_variables->filter(fn ($env) => Str::of($env)->contains('CLICKHOUSE_ADMIN_PASSWORD'))->isEmpty()) { + $environment_variables->push("CLICKHOUSE_ADMIN_PASSWORD={$this->database->clickhouse_admin_password}"); } return $environment_variables->all(); diff --git a/app/Livewire/Project/Database/Clickhouse/General.php b/app/Livewire/Project/Database/Clickhouse/General.php index 29fb0cae2..7ff687951 100644 --- a/app/Livewire/Project/Database/Clickhouse/General.php +++ b/app/Livewire/Project/Database/Clickhouse/General.php @@ -19,9 +19,8 @@ class General extends Component protected $rules = [ 'database.name' => 'required', 'database.description' => 'nullable', - 'database.clickhouse_user' => 'required', - 'database.clickhouse_password' => 'required', - 'database.clickhouse_db' => 'required', + 'database.clickhouse_admin_user' => 'required', + 'database.clickhouse_admin_password' => 'required', 'database.image' => 'required', 'database.ports_mappings' => 'nullable', 'database.is_public' => 'nullable|boolean', @@ -31,9 +30,8 @@ class General extends Component protected $validationAttributes = [ 'database.name' => 'Name', 'database.description' => 'Description', - 'database.clickhouse_user' => 'Postgres User', - 'database.clickhouse_password' => 'Postgres Password', - 'database.clickhouse_db' => 'Postgres DB', + 'database.clickhouse_admin_user' => 'Postgres User', + 'database.clickhouse_admin_password' => 'Postgres Password', 'database.image' => 'Image', 'database.ports_mappings' => 'Port Mapping', 'database.is_public' => 'Is Public', diff --git a/app/Models/StandaloneClickhouse.php b/app/Models/StandaloneClickhouse.php index 35eaf371a..486372df1 100644 --- a/app/Models/StandaloneClickhouse.php +++ b/app/Models/StandaloneClickhouse.php @@ -21,59 +21,12 @@ protected static function booted() static::created(function ($database) { LocalPersistentVolume::create([ 'name' => 'clickhouse-data-' . $database->uuid, - 'mount_path' => '/var/lib/clickhouse/', + 'mount_path' => '/bitnami/clickhouse', 'host_path' => null, 'resource_id' => $database->id, 'resource_type' => $database->getMorphClass(), 'is_readonly' => true ]); - LocalPersistentVolume::create([ - 'name' => 'clickhouse-logs-' . $database->uuid, - 'mount_path' => '/var/log/clickhouse-server/', - 'host_path' => null, - 'resource_id' => $database->id, - 'resource_type' => $database->getMorphClass(), - 'is_readonly' => true - ]); -// LocalFileVolume::create( -// [ -// 'mount_path' => '/etc/clickhouse-server/config.d/docker_related_config.xml', -// 'resource_id' => $database->id, -// 'resource_type' => $database->getMorphClass(), -// 'chown' => '101:101', -// 'chmod' => '644', -// 'fs_path' => database_configuration_dir() . '/' . $database->uuid . '/config.d/docker_related_config.xml', -// 'content' => ' -// -// :: -// 0.0.0.0 -// 1 - -// -// ', -// 'is_directory' => 'false', -// ] -// ); - // LocalPersistentVolume::create([ - // 'name' => 'clickhouse-config-' . $database->uuid, - // 'mount_path' => '/etc/clickhouse-server/config.d', - // 'host_path' => database_configuration_dir() . '/' . $database->uuid . '/config.d', - // 'resource_id' => $database->id, - // 'resource_type' => $database->getMorphClass(), - // 'is_readonly' => true - // ]); - // LocalPersistentVolume::create([ - // 'name' => 'clickhouse-config-users-' . $database->uuid, - // 'mount_path' => '/etc/clickhouse-server/users.d', - // 'host_path' => database_configuration_dir() . '/' . $database->uuid . '/users.d', - // 'resource_id' => $database->id, - // 'resource_type' => $database->getMorphClass(), - // 'is_readonly' => true - // ]); }); static::deleting(function ($database) { $storages = $database->persistentStorages()->get(); diff --git a/bootstrap/helpers/databases.php b/bootstrap/helpers/databases.php index 9eb04ddb8..7e12350fb 100644 --- a/bootstrap/helpers/databases.php +++ b/bootstrap/helpers/databases.php @@ -130,7 +130,7 @@ function create_standalone_clickhouse($environment_id, $destination_uuid): Stand } return StandaloneClickhouse::create([ 'name' => generate_database_name('clickhouse'), - 'clickhouse_password' => \Illuminate\Support\Str::password(length: 64, symbols: false), + 'clickhouse_admin_password' => \Illuminate\Support\Str::password(length: 64, symbols: false), 'environment_id' => $environment_id, 'destination_id' => $destination->id, 'destination_type' => $destination->getMorphClass(), diff --git a/database/migrations/2024_04_10_091519_create_standalone_clickhouses_table.php b/database/migrations/2024_04_10_091519_create_standalone_clickhouses_table.php index f0b5dc12c..e2732d443 100644 --- a/database/migrations/2024_04_10_091519_create_standalone_clickhouses_table.php +++ b/database/migrations/2024_04_10_091519_create_standalone_clickhouses_table.php @@ -17,9 +17,8 @@ public function up(): void $table->string('name'); $table->string('description')->nullable(); - $table->string('clickhouse_user')->default('clickhouse'); - $table->text('clickhouse_password'); - $table->string('clickhouse_db')->default('default'); + $table->string('clickhouse_admin_user')->default('default'); + $table->text('clickhouse_admin_password'); $table->boolean('is_log_drain_enabled')->default(false); $table->boolean('is_include_timestamps')->default(false); @@ -27,7 +26,7 @@ public function up(): void $table->string('status')->default('exited'); - $table->string('image')->default('clickhouse/clickhouse-server'); + $table->string('image')->default('bitnami/clickhouse'); $table->boolean('is_public')->default(false); $table->integer('public_port')->nullable(); diff --git a/resources/views/livewire/project/database/clickhouse/general.blade.php b/resources/views/livewire/project/database/clickhouse/general.blade.php index be8e51476..91f12a94b 100644 --- a/resources/views/livewire/project/database/clickhouse/general.blade.php +++ b/resources/views/livewire/project/database/clickhouse/general.blade.php @@ -15,23 +15,18 @@ @if ($database->started_at)
- - -
@else
Please verify these values. You can only modify them before the initial start. After that, you need to modify it in the database.
- - - + +
@endif