diff --git a/pages/serverless-containers/reference-content/v1-migration-guide.mdx b/pages/serverless-containers/reference-content/v1-migration-guide.mdx new file mode 100644 index 0000000000..3672e0dcd6 --- /dev/null +++ b/pages/serverless-containers/reference-content/v1-migration-guide.mdx @@ -0,0 +1,70 @@ +--- +title: Serverless Containers v1beta1 to v1 +description: Discover the new features and changes introduced in the Serverless Containers v1 API. +tags: containers serverless-containers migration api v1 serverless +dates: + validation: 2026-02-09 + posted: 2026-02-09 +--- + +# Overview of the v1 API evolution + +The transition from `v1beta1` to `v1` for Scaleway Serverless Containers introduces significant improvements in security, resource management, and flexibility. +While the transition is designed to be as smooth as possible, users of the API, CLI, and Terraform should note several key updates to field names and behaviors. + +The changes outlined in this document only concern Serverless Containers. The Serverless Functions and Serverless Jobs APIs remains the same. + + + Be mindful of the `Breaking changes` mentions. + + +## Key improvements + +### Advanced Triggers and Cron management + +Triggers have been redesigned to offer more granular control over how your containers are invoked. + +* **Unified CRONs:** CRONs are now managed as a specific type of trigger. This simplifies resource management by using the `/triggers` route for all event sources. +* **Custom HTTP paths and headers:** You can now specify a custom HTTP path (ex: `/my-trigger`) and custom headers for any trigger, providing better integration with your application logic. +* **Self-managed credentials:** For SQS and NATS triggers, you must now provide your own IAM credentials. This improvement prevents accidental trigger failures caused by deleted system-generated credentials, and enables more flexibility (triggering a Scaleway container from SQS queue hosted on your Instance). + +### Automatic Deployment + +In the `v1` API, the `deploy = true` flag is no longer required. `CreateContainer` API calls and container updates will now automatically deploy the container immediately. This aligns Serverless Containers with the standard behavior of all other Scaleway products. + +### IAM Authentication + +JWT-based authentication is being gradually deprecated in favor of IAM credentials. The deprecation will be effective once IAM credentials provide the same granularity as JWTs. Refer to the [dedicated documentation](/serverless-functions/how-to/migrate-jwt-to-iam-authentication/) for more information. + +### Container Registry namespaces + +Creating a Serverless Containers namespace no longer creates a `funcscw` Container Registry namespace automatically. + +This change allows for greater control over the organization of Container Registry namespaces, and avoids quota errors when creating Container namespaces. + +### Health Checks + +In addition to health checks, we have introduced Startup Probes. They allow advanced users to define a specific check that runs only during the initial boot of the container, preventing the system from prematurely restarting slow-starting applications. + +## Breaking changes + + +If you call the Scaleway Serverless Containers API directly via HTTP calls, you must pay attention to the following breaking changes. + + +When using the product via higher level clients like [Scaleway Console](https://console.scaleway.com/), [CLI](https://github.com/scaleway/scaleway-cli), [SDK](https://www.scaleway.com/en/docs/scaleway-sdk/), +[Terraform](https://registry.terraform.io/providers/scaleway/scaleway/latest/docs) the impacts will be minor. + +### API field changes + +In order to provide a seamless experience across all Scaleway products, we updated the following fields: + +| `v1beta1` name | `v1` name | Unit change | Notes | +| ------------------------- | --------------------------- | --------------- | -------------------------------------------- | +| `memory_limit` | `memory_limit_bytes` | MiB to Bytes | | +| `local_storage_limit` | `local_storage_limit_bytes` | MiB to Bytes | | +| `domain_name` | `public_endpoint` | N/A | To differentiate public and private endpoints | +| `health_check` | `liveness_probe` | N/A | Was a readiness probe in `v1beta1` | +| `cpu_limit` | `mvcpu_limit` | N/A | Precision of the unit | +| `http_option: Redirected` | `https_connections_only` | N/A | Now a boolean value | +