Services /
Put deployment service
Required permission
Project > Services > General > Create
Path parameters
projectId
string requiredID of the project
Request body
- {object}
name
string requiredThe name of the service.
min length3max length39pattern^[a-zA-Z]((-|\s)?[a-zA-Z0-9]+((-|\s)[a-zA-Z0-9]+)*)?$description
stringA description of the service.
max length200pattern^[a-zA-Z0-9.,?\s\\/'"()[\];`%^&*\-_:!]+$billing
{object} requireddeploymentPlan
string requiredThe ID of the deployment plan to use.
pattern^[A-Za-z0-9-]+$gpu
{object}enabled
booleanconfiguration
{object}gpuType
string requiredtimesliced
booleandeployment
(multiple options: oneOf) requiredDeployment type
- {object}
Internal deployment
instances
integer requiredThe number of instances to run the service on.
buildpack
{object}Allows for customization of buildpack runtime
configType
string requiredType of buildpack run configuration
one ofdefault, customProcess, customCommand, customEntrypointCustomCommand, originalEntrypointCustomCommandcustomProcess
stringCustom process which should be run. Required in case where
configType
iscustomProcess
customEntrypoint
stringCustom entrypoint which should be run. Required in case where
configType
iscustomEntrypointCustomCommand
customCommand
stringCustom command which should be run. Required in case where
configType
iscustomCommand
,customEntrypointCustomCommand
ororiginalEntrypointCustomCommand
docker
{object}Allows for customization of docker runtime
configType
string requiredType of entrypoint & command override configuration
one ofdefault, customEntrypoint, customCommand, customEntrypointCustomCommandcustomEntrypoint
stringCustom entrypoint which should be used. Required in case where
configType
iscustomEntrypoint
orcustomEntrypointCustomCommand
customCommand
stringCustom command which should be used. Required in case where
configType
iscustomCommand
orcustomEntrypointCustomCommand
storage
{object}ephemeralStorage
{object}storageSize
integerEphemeral storage per container in MB
one of1024, 2048, 5120, 10240, 20480, 30720, 40960, 51200, 61440, 81920, 102400, 122880, 153600, 204800min1024max204800shmSize
integerConfigures the amount of available memory-backed disk space available to /dev/shm
one of64, 128, 256, 512, 1024, 2048, 5120, 10240min64max10240strategy
{object}type
stringConfigures the instance roll out strategy of your service. Currently only available via feature flag.
one ofrecreate, rollout-steady, rollout-balanced, rollout-fastzonalRedundancy
stringDefines scheduling behaviour across different zones within the same region.
one ofpreferred, disabledgpu
{object}enabled
booleanconfiguration
{object}gpuType
string requiredtimesliced
booleangracePeriodSeconds
integerThe maximum amount of time the process has to shut down after receiving a SIGTERM signal before it is forcefully shut down SIGKILL by the system.
min15max600internal
{object} requiredid
stringID of the build service to deploy
pattern^[A-Za-z0-9-]+$branch
stringBranch to deploy
buildSHA
(multiple options: oneOf)Commit SHA to deploy, or 'latest' to deploy the most recent commit
- stringmin length40max length40
- stringone oflatest
buildId
stringID of the build that should be deployed
- {object}
External deployment
instances
integer requiredThe number of instances to run the service on.
buildpack
{object}Allows for customization of buildpack runtime
configType
string requiredType of buildpack run configuration
one ofdefault, customProcess, customCommand, customEntrypointCustomCommand, originalEntrypointCustomCommandcustomProcess
stringCustom process which should be run. Required in case where
configType
iscustomProcess
customEntrypoint
stringCustom entrypoint which should be run. Required in case where
configType
iscustomEntrypointCustomCommand
customCommand
stringCustom command which should be run. Required in case where
configType
iscustomCommand
,customEntrypointCustomCommand
ororiginalEntrypointCustomCommand
docker
{object}Allows for customization of docker runtime
configType
string requiredType of entrypoint & command override configuration
one ofdefault, customEntrypoint, customCommand, customEntrypointCustomCommandcustomEntrypoint
stringCustom entrypoint which should be used. Required in case where
configType
iscustomEntrypoint
orcustomEntrypointCustomCommand
customCommand
stringCustom command which should be used. Required in case where
configType
iscustomCommand
orcustomEntrypointCustomCommand
storage
{object}ephemeralStorage
{object}storageSize
integerEphemeral storage per container in MB
one of1024, 2048, 5120, 10240, 20480, 30720, 40960, 51200, 61440, 81920, 102400, 122880, 153600, 204800min1024max204800shmSize
integerConfigures the amount of available memory-backed disk space available to /dev/shm
one of64, 128, 256, 512, 1024, 2048, 5120, 10240min64max10240strategy
{object}type
stringConfigures the instance roll out strategy of your service. Currently only available via feature flag.
one ofrecreate, rollout-steady, rollout-balanced, rollout-fastzonalRedundancy
stringDefines scheduling behaviour across different zones within the same region.
one ofpreferred, disabledgpu
{object}enabled
booleanconfiguration
{object}gpuType
string requiredtimesliced
booleangracePeriodSeconds
integerThe maximum amount of time the process has to shut down after receiving a SIGTERM signal before it is forcefully shut down SIGKILL by the system.
min15max600external
{object} requiredimagePath
string requiredImage to be deployed. When not deploying from Dockerhub the URL must be specified.
pattern^(?:(?:https?:\/\/)?([a-zA-Z0-9\-]+\.[a-zA-Z0-9\.\-]+)(\/v1)?)?(?:\/)?([a-zA-Z/-9\.\-_]+)(?:\:([a-zA-Z/-9\.\-_\:]+)|\@([a-zA-Z/-9\.\-_\:]+))$credentials
stringID of the saved credentials to use to access this external image.
pattern^[A-Za-z0-9-]+$- {object}
Choose later
instances
integer requiredThe number of instances to run the service on.
buildpack
{object}Allows for customization of buildpack runtime
configType
string requiredType of buildpack run configuration
one ofdefault, customProcess, customCommand, customEntrypointCustomCommand, originalEntrypointCustomCommandcustomProcess
stringCustom process which should be run. Required in case where
configType
iscustomProcess
customEntrypoint
stringCustom entrypoint which should be run. Required in case where
configType
iscustomEntrypointCustomCommand
customCommand
stringCustom command which should be run. Required in case where
configType
iscustomCommand
,customEntrypointCustomCommand
ororiginalEntrypointCustomCommand
docker
{object}Allows for customization of docker runtime
configType
string requiredType of entrypoint & command override configuration
one ofdefault, customEntrypoint, customCommand, customEntrypointCustomCommandcustomEntrypoint
stringCustom entrypoint which should be used. Required in case where
configType
iscustomEntrypoint
orcustomEntrypointCustomCommand
customCommand
stringCustom command which should be used. Required in case where
configType
iscustomCommand
orcustomEntrypointCustomCommand
storage
{object}ephemeralStorage
{object}storageSize
integerEphemeral storage per container in MB
one of1024, 2048, 5120, 10240, 20480, 30720, 40960, 51200, 61440, 81920, 102400, 122880, 153600, 204800min1024max204800shmSize
integerConfigures the amount of available memory-backed disk space available to /dev/shm
one of64, 128, 256, 512, 1024, 2048, 5120, 10240min64max10240strategy
{object}type
stringConfigures the instance roll out strategy of your service. Currently only available via feature flag.
one ofrecreate, rollout-steady, rollout-balanced, rollout-fastzonalRedundancy
stringDefines scheduling behaviour across different zones within the same region.
one ofpreferred, disabledgpu
{object}enabled
booleanconfiguration
{object}gpuType
string requiredtimesliced
booleangracePeriodSeconds
integerThe maximum amount of time the process has to shut down after receiving a SIGTERM signal before it is forcefully shut down SIGKILL by the system.
min15max600ports
[array]- {object}
name
string requiredThe name used to identify the port.
min length3max length8pattern^[a-zA-Z](-?[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*)?$internalPort
integer requiredThe port number.
min1max65535public
booleanIf true, the port will be exposed publicly.
security
{object}credentials
[array]An array of credentials to access the service.
- {object}
username
string requiredThe username to access the service
min length3max length39pattern^[a-zA-Z](-?[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*)?$password
string requiredThe password to access the service with this username.
type
string requiredThe type of authentication used
one ofbasic-authpolicies
[array]An array of IP address policies.
- {object}
addresses
[array] requiredAn array of IP addresses used for this rule
- string
An IP address used by this rule
action
string requiredThe action for this rule.
one ofALLOW, DENYdomains
[array]An array of domains to redirect to this port. Each domain must first be verified and registered to your account.
- string
A domain to redirect to this port.
disableNfDomain
booleanDisable routing on the default code.run domain for public HTTP ports with custom domains.
protocol
string requiredThe protocol to use for the port.
one ofHTTP, HTTP/2, TCP, UDPruntimeEnvironment
{object}An object containing the runtime environment to set for the service
runtimeFiles
{object}Secret files as JSON object, encrypted at rest. File path must be absolute
healthChecks
[array]An array of health checks.
- {object}
A health check object.
protocol
string requiredThe protocol to access the health check with.
one ofHTTP, CMD, TCPtype
string requiredThe type of health check.
one oflivenessProbe, readinessProbe, startupProbepath
stringThe path of the health check endpoint. Required when protocol is HTTP.
pattern^\/([a-zA-Z0-9-._]+\/)*[a-zA-Z0-9-._]+$cmd
stringThe command to run for the health check. Required when protocol is CMD
port
integerPort number for the health check endpoint. Required when protocol is HTTP.
min1initialDelaySeconds
integer requiredInitial delay, in seconds, before the health check is first run.
min1max180periodSeconds
integer requiredThe time between each check, in seconds.
min10max600timeoutSeconds
integer requiredThe time to wait for a response before marking the health check as a failure.
min1max60failureThreshold
integer requiredThe maximum number of allowed failures.
min1max255successThreshold
integerThe number of successes required to mark the health check as a success.
min1max255autoscaling
{object}Describes all autoscaling configurations
horizontal
{object}Describes the horizontal autoscaling configuration
enabled
boolean requiredWhether horizontal autoscaling should be enabled
minReplicas
number requiredMinimum number of replicas which should be running at any time
min1maxReplicas
number requiredMaximum number of replicas which can be running at any time
cpu
{object}enabled
boolean requiredWhether autoscaling should take into account cpu usage
thresholdPercentage
integer requiredThreshold CPU usage percentage at which the workload will be scaled
min10max100memory
{object}enabled
boolean requiredWhether autoscaling should take into account memory usage
thresholdPercentage
integer requiredThreshold memory usage percentage at which the workload will be scaled
min10max100rps
{object}enabled
boolean requiredWhether autoscaling should take into requests-per-second
thresholdValue
integer requiredThreshold rps value on which the workload will be scaled
min1
OR
OR
OR
Response body
- {object}
Response object.
data
{object} requiredResult data.
name
string requiredThe name of the service.
min length3max length39pattern^[a-zA-Z]((-|\s)?[a-zA-Z0-9]+((-|\s)[a-zA-Z0-9]+)*)?$description
stringA description of the service.
max length200pattern^[a-zA-Z0-9.,?\s\\/'"()[\];`%^&*\-_:!]+$billing
{object} requireddeploymentPlan
string requiredThe ID of the deployment plan to use.
pattern^[A-Za-z0-9-]+$gpu
{object}enabled
booleanconfiguration
{object}gpuType
string requiredtimesliced
booleanports
[array]- {object}
name
string requiredThe name used to identify the port.
min length3max length8pattern^[a-zA-Z](-?[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*)?$internalPort
integer requiredThe port number.
min1max65535public
booleanIf true, the port will be exposed publicly.
security
{object}credentials
[array]An array of credentials to access the service.
- {object}
username
string requiredThe username to access the service
min length3max length39pattern^[a-zA-Z](-?[a-zA-Z0-9]+(-[a-zA-Z0-9]+)*)?$password
string requiredThe password to access the service with this username.
type
string requiredThe type of authentication used
one ofbasic-authpolicies
[array]An array of IP address policies.
- {object}
addresses
[array] requiredAn array of IP addresses used for this rule
- string
An IP address used by this rule
action
string requiredThe action for this rule.
one ofALLOW, DENYdomains
[array]An array of domains to redirect to this port. Each domain must first be verified and registered to your account.
- string
A domain to redirect to this port.
disableNfDomain
booleanDisable routing on the default code.run domain for public HTTP ports with custom domains.
protocol
(multiple options: oneOf) requiredThe protocol to use for the port.
- stringone ofHTTP, HTTP/2
- stringone ofHTTP, HTTP/2, TCP, UDP
runtimeEnvironment
{object}An object containing the runtime environment to set for the service
runtimeFiles
{object}Secret files as JSON object, encrypted at rest. File path must be absolute
healthChecks
[array]An array of health checks.
- {object}
A health check object.
protocol
string requiredThe protocol to access the health check with.
one ofHTTP, CMD, TCPtype
string requiredThe type of health check.
one oflivenessProbe, readinessProbe, startupProbepath
stringThe path of the health check endpoint. Required when protocol is HTTP.
pattern^\/([a-zA-Z0-9-._]+\/)*[a-zA-Z0-9-._]+$cmd
stringThe command to run for the health check. Required when protocol is CMD
port
integerPort number for the health check endpoint. Required when protocol is HTTP.
min1initialDelaySeconds
integer requiredInitial delay, in seconds, before the health check is first run.
min1max180periodSeconds
integer requiredThe time between each check, in seconds.
min10max600timeoutSeconds
integer requiredThe time to wait for a response before marking the health check as a failure.
min1max60failureThreshold
integer requiredThe maximum number of allowed failures.
min1max255successThreshold
integerThe number of successes required to mark the health check as a success.
min1max255autoscaling
{object}Describes all autoscaling configurations
horizontal
{object}Describes the horizontal autoscaling configuration
enabled
boolean requiredWhether horizontal autoscaling should be enabled
minReplicas
number requiredMinimum number of replicas which should be running at any time
min1maxReplicas
number requiredMaximum number of replicas which can be running at any time
cpu
{object}enabled
boolean requiredWhether autoscaling should take into account cpu usage
thresholdPercentage
integer requiredThreshold CPU usage percentage at which the workload will be scaled
min10max100memory
{object}enabled
boolean requiredWhether autoscaling should take into account memory usage
thresholdPercentage
integer requiredThreshold memory usage percentage at which the workload will be scaled
min10max100rps
{object}enabled
boolean requiredWhether autoscaling should take into requests-per-second
thresholdValue
integer requiredThreshold rps value on which the workload will be scaled
min1deploymentSysctlSettings
{object}vm.max_map_count
integermin1max1048576serviceType
string requiredType of the service (combined, build or deployment)
one ofdeploymentdeployment
{object} requiredinstances
integer requiredThe number of instances to run the service on.
buildpack
{object}Allows for customization of buildpack runtime
configType
string requiredType of buildpack run configuration
one ofdefault, customProcess, customCommand, customEntrypointCustomCommand, originalEntrypointCustomCommandcustomProcess
stringCustom process which should be run. Required in case where
configType
iscustomProcess
customEntrypoint
stringCustom entrypoint which should be run. Required in case where
configType
iscustomEntrypointCustomCommand
customCommand
stringCustom command which should be run. Required in case where
configType
iscustomCommand
,customEntrypointCustomCommand
ororiginalEntrypointCustomCommand
docker
{object}Allows for customization of docker runtime
configType
string requiredType of entrypoint & command override configuration
one ofdefault, customEntrypoint, customCommand, customEntrypointCustomCommandcustomEntrypoint
stringCustom entrypoint which should be used. Required in case where
configType
iscustomEntrypoint
orcustomEntrypointCustomCommand
customCommand
stringCustom command which should be used. Required in case where
configType
iscustomCommand
orcustomEntrypointCustomCommand
storage
{object}ephemeralStorage
{object}storageSize
integerEphemeral storage per container in MB
one of1024, 2048, 5120, 10240, 20480, 30720, 40960, 51200, 61440, 81920, 102400, 122880, 153600, 204800min1024max204800shmSize
integerConfigures the amount of available memory-backed disk space available to /dev/shm
one of64, 128, 256, 512, 1024, 2048, 5120, 10240min64max10240strategy
{object}type
stringConfigures the instance roll out strategy of your service. Currently only available via feature flag.
one ofrecreate, rollout-steady, rollout-balanced, rollout-fastzonalRedundancy
stringDefines scheduling behaviour across different zones within the same region.
one ofpreferred, disabledgpu
{object}enabled
booleanconfiguration
{object}gpuType
string requiredtimesliced
booleangracePeriodSeconds
integerThe maximum amount of time the process has to shut down after receiving a SIGTERM signal before it is forcefully shut down SIGKILL by the system.
min15max600internal
{object}id
stringID of the build service to deploy
pattern^[A-Za-z0-9-]+$branch
stringBranch to deploy
buildSHA
(multiple options: oneOf)Commit SHA to deploy, or 'latest' to deploy the most recent commit
- stringmin length40max length40
- stringone oflatest
buildId
stringID of the build that should be deployed
external
{object}imagePath
string requiredImage to be deployed. When not deploying from Dockerhub the URL must be specified.
pattern^(?:(?:https?:\/\/)?([a-zA-Z0-9\-]+\.[a-zA-Z0-9\.\-]+)(\/v1)?)?(?:\/)?([a-zA-Z/-9\.\-_]+)(?:\:([a-zA-Z/-9\.\-_\:]+)|\@([a-zA-Z/-9\.\-_\:]+))$credentials
stringID of the saved credentials to use to access this external image.
pattern^[A-Za-z0-9-]+$imageUrl
stringImage registry url of the deployed image.
id
string requiredIdentifier for the service
appId
string requiredFull identifier used for service deployment
cluster
{object}id
requiredone ofaws-cluster-idname
requiredone ofAWS Cluster Namenamespace
one ofns-krbfnmxfv5x8-createdAt
stringtime of creation
updatedAt
stringtime of update
status
{object} requiredDetails about the current service status.
deployment
{object} requiredDetails about the current deployment status.
status
string requiredThe current status of the deployment.
one ofPENDING, IN_PROGRESS, COMPLETED, FAILEDreason
string requiredThe reason the current deployment was started.
one ofSCALING, DEPLOYINGlastTransitionTime
stringThe timestamp of when the deployment reached this status.
OR
OR
PUT /v1/projects/{projectId}/services/deployment
Example request
curl --header "Content-Type: application/json" \
--header "Authorization: Bearer NORTHFLANK_API_TOKEN" \
--request PUT \
--data '{"name":"Example Service","description":"A service description","tags":["my-tag"],"billing":{"deploymentPlan":"nf-compute-20"},"deployment":{"instances":1,"docker":{"configType":"default"},"storage":{"ephemeralStorage":{"storageSize":1024}},"internal":{"id":"example-build-service","branch":"master","buildId":"premium-guide-6393"}},"ports":[{"name":"p01","internalPort":8080,"public":true,"security":{"credentials":[{"username":"admin","password":"password123","type":"basic-auth"}],"policies":[{"addresses":["127.0.0.1"],"action":"DENY"}]},"domains":["app.example.com"],"protocol":"HTTP"}],"runtimeEnvironment":{"VARIABLE_1":"abcdef","VARIABLE_2":"12345"},"runtimeFiles":{"/dir/fileName":{"data":"VGhpcyBpcyBhbiBleGFtcGxlIHdpdGggYSB0ZW1wbGF0ZWQgJHtOT0RFX0VOVn0gdmFyaWFibGU=","encoding":"utf-8"}},"healthChecks":[{"protocol":"HTTP","type":"readinessProbe","path":"/health-check","port":8080,"initialDelaySeconds":10,"periodSeconds":60,"timeoutSeconds":1,"failureThreshold":3,"successThreshold":1}]}' \
https://api.northflank.com/v1/projects/{projectId}/services/deployment
Example response
200 OK
JSON
{
"data": {
"name": "Example Service",
"description": "A service description",
"tags": [
"my-tag"
],
"billing": {
"deploymentPlan": "nf-compute-20"
},
"ports": [
{
"name": "p01",
"internalPort": 8080,
"public": true,
"security": {
"credentials": [
{
"username": "admin",
"password": "password123",
"type": "basic-auth"
}
],
"policies": [
{
"addresses": [
"127.0.0.1"
],
"action": "DENY"
}
]
},
"domains": [
"app.example.com"
]
}
],
"runtimeEnvironment": {
"VARIABLE_1": "abcdef",
"VARIABLE_2": "12345"
},
"runtimeFiles": {
"/dir/fileName": {
"data": "VGhpcyBpcyBhbiBleGFtcGxlIHdpdGggYSB0ZW1wbGF0ZWQgJHtOT0RFX0VOVn0gdmFyaWFibGU=",
"encoding": "utf-8"
}
},
"healthChecks": [
{
"protocol": "HTTP",
"type": "readinessProbe",
"path": "/health-check",
"port": 8080,
"initialDelaySeconds": 10,
"periodSeconds": 60,
"timeoutSeconds": 1,
"failureThreshold": 3,
"successThreshold": 1
}
],
"serviceType": "deployment",
"deployment": {
"instances": 1,
"docker": {
"configType": "default"
},
"storage": {
"ephemeralStorage": {
"storageSize": 1024
}
},
"internal": {
"id": "example-build-service",
"branch": "master",
"buildId": "premium-guide-6393"
},
"external": {
"imagePath": "nginx:latest",
"credentials": "example-credentials"
}
},
"id": "example-service",
"appId": "/example-user/default-project/example-service",
"status": {
"deployment": {
"status": "COMPLETED",
"reason": "DEPLOYING",
"lastTransitionTime": "2021-11-29T11:47:16.624Z"
}
}
}
}