From 86f73d2c188f175eb2117b36df054012d91b4ef9 Mon Sep 17 00:00:00 2001 From: Samy OUBOUAZIZ Date: Wed, 21 Oct 2026 14:41:53 +0200 Subject: [PATCH 1/4] chore(gen): cleanup macros (links +misuse) --- .../serverless-containers-endpoints.mdx | 2 +- .../serverless-functions-endpoints.mdx | 2 +- macros/cockpit/alert-billing.mdx | 8 -- .../instances-block-bandwidth-overview.mdx | 130 ------------------ macros/compute/public-ip.mdx | 7 - macros/concepts/block-snapshot.mdx | 2 +- macros/concepts/local-volumes.mdx | 2 +- .../scaleway-configuration-file.mdx | 4 +- macros/general/troubleshooting-ticket.mdx | 29 ---- macros/iam/login-member.mdx | 2 +- .../block-storage-no-migration-for-k8s.mdx | 8 -- macros/storage/boot-on-block.mdx | 2 +- .../reference-content/splunk-integration.mdx | 2 - pages/block-storage/how-to/mount-a-volume.mdx | 5 + pages/cockpit/faq.mdx | 2 - .../how-to/monitor-workflow.mdx | 1 - pages/data-orchestrator/quickstart.mdx | 1 - pages/file-storage/concepts.mdx | 4 + .../getting-started-autoscaling-groups.mdx | 5 +- .../reference-content/instance-lifecycle.mdx | 2 - .../scaleway-create-es-pipeline-lb.webp | Bin 32514 -> 0 bytes .../how-to/use-edge-services.mdx | 4 - .../custom-domain-in-error-status.mdx | 1 - .../custom-domain-in-error-status.mdx | 1 - .../how-to/create-manage-routing-policy.mdx | 5 + .../understanding-vpc-peering.mdx | 1 - 26 files changed, 25 insertions(+), 207 deletions(-) delete mode 100644 macros/cockpit/alert-billing.mdx delete mode 100644 macros/compute/instances-block-bandwidth-overview.mdx delete mode 100644 macros/compute/public-ip.mdx delete mode 100644 macros/general/troubleshooting-ticket.mdx delete mode 100644 macros/storage/block-storage-no-migration-for-k8s.mdx delete mode 100644 pages/load-balancer/how-to/assets/scaleway-create-es-pipeline-lb.webp diff --git a/macros/audit-trail/serverless-containers-endpoints.mdx b/macros/audit-trail/serverless-containers-endpoints.mdx index 7c1c43b8ed..9dd8f6b173 100644 --- a/macros/audit-trail/serverless-containers-endpoints.mdx +++ b/macros/audit-trail/serverless-containers-endpoints.mdx @@ -7,7 +7,7 @@ macro: adt-serverless-containers-endpoints ### Serverless Containers supported endpoints - The following [Serverless Containers](/serverless/containers/) endpoints are supported and will be logged in Audit Trail: + The following [Serverless Containers](/serverless-containers/) endpoints are supported and will be logged in Audit Trail: - CreateContainer (`POST /containers/v1/regions/{region}/containers`) - UpdateContainer (`PATCH /containers/v1/regions/{region}/containers/{container_id}`) diff --git a/macros/audit-trail/serverless-functions-endpoints.mdx b/macros/audit-trail/serverless-functions-endpoints.mdx index ec97beaeb8..56f5426a2b 100644 --- a/macros/audit-trail/serverless-functions-endpoints.mdx +++ b/macros/audit-trail/serverless-functions-endpoints.mdx @@ -7,7 +7,7 @@ macro: adt-serverless-functions-endpoints ### Serverless Functions supported endpoints - The following [Serverless Functions](/serverless/functions/) endpoints are supported and will be logged in Audit Trail: + The following [Serverless Functions](/serverless-functions/) endpoints are supported and will be logged in Audit Trail: - CreateCron (`POST /functions/v1beta1/regions/{region}/crons`) - UpdateCron (`PATCH /functions/v1beta1/regions/{region}/crons/{cron_id}`) diff --git a/macros/cockpit/alert-billing.mdx b/macros/cockpit/alert-billing.mdx deleted file mode 100644 index 176570c549..0000000000 --- a/macros/cockpit/alert-billing.mdx +++ /dev/null @@ -1,8 +0,0 @@ ---- -macro: alert-billing ---- - - - **Review your alerts**

- You are responsible for your active alerting rules in Cockpit. We recommend that you review your alerting and recording rules configuration **before March 1st 2026**. Disable unused or unnecessary rules to avoid unexpected charges. -
\ No newline at end of file diff --git a/macros/compute/instances-block-bandwidth-overview.mdx b/macros/compute/instances-block-bandwidth-overview.mdx deleted file mode 100644 index 2d651d717f..0000000000 --- a/macros/compute/instances-block-bandwidth-overview.mdx +++ /dev/null @@ -1,130 +0,0 @@ ---- -macros: instances-block-bandwidth-overview ---- - -This guide provides a complete overview of internet and Block Storage bandwidth for Scaleway Instances. -Understanding these specifications is crucial for optimizing your infrastructure for performance and compatibility. - -### Why bandwidth matters - -Bandwidth impacts how your applications perform and interact with other systems. -- **Internet bandwidth**: Affects how fast your Instance can send or receive data over the internet. -- **Block bandwidth**: Determines the read/write speed to Block Storage, essential for storage-heavy workloads like databases and analytics. - - - Bandwidth specifications listed here are for informational purposes. To validate the exact bandwidth capacity of your Instance type, refer to the `block_bandwidth` field in the [Instances API](https://www.scaleway.com/en/developers/api/instances/#path-instance-types-list-instance-types). Use the endpoint `/instance/v1/zones/{zone}/products/servers` to retrieve Instance type specifications. - - - - To maximize compatibility with [Block Storage Low Latency 15k](/block-storage/), select an Instance with **at least 3 GiB/s** of Block bandwidth. - - -## BASIC2-A range -| Instance Type | Internet Bandwidth (up to) | Block Bandwidth (up to) | -|-----------------------|-------------------------|---------------------| -| BASIC2-A2C-4G | 200 Mbit/s | 80 MiB/s | -| BASIC2-A2C-8G | 200 Mbit/s | 80 MiB/s | -| BASIC2-A4C-8G | 400 Mbit/s | 120 MiB/s | -| BASIC2-A4C-16G | 400 Mbit/s | 120 MiB/s | -| BASIC2-A8C-16G | 800 Mbit/s | 240 MiB/s | -| BASIC2-A8C-32G | 800 Mbit/s | 240 MiB/s | -| BASIC2-A16C-32G | 1.6 Gbit/s | 480 MiB/s | -| BASIC2-A16C-64G | 1.6 Gbit/s | 480 MiB/s | - -## COPARM1 range - -| Instance Type | Internet Bandwidth (up to) | Block Bandwidth (up to) | -|-----------------------|-------------------------|---------------------| -| COPARM1-2C-8G | 200 Mbit/s | 80 MiB/s | -| COPARM1-4C-16G | 400 Mbit/s | 160 MiB/s | -| COPARM1-8C-32G | 800 Mbit/s | 320 MiB/s | -| COPARM1-16C-64G | 1.6 Gbit/s | 640 MiB/s | -| COPARM1-32C-128G | 3.2 Gbit/s | 1.25 GiB/s | - -## DEV1 range - -| Instance Type | Internet Bandwidth (up to) | Block Bandwidth (up to) | -|-----------------------|-------------------------|---------------------| -| DEV1-S | 200 Mbit/s | 100 MiB/s | -| DEV1-M | 300 Mbit/s | 150 MiB/s | -| DEV1-L | 400 Mbit/s | 200 MiB/s | -| DEV1-XL | 500 Mbit/s | 250 MiB/s | - -## GP1 range - -| Instance Type | Internet Bandwidth (up to) | Block Bandwidth (up to) | -|-----------------------|-------------------------|---------------------| -| GP1-XS | 500 Mbit/s | 300 MiB/s | -| GP1-S | 800 Mbit/s | 500 MiB/s | -| GP1-M | 1.5 Gbit/s | 800 MiB/s | -| GP1-L | 5 Gbit/s | 1 GiB/s | -| GP1-XL | 10 Gbit/s | 2 GiB/s | - -## PLAY2 range - -| Instance Type | Internet Bandwidth (up to) | Block Bandwidth (up to) | -|-----------------------|-------------------------|---------------------| -| PLAY2-PICO | 100 Mbit/s | 40 MiB/s | -| PLAY2-NANO | 200 Mbit/s | 80 MiB/s | -| PLAY2-MICRO | 400 Mbit/s | 160 MiB/s | - -## PRO2 range - -| Instance Type | Internet Bandwidth (up to) | Block Bandwidth (up to) | -|-----------------------|-------------------------|---------------------| -| PRO2-XXS | 350 Mbit/s | 125 MiB/s | -| PRO2-XS | 700 Mbit/s | 250 MiB/s | -| PRO2-S | 1.5 Gbit/s | 500 MiB/s | -| PRO2-M | 3 Gbit/s | 1 GiB/s | -| PRO2-L | 6 Gbit/s | 2 GiB/s | - -## POP2 range - -| Instance Type | Internet Bandwidth (up to) | Block Bandwidth (up to) | -|-----------------------|-------------------------|---------------------| -| POP2-2C-8G | 400 Mbit/s | 400 MiB/s | -| POP2-4C-16G | 800 Mbit/s | 800 MiB/s | -| POP2-8C-32G | 1.6 Gbit/s | 1.56 GiB/s | -| POP2-16C-64G | 3.2 Gbit/s | 3.12 GiB/s | -| POP2-32C-128G | 6.4 Gbit/s | 5.5 GiB/s | -| POP2-64C-256G | 12.8 Gbit/s | 5.5 GiB/s | - -## POP2-WIN range (Windows Server OS) - -| Instance Type | Internet Bandwidth (up to) | Block Bandwidth (up to) | -|-----------------------|-------------------------|---------------------| -| POP2-2C-8G-WIN | 400 Mbit/s | 400 MiB/s | -| POP2-4C-16G-WIN | 800 Mbit/s | 800 MiB/s | -| POP2-8C-32G-WIN | 1.6 Gbit/s | 1.56 GiB/s | -| POP2-16C-64G-WIN | 3.2 Gbit/s | 3.12 GiB/s | -| POP2-32C-128G-WIN | 6.4 Gbit/s | 5.5 GiB/s | - -## POP2-HC range (High Compute) - -| Instance Type | Internet Bandwidth (up to) | Block Bandwidth (up to) | -|-----------------------|-------------------------|---------------------| -| POP2-HC-2C-4G | 400 Mbit/s | 400 MiB/s | -| POP2-HC-4C-8G | 800 Mbit/s | 800 MiB/s | -| POP2-HC-8C-16G | 1.6 Gbit/s | 1.56 GiB/s | -| POP2-HC-16C-32G | 3.2 Gbit/s | 3.12 GiB/s | -| POP2-HC-32C-64G | 6.4 Gbit/s | 5.5 GiB/s | -| POP2-HC-64C-128G | 12.8 Gbit/s | 5.5 GiB/s | - -## POP2-HM range (High Memory) - -| Instance Type | Internet Bandwidth (up to) | Block Bandwidth (up to) | -|-----------------------|-------------------------|---------------------| -| POP2-HM-2C-16G | 400 Mbit/s | 400 MiB/s | -| POP2-HM-4C-32G | 800 Mbit/s | 800 MiB/s | -| POP2-HM-8C-64G | 1.6 Gbit/s | 1.56 GiB/s | -| POP2-HM-16C-128G | 3.2 Gbit/s | 3.12 GiB/s | -| POP2-HM-32C-256G | 6.4 Gbit/s | 5.5 GiB/s | -| POP2-HM-64C-512G | 12.8 Gbit/s | 5.5 GiB/s | - -## POP2-HN range (High Network) - -| Instance Type | Internet Bandwidth (up to) | Block Bandwidth (up to) | -|-----------------------|-------------------------|---------------------| -| POP2-HN-3 | 3 Gbit/s | 400 MiB/s | -| POP2-HN-5 | 5 Gbit/s | 800 MiB/s | -| POP2-HN-10 | 10 Gbit/s | 800 MiB/s | \ No newline at end of file diff --git a/macros/compute/public-ip.mdx b/macros/compute/public-ip.mdx deleted file mode 100644 index 2a16989818..0000000000 --- a/macros/compute/public-ip.mdx +++ /dev/null @@ -1,7 +0,0 @@ ---- -macro: compute-public-ip -title: Implementing a DNS server using BIND -description: In this tutorial you will learn How to implement a DNS server using BIND. ---- - -Public IP addresses are routed on the internet. You can enter the public IP address of your Instance into any browser connected to the Internet, and access content being served from that instance. You can think of public IP addresses like postal addresses for buildings - they are unique, and tell the routers directing traffic through the internet where to find a particular server. diff --git a/macros/concepts/block-snapshot.mdx b/macros/concepts/block-snapshot.mdx index d3b6dec35b..c13c7802a3 100644 --- a/macros/concepts/block-snapshot.mdx +++ b/macros/concepts/block-snapshot.mdx @@ -2,6 +2,6 @@ macro: block-snapshot --- -A snapshot takes a picture of a specific volume at one point in time. For example, you may have a server with one volume containing the OS and another containing the application data, and you want to use different snapshot strategies on both volumes. [Creating snapshots of your volumes](/block-storage/how-to/create-a-snapshot/) gives you total freedom of which volumes you want to back up, while [images](#image) are more convenient for full backups of your Instance. +A snapshot takes a picture of a specific volume at one point in time. For example, you may have a server with one volume containing the OS and another containing the application data, and you want to use different snapshot strategies on both volumes. [Creating snapshots of your volumes](/block-storage/how-to/create-a-snapshot/) gives you total freedom of which volumes you want to back up, while images are more convenient for full backups of your Instance. You can create a snapshot directly from a volume, or generate it automatically when you create an Instance image. In both cases, the snapshot exists as an independent, billed resource and is not deleted when its source volume, Instance, or image is deleted. \ No newline at end of file diff --git a/macros/concepts/local-volumes.mdx b/macros/concepts/local-volumes.mdx index f6d7852412..277f44e5ca 100644 --- a/macros/concepts/local-volumes.mdx +++ b/macros/concepts/local-volumes.mdx @@ -2,4 +2,4 @@ macro: local-volumes --- -The local volume of an Instance is an all-SSD-based storage solution, using a RAID array for redundancy and performance, hosted on the local hypervisor. On Scaleway Instances, the size of the local volume is fixed and depends on the Instance type. Some Instance types do not use local volumes and [boot directly on block volumes](#boot-on-block). In any case, it is always possible to increase the storage of an Instance by adding extra block volumes. \ No newline at end of file +The local volume of an Instance is an all-SSD-based storage solution, using a RAID array for redundancy and performance, hosted on the local hypervisor. On Scaleway Instances, the size of the local volume is fixed and depends on the Instance type. Some Instance types do not use local volumes and boot directly on block volumes](#boot-on-block). In any case, it is always possible to increase the storage of an Instance by adding extra block volumes. \ No newline at end of file diff --git a/macros/developer-tools/scaleway-configuration-file.mdx b/macros/developer-tools/scaleway-configuration-file.mdx index 48a98ef814..25f65e48c2 100644 --- a/macros/developer-tools/scaleway-configuration-file.mdx +++ b/macros/developer-tools/scaleway-configuration-file.mdx @@ -21,10 +21,10 @@ The configuration file contains the following elements: : The ID of the Scaleway Project to use by default **default_zone** -: The [availability zone](/account/products-availability/) to use by default +: The [availability zone](https://www.scaleway.com/en/product-availability-by-region/) to use by default **default_region** -: The [region](/account/products-availability/) to use by default +: The [region](https://www.scaleway.com/en/product-availability-by-region/) to use by default **api_url** : The API URL to use (`https://api.scaleway.com` by default) diff --git a/macros/general/troubleshooting-ticket.mdx b/macros/general/troubleshooting-ticket.mdx deleted file mode 100644 index 041cddc94d..0000000000 --- a/macros/general/troubleshooting-ticket.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -macro: troubleshooting-ticket ---- - -If you still cannot solve your problem, [open a support ticket](/account/support/open-a-support-ticket/#writing-an-effective-subject-and-description), providing as many details as possible including the information below: - - Resource ID - - Resource name - - Date and time (timestamp) - - User-agent (SDK, client, console, etc.) - - Transaction ID (if possible) - - Log / trace of the error (if possible) - - Screenshots (using our secure [pastebin tool](https://privatebin.iliad.fr/)) - - HTTP status code (if applicable) - - Request type (PUT, GET, etc., if applicable) - - - - - diff --git a/macros/iam/login-member.mdx b/macros/iam/login-member.mdx index 5adada9558..3b94cb4ef0 100644 --- a/macros/iam/login-member.mdx +++ b/macros/iam/login-member.mdx @@ -23,7 +23,7 @@ macro: login-member - Make sure you check your spam folder - Click **Resend email** - Contact an Organization administrator to make sure your information was correctly registered - - If none of the actions above work, ask an administrator to [contact the support](/account/support/open-a-support-ticket/#writing-an-effective-subject-and-description) + - If none of the actions above work, ask an administrator to [contact the support](/account/support/open-a-support-ticket/) 4. Click **Continue**. diff --git a/macros/storage/block-storage-no-migration-for-k8s.mdx b/macros/storage/block-storage-no-migration-for-k8s.mdx deleted file mode 100644 index 1fb655b649..0000000000 --- a/macros/storage/block-storage-no-migration-for-k8s.mdx +++ /dev/null @@ -1,8 +0,0 @@ ---- -macro: block-storage-no-migration-for-k8s ---- - - -

- **Kubernetes customers must not migrate their block volumes to the Block Storage API to prevent major disruptions to their Kubernetes service and block volume unavailability.** You can identify your volumes by [listing them](/block-storage/api-cli/identifying-volume-snapshot-api/#listing-volumes-created-with-the-block-storage-api) and referring to the `name` field, next to which you should see an output similar to `k8s_base_node_2024-07-26`. -
\ No newline at end of file diff --git a/macros/storage/boot-on-block.mdx b/macros/storage/boot-on-block.mdx index e58ff180d4..4b4d5eb45e 100644 --- a/macros/storage/boot-on-block.mdx +++ b/macros/storage/boot-on-block.mdx @@ -2,4 +2,4 @@ macro: storage-boot-on-block --- -Boot-on-block is a feature that allows booting Instances from attached [Block Storage](#block-volumes) volumes instead of local volumes. It is available for all Instance types. \ No newline at end of file +Boot-on-block is a feature that allows booting Instances from attached Block Storage volumes instead of local volumes. It is available for all Instance types. \ No newline at end of file diff --git a/pages/audit-trail/reference-content/splunk-integration.mdx b/pages/audit-trail/reference-content/splunk-integration.mdx index ffb848fb90..c00be2cd60 100644 --- a/pages/audit-trail/reference-content/splunk-integration.mdx +++ b/pages/audit-trail/reference-content/splunk-integration.mdx @@ -9,8 +9,6 @@ categories: - monitoring --- -import Requirements from '@macros/iam/requirements.mdx' - import image1 from './assets/scaleway-audit-trail-splunk-add-account.png' import image2 from './assets/scaleway-audit-trail-splunk-create-new-input.png' diff --git a/pages/block-storage/how-to/mount-a-volume.mdx b/pages/block-storage/how-to/mount-a-volume.mdx index 14a2bf62fe..17824da4e6 100644 --- a/pages/block-storage/how-to/mount-a-volume.mdx +++ b/pages/block-storage/how-to/mount-a-volume.mdx @@ -8,6 +8,11 @@ dates: --- import Requirements from '@macros/iam/requirements.mdx' + + +- A Scaleway account logged into the [console](https://console.scaleway.com) +- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization + - A Scaleway account logged into the [console](https://console.scaleway.com) - [Owner](/iam/concepts/glossary/#owner) status or [IAM permissions](/iam/concepts/glossary/#permission) allowing you to perform actions in the intended Organization - An [Instance](/instances/concepts/#instance) diff --git a/pages/cockpit/faq.mdx b/pages/cockpit/faq.mdx index 3068c86afd..2561918f0e 100644 --- a/pages/cockpit/faq.mdx +++ b/pages/cockpit/faq.mdx @@ -6,8 +6,6 @@ dates: productIcon: CockpitProductIcon --- -import AlertBilling from '@macros/cockpit/alert-billing.mdx' - ## Overview ### What is Cockpit? diff --git a/pages/data-orchestrator/how-to/monitor-workflow.mdx b/pages/data-orchestrator/how-to/monitor-workflow.mdx index a44c117df3..9e3e5ed47a 100644 --- a/pages/data-orchestrator/how-to/monitor-workflow.mdx +++ b/pages/data-orchestrator/how-to/monitor-workflow.mdx @@ -7,7 +7,6 @@ dates: posted: 2026-04-20 --- import Requirements from '@macros/iam/requirements.mdx' -import RunWorkflow from '@macros/data-orchestrator/run-workflow.mdx' import BetaNoteDataOrc from '@macros/data-orchestrator/beta-note.mdx' diff --git a/pages/data-orchestrator/quickstart.mdx b/pages/data-orchestrator/quickstart.mdx index 244cbbc910..ce4464ba0d 100644 --- a/pages/data-orchestrator/quickstart.mdx +++ b/pages/data-orchestrator/quickstart.mdx @@ -7,7 +7,6 @@ dates: posted: 2025-04-20 --- import Requirements from '@macros/iam/requirements.mdx' -import UploadWorkflow from '@macros/data-orchestrator/upload-workflow.mdx' import RunWorkflow from '@macros/data-orchestrator/run-workflow.mdx' import BetaNoteDataOrc from '@macros/data-orchestrator/beta-note.mdx' diff --git a/pages/file-storage/concepts.mdx b/pages/file-storage/concepts.mdx index 97d8ad63ed..bb207b6140 100644 --- a/pages/file-storage/concepts.mdx +++ b/pages/file-storage/concepts.mdx @@ -24,6 +24,10 @@ Refer to the [dedicated documentation](/file-storage/how-to/attach-file-system/) +## Block Volumes + + + ## File Storage Scaleway File Storage allows you to keep data in an organized hierarchy of files and folders. This hierarchy can be shared across a network, so multiple compute instances can work on the same collection of files. diff --git a/pages/instances/api-cli/getting-started-autoscaling-groups.mdx b/pages/instances/api-cli/getting-started-autoscaling-groups.mdx index ca0ec3a564..aec51eece8 100644 --- a/pages/instances/api-cli/getting-started-autoscaling-groups.mdx +++ b/pages/instances/api-cli/getting-started-autoscaling-groups.mdx @@ -14,9 +14,10 @@ Autoscaling Groups help you maintain application performance and control costs: This guide takes you from setup to your first working Autoscaling Group. You create an Instance template, launch an Autoscaling Group, and verify that scale-out, scale-in, and auto-healing behave as expected. -## Before you start + -- A Scaleway account logged into the [console](https://console.scaleway.com/) +- A Scaleway account logged into the [console](https://console.scaleway.com) +- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization - Beta access to the Autoscaling Groups Private Beta - A Scaleway Project to work in - A terminal with [curl](https://curl.se/) and/or [CLI](https://www.scaleway.com/fr/cli/) installed diff --git a/pages/instances/reference-content/instance-lifecycle.mdx b/pages/instances/reference-content/instance-lifecycle.mdx index 26eee12a32..fe948e0a24 100644 --- a/pages/instances/reference-content/instance-lifecycle.mdx +++ b/pages/instances/reference-content/instance-lifecycle.mdx @@ -7,8 +7,6 @@ dates: posted: 2026-03-12 --- -import Requirements from '@macros/iam/requirements.mdx' - import alert from './assets/alert.webp' import healthy from './assets/healthy.webp' import restriction from './assets/restriction.webp' diff --git a/pages/load-balancer/how-to/assets/scaleway-create-es-pipeline-lb.webp b/pages/load-balancer/how-to/assets/scaleway-create-es-pipeline-lb.webp deleted file mode 100644 index 75d89eb2b680c1b8cf3b72eddcd05816a3bf4d17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32514 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 W)Z_av*!JK@(G`OKS@gi}L;QbmobH_f diff --git a/pages/load-balancer/how-to/use-edge-services.mdx b/pages/load-balancer/how-to/use-edge-services.mdx index fbaaf14275..a3f4d47f8d 100644 --- a/pages/load-balancer/how-to/use-edge-services.mdx +++ b/pages/load-balancer/how-to/use-edge-services.mdx @@ -7,10 +7,6 @@ dates: tags: load-balancer edge-services cdn network cache domain https --- import EdgeServicesLbBenefits from '@macros/edge-services/edge-services-lb-benefits.mdx' -import Requirements from '@macros/iam/requirements.mdx' - -import image from './assets/scaleway-create-es-pipeline-lb.webp' - Edge Services is an additional feature for Scaleway Load Balancers and Object Storage buckets. diff --git a/pages/serverless-containers/troubleshooting/custom-domain-in-error-status.mdx b/pages/serverless-containers/troubleshooting/custom-domain-in-error-status.mdx index c574280667..c74ac1dc49 100644 --- a/pages/serverless-containers/troubleshooting/custom-domain-in-error-status.mdx +++ b/pages/serverless-containers/troubleshooting/custom-domain-in-error-status.mdx @@ -6,7 +6,6 @@ dates: validation: 2026-03-02 posted: 2026-03-02 --- -import Requirements from '@macros/iam/requirements.mdx' import image from '../assets/cloudflare-bypass-cache-well-known-acme-challenge.webp' diff --git a/pages/serverless-functions/troubleshooting/custom-domain-in-error-status.mdx b/pages/serverless-functions/troubleshooting/custom-domain-in-error-status.mdx index a5a892bd96..93a61d12f1 100644 --- a/pages/serverless-functions/troubleshooting/custom-domain-in-error-status.mdx +++ b/pages/serverless-functions/troubleshooting/custom-domain-in-error-status.mdx @@ -6,7 +6,6 @@ dates: validation: 2026-03-02 posted: 2026-03-02 --- -import Requirements from '@macros/iam/requirements.mdx' import image from '../assets/cloudflare-bypass-cache-well-known-acme-challenge.webp' diff --git a/pages/site-to-site-vpn/how-to/create-manage-routing-policy.mdx b/pages/site-to-site-vpn/how-to/create-manage-routing-policy.mdx index 1a1c87f4ee..9f550c55d3 100644 --- a/pages/site-to-site-vpn/how-to/create-manage-routing-policy.mdx +++ b/pages/site-to-site-vpn/how-to/create-manage-routing-policy.mdx @@ -22,6 +22,11 @@ A VPN connection must have a **minimum of one** and a **maximum of two** attache When creating a routing policy, you specify one or many IP ranges representing the outgoing routes to announce from the Scaleway VPN gateway, and one or many IP ranges representing the incoming route announcements to accept from the customer gateway. When [route propagation](/site-to-site-vpn/concepts/#route-propagation) is activated, the route ranges defined in the routing policy are whitelisted, and traffic can flow through the tunnel along these routes. + + +- A Scaleway account logged into the [console](https://console.scaleway.com) +- [Owner](/iam/concepts/glossary/#owner) status or [IAM permissions](/iam/concepts/glossary/#permission) allowing you to perform actions in the intended Organization + ## How to create a routing policy 1. Click **Site-to-Site VPN** in the **Network** section of the [Scaleway console](https://console.scaleway.com) side menu. A listing of your VPN connections displays. diff --git a/pages/vpc-peering/reference-content/understanding-vpc-peering.mdx b/pages/vpc-peering/reference-content/understanding-vpc-peering.mdx index 7f1f83e568..c5a5cebcb3 100644 --- a/pages/vpc-peering/reference-content/understanding-vpc-peering.mdx +++ b/pages/vpc-peering/reference-content/understanding-vpc-peering.mdx @@ -8,7 +8,6 @@ dates: --- import UnsupportedRoutingProducts from '@macros/vpc/unsupported-routing-products.mdx' import peeringDiag from './assets/scaleway-vpc-peering-diag.webp' -import VPCRoutingCompatibility from '@macros/vpc/vpc-routing-compatibility.mdx' This document covers the features, use cases, pricing, and technical details of VPC Peering. From eaa69d4ab1f906c0155cc6da251e59d2d01f145d Mon Sep 17 00:00:00 2001 From: Samy OUBOUAZIZ Date: Wed, 21 Oct 2026 14:52:57 +0200 Subject: [PATCH 2/4] chore(gen): update --- pages/account/login-credentials/log-in-to-the-console.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/account/login-credentials/log-in-to-the-console.mdx b/pages/account/login-credentials/log-in-to-the-console.mdx index 5f8f10c21a..936e290aa6 100644 --- a/pages/account/login-credentials/log-in-to-the-console.mdx +++ b/pages/account/login-credentials/log-in-to-the-console.mdx @@ -6,7 +6,7 @@ dates: validation: 2026-06-26 posted: 2024-06-11 --- -import LoginMember from '@macros/iam/login-member.mdx' + import Requirements from '@macros/iam/requirements.mdx' import image from './assets/scaleway-auth-code.webp' From 1bb648b54357bfc76d7a80a1fbb62d6876e91c51 Mon Sep 17 00:00:00 2001 From: SamyOubouaziz Date: Wed, 21 Oct 2026 15:28:06 +0200 Subject: [PATCH 3/4] Update macros/concepts/local-volumes.mdx Co-authored-by: vanda-scw --- macros/concepts/local-volumes.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/macros/concepts/local-volumes.mdx b/macros/concepts/local-volumes.mdx index 277f44e5ca..f6d7852412 100644 --- a/macros/concepts/local-volumes.mdx +++ b/macros/concepts/local-volumes.mdx @@ -2,4 +2,4 @@ macro: local-volumes --- -The local volume of an Instance is an all-SSD-based storage solution, using a RAID array for redundancy and performance, hosted on the local hypervisor. On Scaleway Instances, the size of the local volume is fixed and depends on the Instance type. Some Instance types do not use local volumes and boot directly on block volumes](#boot-on-block). In any case, it is always possible to increase the storage of an Instance by adding extra block volumes. \ No newline at end of file +The local volume of an Instance is an all-SSD-based storage solution, using a RAID array for redundancy and performance, hosted on the local hypervisor. On Scaleway Instances, the size of the local volume is fixed and depends on the Instance type. Some Instance types do not use local volumes and [boot directly on block volumes](#boot-on-block). In any case, it is always possible to increase the storage of an Instance by adding extra block volumes. \ No newline at end of file From 426ebeab4bf138a6d537105f04cab0ad79dcdab8 Mon Sep 17 00:00:00 2001 From: SamyOubouaziz Date: Wed, 21 Oct 2026 15:28:29 +0200 Subject: [PATCH 4/4] Apply batched suggestions from code review Co-authored-by: vanda-scw Co-authored-by: mmfrayssens --- macros/iam/login-member.mdx | 2 +- pages/instances/api-cli/getting-started-autoscaling-groups.mdx | 2 +- pages/site-to-site-vpn/how-to/create-manage-routing-policy.mdx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/macros/iam/login-member.mdx b/macros/iam/login-member.mdx index 3b94cb4ef0..e5c622e9a2 100644 --- a/macros/iam/login-member.mdx +++ b/macros/iam/login-member.mdx @@ -23,7 +23,7 @@ macro: login-member - Make sure you check your spam folder - Click **Resend email** - Contact an Organization administrator to make sure your information was correctly registered - - If none of the actions above work, ask an administrator to [contact the support](/account/support/open-a-support-ticket/) + - If none of the actions above work, ask an administrator to [contact the Support team](/account/support/open-a-support-ticket/) 4. Click **Continue**. diff --git a/pages/instances/api-cli/getting-started-autoscaling-groups.mdx b/pages/instances/api-cli/getting-started-autoscaling-groups.mdx index aec51eece8..f5106d41bb 100644 --- a/pages/instances/api-cli/getting-started-autoscaling-groups.mdx +++ b/pages/instances/api-cli/getting-started-autoscaling-groups.mdx @@ -16,7 +16,7 @@ This guide takes you from setup to your first working Autoscaling Group. You cre -- A Scaleway account logged into the [console](https://console.scaleway.com) +- A Scaleway account logged in to the [console](https://console.scaleway.com) - [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization - Beta access to the Autoscaling Groups Private Beta - A Scaleway Project to work in diff --git a/pages/site-to-site-vpn/how-to/create-manage-routing-policy.mdx b/pages/site-to-site-vpn/how-to/create-manage-routing-policy.mdx index 9f550c55d3..34be7ddfd1 100644 --- a/pages/site-to-site-vpn/how-to/create-manage-routing-policy.mdx +++ b/pages/site-to-site-vpn/how-to/create-manage-routing-policy.mdx @@ -24,7 +24,7 @@ When creating a routing policy, you specify one or many IP ranges representing t -- A Scaleway account logged into the [console](https://console.scaleway.com) +- A Scaleway account logged in to the [console](https://console.scaleway.com) - [Owner](/iam/concepts/glossary/#owner) status or [IAM permissions](/iam/concepts/glossary/#permission) allowing you to perform actions in the intended Organization ## How to create a routing policy