From 52b9462e4ad1b28b0dbd6a3bd6a67ccef1a1c550 Mon Sep 17 00:00:00 2001 From: Julien Dan Date: Tue, 8 Oct 2024 17:41:53 +0200 Subject: [PATCH 1/2] Updates 2024/10/08 --- .../configuration/environment-variable.md | 8 +++++++- .../configuration/environment-variable.md.erb | 6 ++++++ .../using-qovery/deployment/image-mirroring.md | 4 ++-- .../deployment/image-mirroring.md.erb | 2 +- website/guides/advanced/production.md | 2 +- .../variables/var_insert_magic_wand.png | Bin 0 -> 47130 bytes 6 files changed, 17 insertions(+), 5 deletions(-) create mode 100644 website/static/img/configuration/variables/var_insert_magic_wand.png diff --git a/website/docs/using-qovery/configuration/environment-variable.md b/website/docs/using-qovery/configuration/environment-variable.md index a1e371b5b3..29c366ba08 100644 --- a/website/docs/using-qovery/configuration/environment-variable.md +++ b/website/docs/using-qovery/configuration/environment-variable.md @@ -1,5 +1,5 @@ --- -last_modified_on: "2024-05-22" +last_modified_on: "2024-10-08" title: "Environment Variable & Secrets" description: "Learn how to configure Environment Variables and Secrets on Qovery" --- @@ -126,6 +126,12 @@ Important information on this feature: - there is no check at creation / edition / deletion if the referenced variable doesn't exist - "inner replacements" are not supported (e.g VAR_1 = {{VAR_2}} and VAR_2={{VAR_3}} ) +You can easily insert existing variables by clicking on the magic wand icon and selecting your desired variables: + +

+ Variables +

+ ## Naming Rules * Environment variable name should use only alphanumeric characters and the underscore character (_) to ensure they are accessible from all programming languages. Environment variable keys should not include the hyphen character. diff --git a/website/docs/using-qovery/configuration/environment-variable.md.erb b/website/docs/using-qovery/configuration/environment-variable.md.erb index 6bb107d542..ee8c75e96e 100644 --- a/website/docs/using-qovery/configuration/environment-variable.md.erb +++ b/website/docs/using-qovery/configuration/environment-variable.md.erb @@ -123,6 +123,12 @@ Important information on this feature: - there is no check at creation / edition / deletion if the referenced variable doesn't exist - "inner replacements" are not supported (e.g VAR_1 = {{VAR_2}} and VAR_2={{VAR_3}} ) +You can easily insert existing variables by clicking on the magic wand icon and selecting your desired variables: + +

+ Variables +

+ ## Naming Rules * Environment variable name should use only alphanumeric characters and the underscore character (_) to ensure they are accessible from all programming languages. Environment variable keys should not include the hyphen character. diff --git a/website/docs/using-qovery/deployment/image-mirroring.md b/website/docs/using-qovery/deployment/image-mirroring.md index 9badcae3a4..21982a7021 100644 --- a/website/docs/using-qovery/deployment/image-mirroring.md +++ b/website/docs/using-qovery/deployment/image-mirroring.md @@ -1,5 +1,5 @@ --- -last_modified_on: "2024-07-11" +last_modified_on: "2024-10-08" title: "Image Mirroring" description: "Learn how images are mirrored within your cloud account" --- @@ -31,7 +31,7 @@ Every time an application needs to be deployed on your cluster, the application Images within the mirroring registry are organized by "Qovery service", each service has its own repository (or namespace, naming depends on the cloud provider). This means that each service build and mirroring process is completely isolated from the others. -Before building the application A1, Qovery checks within mirroring registry at the repository of the application A1 if an image has already being built with the same version (commit id and environment variables). +Before building the application A1, Qovery checks within mirroring registry at the repository of the application A1 if an image has already being built with the build context parameters (commit id, repository root path, dockerfile path, dockerfile content and environment variables) within the same cluster. If the image already exists, the built is skipped and Qovery starts the deployment of that image on the Kubernetes cluster. diff --git a/website/docs/using-qovery/deployment/image-mirroring.md.erb b/website/docs/using-qovery/deployment/image-mirroring.md.erb index 52d0a4e935..7fc1673353 100644 --- a/website/docs/using-qovery/deployment/image-mirroring.md.erb +++ b/website/docs/using-qovery/deployment/image-mirroring.md.erb @@ -22,7 +22,7 @@ Every time an application needs to be deployed on your cluster, the application Images within the mirroring registry are organized by "Qovery service", each service has its own repository (or namespace, naming depends on the cloud provider). This means that each service build and mirroring process is completely isolated from the others. -Before building the application A1, Qovery checks within mirroring registry at the repository of the application A1 if an image has already being built with the same version (commit id and environment variables). +Before building the application A1, Qovery checks within mirroring registry at the repository of the application A1 if an image has already being built with the build context parameters (commit id, repository root path, dockerfile path, dockerfile content and environment variables) within the same cluster. If the image already exists, the built is skipped and Qovery starts the deployment of that image on the Kubernetes cluster. diff --git a/website/guides/advanced/production.md b/website/guides/advanced/production.md index 52b1a29324..35d8ba7059 100644 --- a/website/guides/advanced/production.md +++ b/website/guides/advanced/production.md @@ -1,5 +1,5 @@ --- -last_modified_on: "2023-12-27" +last_modified_on: "2024-10-08" $schema: "/.meta/.schemas/guides.json" title: Production description: Learn how to run your Production with Qovery diff --git a/website/static/img/configuration/variables/var_insert_magic_wand.png b/website/static/img/configuration/variables/var_insert_magic_wand.png new file mode 100644 index 0000000000000000000000000000000000000000..f7f129f52d4a8e3cd4cba548808af53be1a8178f GIT binary patch literal 47130 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 literal 0 HcmV?d00001 From d92ee55c6ad925fb9c4cfe6978d2f74dc320a48f Mon Sep 17 00:00:00 2001 From: Julien Dan Date: Wed, 9 Oct 2024 10:05:52 +0200 Subject: [PATCH 2/2] Updates 2024/10/08 --- website/docs/using-qovery/deployment/image-mirroring.md | 4 ++-- website/docs/using-qovery/deployment/image-mirroring.md.erb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/website/docs/using-qovery/deployment/image-mirroring.md b/website/docs/using-qovery/deployment/image-mirroring.md index 21982a7021..d8641970f0 100644 --- a/website/docs/using-qovery/deployment/image-mirroring.md +++ b/website/docs/using-qovery/deployment/image-mirroring.md @@ -1,5 +1,5 @@ --- -last_modified_on: "2024-10-08" +last_modified_on: "2024-10-09" title: "Image Mirroring" description: "Learn how images are mirrored within your cloud account" --- @@ -29,7 +29,7 @@ Every time an application needs to be deployed on your cluster, the application ## Application built via the Qovery pipeline -Images within the mirroring registry are organized by "Qovery service", each service has its own repository (or namespace, naming depends on the cloud provider). This means that each service build and mirroring process is completely isolated from the others. +Images in the mirroring registry are organized by Git repository. Each service, with identical build context parameters (commit ID, repository root path, Dockerfile path, Dockerfile content, and environment variables), is assigned its own repository, named z-git_repo_name (or namespace, depending on the cloud provider). This ensures that each service's build and mirroring process is completely isolated from others. Before building the application A1, Qovery checks within mirroring registry at the repository of the application A1 if an image has already being built with the build context parameters (commit id, repository root path, dockerfile path, dockerfile content and environment variables) within the same cluster. diff --git a/website/docs/using-qovery/deployment/image-mirroring.md.erb b/website/docs/using-qovery/deployment/image-mirroring.md.erb index 7fc1673353..d7dc2b43a6 100644 --- a/website/docs/using-qovery/deployment/image-mirroring.md.erb +++ b/website/docs/using-qovery/deployment/image-mirroring.md.erb @@ -20,7 +20,7 @@ Every time an application needs to be deployed on your cluster, the application ## Application built via the Qovery pipeline -Images within the mirroring registry are organized by "Qovery service", each service has its own repository (or namespace, naming depends on the cloud provider). This means that each service build and mirroring process is completely isolated from the others. +Images in the mirroring registry are organized by Git repository. Each service, with identical build context parameters (commit ID, repository root path, Dockerfile path, Dockerfile content, and environment variables), is assigned its own repository, named z-git_repo_name (or namespace, depending on the cloud provider). This ensures that each service's build and mirroring process is completely isolated from others. Before building the application A1, Qovery checks within mirroring registry at the repository of the application A1 if an image has already being built with the build context parameters (commit id, repository root path, dockerfile path, dockerfile content and environment variables) within the same cluster.