POST /accounts/{account_id}/containers/applications/{application_id}/rollouts
A rollout can be used to update the application's configuration across instances with minimal downtime.
Servers
- https://api.cloudflare.com/client/v4
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
application_id |
String | Yes | |
account_id |
String | Yes |
Account identifier. |
Request headers
| Name | Type | Required | Description |
|---|---|---|---|
Content-Type |
String | Yes |
The media type of the request body.
Default value: "application/json" |
Request body fields
| Name | Type | Required | Description |
|---|---|---|---|
target_configuration |
Object | Yes |
Properties required to modify a cloudchamber deployment specified by the user. |
target_configuration.instance_type |
String | No |
The instance type will be used to configure vCPU, memory, and disk.
Default value: "lite" |
target_configuration.network |
Object | No | |
target_configuration.network.egress_from_landing_colo |
Boolean | No |
Egress packets sent by the container through a colo, if any, that has seen packets sent to the container first. Landing colos are tracked for individual 5-tuples. |
target_configuration.network.ipv6_prefix_length |
Integer | No |
Prefix length of an IPv6 subnet assigned to a container. |
target_configuration.network.ipv4_prefix_length |
Integer | No |
Prefix length of an IPv4 subnet assigned to a container. |
target_configuration.network.assign_ipv4 |
String | No |
Valid values:
|
target_configuration.network.mode |
String | No |
Defines the kind of networking the container will have. If "public", the container will be assigned at least an IPv6, and an IPv4 if "assign_ipv4": true. If "public-by-port" is specified, the IP address assignment logic is the same as with "public". However, at least one port must be specified. Only packets sent to specified ports will be routed to the container. If "private", the container won't have any accessible public IPs, however it will be able to access the internet. Valid values:
|
target_configuration.network.assign_ipv6 |
String | No |
Valid values:
|
target_configuration.affinities |
Object | No |
Defines affinity in application scheduling. (This still an experimental feature, some schedulers might not work with these affinities). |
target_configuration.affinities.colocation |
String | No |
Colocation affinity is designed so schedulers try to place application instances all in the same way. Colocation is best-effort depending on available resources. If there is some leftover set of instances that can't be placed together, the scheduler will try to place them somewhere else. Valid values:
|
target_configuration.affinities.hardware_generation |
String | No |
To the extent possible, prefer nodes with specified characteristics when placing application instances. Valid values:
|
target_configuration.vcpu |
Number | No |
Specify the vcpu to be used for the deployment. Vcpu must be at least 1. The input value will be rounded to the nearest 0.0001. The default will be the one configured for the account. |
target_configuration.secrets[] |
Array | No |
A list of objects with secret names and the their access types from the account |
target_configuration.secrets[].name |
String | Yes |
The name of the secret within the container |
target_configuration.secrets[].type |
String | Yes |
The secret access type denotes how a secret is made available within a container. Available Options are "env". Valid values:
|
target_configuration.secrets[].secret |
String | Yes |
Corresponding secret name from the account |
target_configuration.provisioner |
Object | No |
Configuration for a VM provisioner. |
target_configuration.provisioner.type |
String | Yes |
The provisioner to use. Valid values:
|
target_configuration.ports[] |
Array | No | |
target_configuration.ports[].port |
Integer | No |
Optional port number, it's assigned only if the user specified it. If it's not specified, the datacenter scheduler will decide it. |
target_configuration.ports[].assign_port[] |
Array | No |
Choose a port number from a given set of port ranges and use it. It is an optional field. If it is set, "port" must not be provided. The same port ranges may be used with multiple ports as long as the port ranges are identical for each port. Otherwise no two port ranges must intersect and no fixed port must belong to any port range. The total port count for all port ranges should be sufficiently large for assigning the requested number of ports. |
target_configuration.ports[].assign_port[].end |
Integer | Yes |
Last port number. Inclusive. It may be equal to the start one. |
target_configuration.ports[].assign_port[].start |
Integer | Yes |
First port number. Inclusive. |
target_configuration.ports[].name |
String | Yes |
A port name. The port array should not have duplicate names. The port name should be between 1 and 15 characters long. Only alphanumeric characters, dashes (-), and underscores (_) are allowed. No consecutive dashes. The value of the port is exposed to the user's application with a set of environment variables, where
|
target_configuration.environment_variables[] |
Array | No |
Container environment variables |
target_configuration.environment_variables[].name |
String | Yes |
An environment variable name |
target_configuration.environment_variables[].value |
String | Yes |
An environment variable value |
target_configuration.entrypoint[] |
Array | No |
The entry point for the container, specifying the executable to run when the container starts. This can be overridden at run-time. If overridden, the default command from the image is ignored. Both entrypoint and command can be specified at run-time to completely replace the image defaults. |
target_configuration.durable_object_offset_instances |
Integer | No |
The number of containers that should be prewarmed for this application, resulting in a number of deployments = number of durable object instances + this value. Send an integer to set, null to clear an existing explicit override (return to the account/system default), or omit to leave unchanged. |
target_configuration.dns |
Object | No |
Represents the /etc/resolv.conf that will appear in the deployment. If the 'dns' property is specified, even if empty object, will override the default resolv.conf of the container. The default resolv.conf of a container is 'servers = ["1.1.1.1", "9.9.9.9", "2606:4700:4700::1111"]', only if an IPv4 is assigned. The default for a non IPv4 deployment is 'servers = ["2606:4700:4700::1111", "2620:fe::fe"]'. |
target_configuration.dns.servers[] |
Array | No |
List of DNS servers that the deployment will use to resolve domain names. You can only specify a maximum of 3. |
target_configuration.dns.searches[] |
Array | No |
The container resolver will append these domains to every resolve query. For example, if you have 'google.com', and your deployment queries 'web', it will append 'google.com' to 'web' in the search query before trying 'web'. Limited to 6 domains. |
target_configuration.labels[] |
Array | No |
Deployment labels |
target_configuration.labels[].name |
String | Yes |
A label name |
target_configuration.labels[].value |
String | Yes |
A label value |
target_configuration.command[] |
Array | No |
The command to be executed when the container starts, passed to the entrypoint. This can be overridden at run-time. If only the command is overridden at run-time, it gets passed to the default entrypoint specified in the image. |
target_configuration.lifecycle |
Object | No |
Lifecycle configuration for a deployment. |
target_configuration.lifecycle.max_termination_duration |
String | No |
Duration string. From Go documentation: A string representing the duration in the form "3d1h3m". Leading zero units are omitted. As a special case, durations less than one second format use a smaller unit (milli-, micro-, or nanoseconds) to ensure that the leading digit is non-zero. |
target_configuration.image |
String | No |
Image url |
target_configuration.memory_mib |
Integer | No |
Specify the memory to be used for the deployment, in MiB. The default will be the one configured for the account. |
target_configuration.observability |
Object | No |
Settings for deployment observability such as logging. |
target_configuration.observability.logs |
Object | No |
Observability logging settings. |
target_configuration.observability.logs.enabled |
Boolean | No |
Default value: false |
target_configuration.ssh_public_key_ids[] |
Array | No |
A list of SSH public key IDs from the account |
target_configuration.memory |
String | No |
A memory size that specifies its unit at the end. |
target_configuration.wrangler_ssh |
Object | No |
Configuration properties for SSH'ing into a container with Wrangler |
target_configuration.wrangler_ssh.port |
Number | No |
Default value: 22 |
target_configuration.wrangler_ssh.enabled |
Boolean | No |
Default value: true |
target_configuration.checks[] |
Array | No |
Health and readiness checks for this deployment. |
target_configuration.checks[].tls |
Boolean | No |
Connect to the port using TLS Default value: false |
target_configuration.checks[].port |
String | Yes |
The name of the port defined in the "ports" property of the deployment |
target_configuration.checks[].name |
String | No |
Optional name for the check. If omitted, a name will be generated automatically. |
target_configuration.checks[].interval |
String | Yes |
Duration string. From Go documentation: A string representing the duration in the form "3d1h3m". Leading zero units are omitted. As a special case, durations less than one second format use a smaller unit (milli-, micro-, or nanoseconds) to ensure that the leading digit is non-zero. |
target_configuration.checks[].attempts_before_failure |
Integer | No |
Number of times to attempt the check before considering it to have failed Default value: 1 |
target_configuration.checks[].timeout |
String | Yes |
Duration string. From Go documentation: A string representing the duration in the form "3d1h3m". Leading zero units are omitted. As a special case, durations less than one second format use a smaller unit (milli-, micro-, or nanoseconds) to ensure that the leading digit is non-zero. |
target_configuration.checks[].type |
String | Yes |
Valid values:
|
target_configuration.checks[].grace_period |
String | No |
Duration string. From Go documentation: A string representing the duration in the form "3d1h3m". Leading zero units are omitted. As a special case, durations less than one second format use a smaller unit (milli-, micro-, or nanoseconds) to ensure that the leading digit is non-zero. |
target_configuration.checks[].kind |
String | Yes |
Valid values:
|
target_configuration.checks[].http |
Object | No |
Configuration for HTTP checks. |
target_configuration.checks[].http.method |
String | No |
Available HTTP methods for health and readiness checks. Valid values:
|
target_configuration.checks[].http.body |
String | No |
If the method is one of POST, PATCH or PUT, this is required. It's the body that will be passed to the HTTP healthcheck request. |
target_configuration.checks[].http.headers |
Object | No |
HTTP headers to include in the request. |
target_configuration.checks[].http.path |
String | No |
Path that will be used to perform the healthcheck. Default value: "/" |
target_configuration.trusted_user_ca_keys[] |
Array | No | |
target_configuration.trusted_user_ca_keys[].name |
String | No |
Optional human readable name for this key |
target_configuration.trusted_user_ca_keys[].public_key |
String | Yes |
An SSH public key |
target_configuration.experimental_flags[] |
Array | No |
Opt-in experimental flags for this application. Only a subset of experimental flags can be set by users; unsupported values are rejected. |
target_configuration.metadata_service |
Object | No |
Configuration for enabling the container metadata service. |
target_configuration.metadata_service.enabled |
Boolean | Yes |
Whether the metadata service should be enabled for the deployment. |
target_configuration.authorized_keys[] |
Array | No | |
target_configuration.authorized_keys[].name |
String | No |
Optional human readable name for this key |
target_configuration.authorized_keys[].public_key |
String | Yes |
An SSH public key |
target_configuration.disk |
Object | No |
The disk configuration for this deployment. By default, all containers have a disk size of 2GB. |
target_configuration.disk.size |
String | No |
A disk size that specifies its unit at the end. |
target_configuration.disk.size_mb |
Integer | No |
Size of the disk, in MB. |
percentage |
Integer | No |
Initial target version percentage (0-100). Version sync will actively replace instances to match. Required when strategy is "new_instances" and kind is "full_manual". When strategy is "new_instances" and kind is "full_auto", omitted percentage starts at 10% or the smallest percentage that targets at least one instance. Not used for "rolling". |
description |
String | Yes |
Description of the rollout process. |
step_percentage |
Integer | No |
Percentage of rollout to increase in each step when "steps" is not specificed. Applicable values are 5, 10, 20, 25, 50, 100. These create rollouts with 20, 10, 5, 4, 2, 1 steps respectively. Only valid for "rolling" strategy. Valid values:
|
steps[] |
Array | No |
Steps defining the rollout process, when "step_percentage" is not defined. Only one of "step_percentage" or "steps" can be defined when creating a rollout. "steps" allow granular control over each step. Only valid for "rolling" strategy. |
steps[].step_size |
Object | Yes | |
steps[].step_size.percentage |
Integer | Yes |
Percentage of instances affected in this step. Min 10% and Max 100%. |
steps[].description |
String | Yes |
Description of the rollout step. |
strategy |
String | Yes |
Strategy used for the rollout.
Valid values:
|
kind |
String | No |
Kind of the rollout process.
Valid values:
|
How to start integrating
- Add HTTP Task to your workflow definition.
- Search for the API you want to integrate with and click on the name.
- This loads the API reference documentation and prepares the Http request settings.
- Click Test request to test run your request to the API and see the API's response.