Creating a Project

You can create a project using Cockpit and OKS CLI.

Once you have created your first project, you can then start Managing Your Clusters.

Creating a Project Using Cockpit

  1. In the Projects dashboard, click IconAddFull Create OKS Project.
    The CREATE OKS PROJECT dialog box appears.

  2. In the Name field, type a name for the project.

    The name must contain between 1 and 40 alphanumeric characters and/or dashes (-). The name must start with a lowercase letter and must not end with a dash.

  3. In the CIDR field, type a range of IPs, in CIDR notation, that will be used in Net Subnets for all VMs on which the cluster will run.

    Once a project is created, you cannot change its CIDR.

    • CIDR should be a private block within the RFC 1918 ranges. For more information, see the RFC 1918 documentation.

    • The minimum accepted CIDR size is /23, and the maximum accepted CIDR size is /16. For more information, see About Nets.

    • The 172.31.0.0/16 CIDR must not be used, as it is reserved for internal usage.

  4. (optional) In the Description field, type a description of the project.

  5. Check or uncheck the Disable API termination box:

    • If the box is checked, you cannot delete the project through the API.

    • If the box is unchecked, you can delete the project through the API.

  6. Click Create.
    The project is created.

Creating a Project Using octl

The CreateProject command creates a new project.

Request sample
$ octl kube api CreateProject --profile "default" \
  --Name "awesome-project" \
  --Description "" \
  --Cidr "string" \
  --Region "string" \
  --Tags.Key "value" \
  --NetSpecific.DisableLanSecurityGroups=true \
  --Quirks "string" \
  --DisableApiTermination=false

This command contains the following options that you need to specify:

  • Cidr: The CIDR block to associate with the Net of the project.

  • Description: (optional) A description for the project.
    Default: .

  • DisableApiTermination: (optional) If true, project deletion through the API is disabled. If false, it is enabled.
    Default: false.

  • Name: A unique name for the project. Must start with a letter and contain only lowercase letters, numbers, or hyphens.
    Length: 1 to 40 characters. Pattern: ^[a-z][a-z0-9-]*[a-z0-9]$.
    Example: awesome-project.

  • Quirks: (optional) A list of special configurations or behaviors for the project.

  • Region: The Region on which the project is deployed.

  • Tags: (optional) The key/value combinations of the tags associated with the resource, in the following format: "tags":{"TAGKEY1":"TAGVALUE1","TAGKEY2":"TAGVALUE2"}.
    Example: {"key": "value"}.

The CreateProject command returns the following elements:

  • ResponseContext: Information about the context of the response.

    • RequestId: The ID of the API request.

  • Project: Information about the project.

    • id: The ID of the project.

    • name: The name of the project.

    • description: A description for the project.
      Default: .

    • cidr: The CIDR block associated with the Net of the project.

    • region: The Region on which the project is deployed.

    • status: The status of the project (pending | ready | updating | failed | deleting).

    • tags: The key/value combinations of the tags associated with the resource, in the following format: "tags":{"TAGKEY1":"TAGVALUE1","TAGKEY2":"TAGVALUE2"}.

    • net_specific: The field to configure network-specific behavior for the VPC of the project.

      • disable_lan_security_groups: The value used to modify the firewall behavior within the VPC.

    • disable_api_termination: If true, project deletion through the API is disabled. If false, it is enabled.
      Default: false.

    • created_at: The timestamp when the project was created.

    • updated_at: The timestamp when the project was last updated.

    • deleted_at: The timestamp when the project was deleted (if applicable).

Result sample
{
  "ResponseContext": {
    "RequestId": "string"
  },
  "Project": {
    "id": "string",
    "name": "string",
    "description": "",
    "cidr": "string",
    "region": "string",
    "status": "string",
    "tags": {
      "property1": "string",
      "property2": "string"
    },
    "net_specific": {
      "disable_lan_security_groups": true
    },
    "disable_api_termination": false,
    "created_at": "2019-08-24T14:15:22Z",
    "updated_at": "2019-08-24T14:15:22Z",
    "deleted_at": "2019-08-24T14:15:22Z"
  }
}

Creating a Project Using OKS CLI

Before you begin: Install and configure OKS CLI. For more information, see Installing and Configuring OKS CLI.

The project create command allows you to create a project:

Request sample
$ oks-cli project create \
    --project-name NAME_OF_PROJECT \
    --description "DESCRIPTION_OF_PROJECT" \
    --cidr "RANGE_OF_IP_ADDRESSES" \
    --tags "tag1=this,tag2=that" \
    --set net_specific.disable_lan_security_groups=false

This command contains the following options that you need to specify:

  • project-name: The name of the project, with a maximum length of 40 alphanumeric characters and dashes (-). This name must start with a lowercase letter and must not end with a dash.

  • (optional) description: A description for the project.

  • (optional) cidr: A range of IPs in CIDR notation that will be used in VPC Subnets for all VMs on which the cluster will run. By default, 10.50.0.0/16.

    Once a project is created, you cannot change its CIDR.

    • CIDR should be a private block within the RFC 1918 ranges. For more information, see the RFC 1918 documentation.

    • The minimum accepted CIDR size is /23, and the maximum accepted CIDR size is /16. For more information, see About Nets.

    • The 172.31.0.0/16 CIDR must not be used, as it is reserved for internal usage.

  • (optional) output: The output format for the response (json | yaml). By default, the response format is JSON.

  • (optional) tags: One or more tags associated with the project.

  • disable-api-termination: The ability to delete the project through the API. If true, project deletion is disabled. If false, it is enabled.

  • (optional) quirk: Advanced keys and parameters to pass to the control plane of the project. This option is required for feature requests.

  • (optional) filename: The name of the definition file that you want to create the project from.

  • (optional) set: Allows you to define properties.

    • net_specific.disable_lan_security_groups: If set to true, disables LAN security groups for the project network, modifying the default firewall behavior within the VPC.

      For workloads requiring low-latency node-to-node communication, disabling LAN security groups can help reduce latency.

The project create command returns the following elements:

  • id: The unique identifier of the project.

  • name: The name of the project.

  • description: The description of the project.

  • cidr: The CIDR block allocated for VPC subnets where cluster VMs will run.

  • region: The Region where the project is deployed.

  • status: The current state of the project.

    A project can be in one of the following states:

    • pending: The underlying resources of the project are being initialized.

    • ready: The project is fully set up and ready for use.

    • updating: The project is currently updating.

    • failed: The project has failed. To remedy this, contact our Support team at support@outscale.com.

    • deleting: The project is in the process of being deleted, and its associated resources are being cleaned up.

  • tags: One or more tags associated with the project.

  • net_specific: A set of network-specific configuration options for the project.

    • disable_lan_security_groups: Indicates whether LAN security groups are disabled for the project.

  • disable-api-termination: The ability to delete the project through the API. If true, project deletion is disabled. If false, it is enabled.

  • created_at: The date and time, in UTC format, at which the project was created.

  • updated_at: The date and time, in UTC format, at which the project was last updated.

  • deleted_at: The date and time, in UTC format, at which the project was deleted (null if the project is still active).

Result sample
{
  "id": "12ca0d38-2927-4cf1-93de-049135f88f00",
  "name": "NAME_OF_PROJECT",
  "description": "DESCRIPTION_OF_PROJECT",
  "cidr": "10.50.0.0/16",
  "region": "eu-west-2",
  "status": "pending",
  "tags": {
    "tag1": "this",
    "tag2": "that"
  },
  "net_specific": {
    "disable_lan_security_groups": false
  },
  "disable_api_termination": false,
  "created_at": "2025-01-01T12:10:00.000000Z"
}

Creating a Project Using a Manifest File

Before you begin:

  1. Write the configuration of your project in a YAML manifest file:

    Manifest Sample
    name: NAME_OF_PROJECT
    description: DESCRIPTION_OF_PROJECT
    cidr: RANGE_OF_IP_ADDRESSES
    region: REGION
    tags:
      tag1: this
      tag2: that
    disable_api_termination: false
    net_specific:
      disable_lan_security_groups: false

    This command contains the following options that you need to specify:

    • project-name: The name of the project, with a maximum length of 40 alphanumeric characters and dashes (-). This name must start with a lowercase letter and must not end with a dash.

    • (optional) description: A description for the project.

    • cidr: A range of IPs in CIDR notation that will be used in VPC Subnets for all VMs on which the cluster will run. By default, 10.50.0.0/16.

      Once a project is created, you cannot change its CIDR.

      • CIDR should be a private block within the RFC 1918 ranges. For more information, see the RFC 1918 documentation.

      • The minimum accepted CIDR size is /23, and the maximum accepted CIDR size is /16. For more information, see About Nets.

      • The 172.31.0.0/16 CIDR must not be used, as it is reserved for internal usage.

    • (optional) region: The Region in which the project is created. (eu-west-2 | cloudgouv-eu-west-1).

    • (optional) tags: One or more tags associated with the project.

    • disable-api-termination: The ability to delete the project through the API. If true, project deletion is disabled. If false, it is enabled.

    • (optional) quirk: Advanced keys and parameters to pass to the control plane of the project. This option is required for feature requests.

    • (optional) set: Allows you to define properties.

      • net_specific.disable_lan_security_groups: If set to true, disables LAN security groups for the project network, modifying the default firewall behavior within the VPC.

        For workloads requiring low-latency node-to-node communication, disabling LAN security groups can help reduce latency.

  2. Apply your configuration file to your profile using the project create command:

$ oks-cli project create \
    --profile YOUR_PROFILE \
    --filename ~/PATH/NAME_OF_PROJECT_FILE.yaml

The project create command returns the following elements:

  • id: The unique identifier of the project.

  • name: The name of the project.

  • description: The description of the project.

  • cidr: The CIDR block allocated for VPC subnets where cluster VMs will run.

  • region: The Region where the project is deployed.

  • status: The current state of the project.

    A project can be in one of the following states:

    • pending: The underlying resources of the project are being initialized.

    • ready: The project is fully set up and ready for use.

    • updating: The project is currently updating.

    • failed: The project has failed. To remedy this, contact our Support team at support@outscale.com.

    • deleting: The project is in the process of being deleted, and its associated resources are being cleaned up.

  • tags: One or more tags associated with the project.

  • net_specific: A set of network-specific configuration options for the project.

    • disable_lan_security_groups: Indicates whether LAN security groups are disabled for the project.

  • disable-api-termination: The ability to delete the project through the API. If true, project deletion is disabled. If false, it is enabled.

  • created_at: The date and time, in UTC format, at which the project was created.

  • updated_at: The date and time, in UTC format, at which the project was last updated.

  • deleted_at: The date and time, in UTC format, at which the project was deleted (null if the project is still active).

Result sample
{
  "id": "12ca0d38-2927-4cf1-93de-049135f88f00",
  "name": "NAME_OF_PROJECT",
  "description": "DESCRIPTION_OF_PROJECT",
  "cidr": "10.50.0.0/16",
  "region": "eu-west-2",
  "status": "pending",
  "tags": {
    "tag1": "this",
    "tag2": "that"
  },
  "net_specific": {
    "disable_lan_security_groups": false
  },
  "disable_api_termination": false,
  "created_at": "2025-01-01T12:10:00.000000Z"
}

Related Pages

Corresponding API Method