v1
Double column
API
CLI
JS client

Services /

Create deployment service

Creates a new deployment service.

Path parameters

    • projectId

      string required

      ID of the project

Request body

  • {object}
    • name

      string required

      The name of the service.

      min length
      3
      max length
      20
      pattern
      ^[a-zA-Z](-?[a-zA-Z0-9]+((-|\s)[a-zA-Z0-9]+)*)?$
    • description

      string

      A description of the service.

      max length
      200
      pattern
      ^[a-zA-Z0-9.,?\s\\/'"()[\];`%^&*\-_:!]+$
    • billing

      {object} required
      • deploymentPlan

        string required

        The ID of the deployment plan to use.

        pattern
        ^[A-Za-z0-9-]+$
    • deployment

      (multiple options) required

      Deployment type

      • {object}

        Internal deployment

        • instances

          integer required

          The number of instances to run the service on.

        • internal

          {object}
          • internalId

            string required

            Internal ID of the build service to deploy

            pattern
            ^[A-Za-z0-9-]+$
          • branch

            string

            Branch to deploy

          • buildSHA

            string

            Commit SHA to deploy, or 'latest' to deploy the most recent commit

        OR

      • {object}

        External deployment

        • instances

          integer required

          The number of instances to run the service on.

        • external

          {object}
          • imagePath

            string required

            Path of the external image

          • credentials

            string

            ID of the saved credentials to use to access this external image.

            pattern
            ^[A-Za-z0-9-]+$

        OR

      • {object}

        Choose later

        • instances

          integer required

          The number of instances to run the service on.

    • ports

      [array]
      • {object}
        • name

          string required

          The name used to identify the port.

          pattern
          ^[a-zA-Z](-?[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*)?$
        • internalPort

          integer required

          The port number.

          min
          1
          max
          65535
        • public

          boolean

          If true, the port will be exposed publicly.

        • protocol

          string required

          The protocol to use for the port.

          one of
          HTTP, TCP, UDP
    • security

      {object}
      • credentials

        [array]

        An array of credentials to access the service.

        • {object}
          • username

            string required

            The username to access the service

            min length
            3
            max length
            20
            pattern
            ^[a-zA-Z0-9]+$
          • password

            string required

            The password to access the service with this username.

          • ports

            [array]

            An array of names of ports using these credentials

            • string

              The name of a port using these credentials

              min length
              3
              max length
              20
              pattern
              ^[a-z]-?[a-z0-9]+(-[a-z0-9]+)*$
          • type

            string required

            The type of authentication used

            one of
            basic-auth
      • policies

        [array]

        An array of IP address policies.

        • {object}
          • addresses

            [array] required

            An array of IP addresses used for this rule

            • string

              An IP address used by this rule

          • action

            string required

            The action for this rule.

            one of
            ALLOW, DENY
          • ports

            [array]

            An array of names of ports using these credentials

            • string

              The name of a port using these credentials

              min length
              3
              max length
              20
              pattern
              ^[a-z]-?[a-z0-9]+(-[a-z0-9]+)*$
    • environment

      {object}

      An object containing the environment variables to set for the service

    Response body

    • {object}
      • id

        string required

        The ID of the newly created service

      • serviceType

        string required

        The type of the service created

      • name

        string required

        The name of the newly created service.

      • description

        string

        The description of the newly created service.

    API
    CLI
    JS client

    POST /v1/projects/{projectId}/services/deployment

    Example request

    request body

    curl
    curl --header "Content-Type: application/json" \
      --header "Authorization: Bearer NORTHFLANK_API_TOKEN" \
      --request POST \
      --data '{"name":"Example Service","description":"A service description","billing":{"deploymentPlan":"nf-compute-20"},"deployment":{"instances":1,"internal":{"internalId":"example-build-service","branch":"master","buildSHA":"latest"}},"ports":[{"name":"port-1","internalPort":8080,"public":true,"protocol":"HTTP"}],"security":{"credentials":[{"username":"admin","password":"password123","ports":["port-1"],"type":"basic-auth"}],"policies":[{"addresses":["127.0.0.1"],"action":"DENY","ports":["port-1"]}]},"environment":{"VARIABLE_1":"abcdef","VARIABLE_2":"12345"}}' \
      https://api.northflank.com/v1/projects/{projectId}/services/deployment

    Example response

    200 OK

    Details about the newly created service.

    JSON

    {
      "id": "new-service",
      "serviceType": "deployment",
      "name": "New Service",
      "description": "This is a new service."
    }

    Example response

    400 Bad Request

    Unable to verify external image

    Example response

    409 Conflict

    There is already a service with the same derived identifier

    © 2021 Northflank Ltd. All rights reserved.