...
Code Block |
---|
language | js |
---|
title | Get, Delete |
---|
linenumbers | true |
---|
|
GET
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/generic-placement-intents/{intent-name}
RETURN STATUS: 200
RETURN BODY:
{
"metadata":{
"name":"<name>",
"description":"<description>",
"userData1":"<user data>",
"userData2":"<user data>"
},
"spec":{
"logical-cloud": "logical-cloud-name" //name of logical cloud to use for instantiation. The DCM API will provide the list of clusters that are part of the logical-cloud
}
}
DELETE
URL: /v2/project/{project-name}/composite-apps/{composite-app-name}/{version}/generic-placement-intentintents/{intent-name}
RETURN STATUS: 204
|
...
Code Block |
---|
language | js |
---|
title | POST |
---|
linenumbers | true |
---|
|
URL: /v2/project/{project-name}/composite-apps/{composite-app-name}/{version}/generic-placement-intent/{intent-name}/app-intents
POST BODY:
{
"metadata":{
"name":"<name>",
"description":"<description>",
"userData1":"<user data>",
"userData2":"<user data>"
},
"spec":{
"app-name":"name",
"intent":{
"allOf":[
{
"provider-name":"aws"
"cluster-name":"edge1"
},
{
"provider-name":"aws"
"cluster-name":"edge2"
},
{
"anyOf":[
{
"provider-name":"aws"
"cluster-label-name":"east-us1"
},
{
"provider-name":"aws"
"cluster-label-name":"east-us2"
}
]
}
]
}
}
}
RETURN STATUS: 201
RETURN BODY:
{
"metadata":{
"name":"<name>",
"description":"<description>",
"userData1":"<user data>",
"userData2":"<user data>"
},
"spec":{
"app-name":"name",
"intent":{
"allOf":[
{
"provider-name":"aws"
"cluster-name":"edge1"
},
{
"provider-name":"aws"
"cluster-name":"edge2"
},
{
"anyOf":[
{
"provider-name":"aws"
"cluster-label-name":"east-us1"
},
{
"cluster-labelprovider-name":"east-us2aws"
"cluster-label-name":"east-us2"
}
]
}
]
}
}
} |
GET, DELETE
Code Block |
---|
language | js |
---|
title | Get, Delete |
---|
linenumbers | true |
---|
|
GET
URL: /v2/project/{project-name}/composite-apps/{composite-app-name}/{version}/generic-placement-intent/{intent-name}/app-intents
RETURN STATUS: 200
RETURN BODY:
{
"applications":[
{
"name":"app1",
"anyOf":[
{
"provider-name":"aws"
"cluster-name":"edge1"
},
{
"provider-name":"aws"
"cluster-name":"edge2"
}
]
},
{
"name":"app2",
"allOf":[
{
"provider-name":"aws"
"cluster-name":"edge1"
},
{
"provider-name":"aws"
"cluster-name":"edge2"
}
]
},
{
"name":"app3",
"allOf":[
{
"provider-name":"aws"
"cluster-name":"edge1"
},
{
"clusterprovider-name":"edge2aws"
"cluster-name":"edge2"
},
{
"anyOf":[
{
"provider-name":"aws"
"cluster-label-name":"east-us1"
},
{
"provider-name":"aws"
"cluster-label-name":"east-us2"
}
]
}
]
}
]
}
GET
URL: /v2/project/{project-name}/composite-apps/{composite-app-name}/{version}/generic-placement-intent/{intent-name}/app-intents/{intent-name}
RETURN STATUS: 200
RETURN BODY:
{
"metadata":{
"name":"<name>",
"description":"<description>",
"userData1":"<user data>",
"userData2":"<user data>"
},
"spec":{
"app-name":"name",
"intent":{
"allOf":[
{
"provider-name":"aws"
"cluster-name":"edge1"
},
{
"provider-name":"aws"
"cluster-name":"edge2"
},
{
"anyOf":[
{
"provider-name":"aws"
"cluster-label-name":"east-us1"
},
{
"provider-name":"aws"
"cluster-label-name":"east-us2"
}
]
}
]
}
}
}
GET (Query)
URL: /v2/project/{project-name}/composite-apps/{composite-app-name}/{version}/generic-placement-intent/{intent-name}/app-intents?app-name=<app-name>
RETURN STATUS: 200
RETURN BODY:
{
"intent":{
"allOf":[
{
"clusterprovider-name":"edge1aws"
"cluster-name":"edge1"
},
{
"provider-name":"aws"
"cluster-name":"edge2"
},
{
"anyOf":[
{
"provider-name":"aws"
"cluster-label-name":"east-us1"
},
{
"provider-name":"aws"
"cluster-label-name":"east-us2"
}
]
}
]
}
}
DELETE
URL: /v2/project/{project-name}/composite-apps/{composite-app-name}/{version}/generic-placement-intent/{intent-name}/apps-intents/{intent-name}
RETURN STATUS: 204
|
...
Code Block |
---|
language | js |
---|
title | Get, Delete |
---|
linenumbers | true |
---|
|
GET
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/deployment-intent-groups/{deployment-intent-group-name}
RETURN STATUS: 200
RETURN BODY:
{
"metadata":{
"name":"<name>",
"description":"<description>",
"userData1":"<user data>",
"userData2":"<user data>"
},
"spec":{
"profile":"<profile-name>",
"version":"<version of the deployment>",
"status": "approved", // approved or not-approved
"override-values":[
{
"app-name":"<name>",
"values":
{
"imageRepository":"registry.hub.docker.com",
"another_key":"another_value"
}
},
{
"app-name":"<name>",
"values":
{
"imageRepository":"registry.hub.docker.com",
"another_key":"another_value"
}
}
]
}
}
DELETE
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/deployment-intent-groups/{deployment-intent-group-name}
RETURN STATUS: 204
|
...
Code Block |
---|
language | js |
---|
title | Get, Delete |
---|
linenumbers | true |
---|
|
GET
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/deployment-intent-groups/{deployment-intent-group-name}/intents/{intent-name}
{
"metadata":{
"name":"<name>",
"description":"<description>",
"userData1":"<user data>",
"userData2":"<user data>"
},
"spec":{
"intent":{
"generic-placement-intent":"xyz-generic-placement-intent"
}
}
}
GET
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/deployment-intent-groups/{deployment-intent-group-name}/intents
RETURN STATUS: 200
RETURN BODY:
{
"intent":[
{
"generic-placement-intent":"generic-placement-intent-name"
},
{
"hpa-placement-intent":"hpa-placement-intent-name"
},
{
"traffic-intent":"traffic-intent-name"
}
]
}
GET (Query)
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/deployment-intent-groups/{deployment-intent-group-name}/intents?intent=<intent>
{
"generic-placement-intent":"xyz-generic-placement-intent"
}
DELETE
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/deployment-intent-groups/{deployment-intent-group-name}/intents/{intent-name}
RETURN STATUS: 204
|
...
Code Block |
---|
language | js |
---|
title | POST |
---|
linenumbers | true |
---|
|
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/deployment-intent-groups/{deployment-intent-group-name}/approve
POST BODY:
{
}
RETURN STATUS: 201
RETURN BODY:
{
}
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/deployment-intent-groups/{deployment-intent-group-name}/initantiateinstantiate
POST BODY:
{
}
RETURN STATUS: 201
RETURN BODY:
{
}
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/deployment-intent-groups/{deployment-intent-group-name}/statusdestroy
POST BODY:
{
}
RETURN STATUS: 201
RETURN BODY:
{
"name": "<name>"
}
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/deployment-intent-groups/{deployment-intent-group-name}/status
POST BODY:
{
}
RETURN STATUS: 201
RETURN BODY:
{
"name": "<name>",
"composite-app-name": "test-app",
"composite-app-version": "v1",
"profile-name": "test-app-profile",
"intent-group": "intent-group-1"
"namespace": "testinstallns",
"resources":
[
{
"app-name": "collectd",
"GVKclusters": [
{
"Groupname": "cluster1",
"Versionresources": "v1",[
"Kind": "Service" {
},
"cluster-nameGVK": "cluster1",{
"Name": "mongo",
"statusGroup": "Running",
},
{
"GVKVersion": {
"v1",
"GroupKind": "Service",
"Version": "v1" },
"KindName": "Servicemongo",
},
"cluster-namestatus": "cluster2Running",
"Name": "mongo-read" },
"status": "Terminated"
}{
]
}
URL: /v2/projects/{project-name}/composite-apps/{composite-app-name}/{version}/deployment-intent-groups/{deployment-intent-group-name}/destroy
POST BODY:
{
}
RETURN STATUS: 201
RETURN BODY:
{
} |
Cluster Registration API
API to support Reachability for a Kubernetes Cloud. This API will be used to upload configuration information for the cluster
POST
Code Block |
---|
language | js |
---|
title | POST |
---|
linenumbers | true |
---|
|
URL: /v2/cluster-providers
POST BODY:
{
"metadata":{
"GVK": {
"Group": "",
"Version": "v1",
"nameKind": "<name>Service",
"description":"<description>" },
"userData1 "Name":"<user data> "mongo-read",
"userData2status": "<user data>Terminated"
}
}
RETURN STATUS: 201
RETURN BODY:
{
"metadata":{ }
"name":"<name>",
"description":"<description>", ]
"userData1":"<user data>",}
"userData2":"<user data>"]
}
} |
...
Code Block |
---|
language | js |
---|
title | Get, Delete |
---|
linenumbers | true |
---|
|
GET}
]
Status Queries:
URL: /v2/cluster-providersprojects/{providerproject-name}
RETURN STATUS: 200
RETURN BODY:
{
"metadata":{
"name":"<name>",
"description":"<description>",
"userData1":"<user data>",
"userData2":"<user data>"
}
}
DELETE
URL: /v2/cluster-providers/{provider-name}
RETURN STATUS: 204
|
POST
...
/composite-apps/{composite-app-name}/{version}/deployment-intent-groups/{deployment-intent-group-name}/status?output=<output-type>&app=<app-name>&cluster=<cluster-name>&resource=<resource-name>
output-type can be small or full.
Query can be a combination of the app, cluster and resources.
|
Cluster Registration API
API to support Reachability for a Kubernetes Cloud. This API will be used to upload configuration information for the cluster
POST
Code Block |
---|
language | js |
---|
title | POST |
---|
linenumbers | true |
---|
|
URL: /v2/cluster-providers/{provider-name}/clusters
POST BODY:
{
"metadata":{
"name":"<name>",
"description":"<description>",
"userData1":"<user data>",
"userData2":"<user data>"
}
}
RETURN STATUS: 201
RETURN BODY:
{
"metadata":{
"name":"<name>",
"description":"<description>",
"userData1":"<user data>",
"userData2":"<user data>"
}
} |
GET, DELETE
Code Block |
---|
language | js |
---|
title | Get, Delete |
---|
linenumbers | true |
---|
|
GET
URL: /v2/cluster-providers/{provider-name}/clusters/{cluster-name}
RETURN STATUS: 200
RETURN BODY:
{
"metadata":{
"name":"<name>",
"description":"<description>",
"userData1":"<user data>",
"userData2":"<user data>"
}
}
DELETE
URL: /v2/cluster-providers/{provider-name}/clusters/{cluster-name}
RETURN STATUS: 204
|
Add Label to a cluster
...
POST
This POST is a multipart POST. With the POST body containing the data about the cluster and the kubeconfig uploaded in multipart form.
Code Block |
---|
language | js |
---|
title | POST |
---|
linenumbers | true |
---|
|
URL: /v2/cluster-providers/{provider-name}/clusters/{cluster-name}/labels
POST BODY:
{
“label-name” : “<label>”
}
RETURN STATUS: 201
RETURN BODY:
{
“label-name” : “<label>”
} |
GET, DELETE
Code Block |
---|
language | js |
---|
title | Get, Delete |
---|
linenumbers | true |
---|
|
GET
URL: /v2/cluster-providers/{provider-name}/clusters/{cluster-name}/labels/<label>
RETURN STATUS: 200
RETURN BODY:
{
“label-name” : “<label>”
}
GET (Query)
URL: /v2/cluster-providers/{provider-name}/clusters?label=<label>
RETURN STATUS: 200 "metadata":{
"name":"<name>",
"description":"<description>",
"userData1":"<user data>",
"userData2":"<user data>"
}
}
RETURN STATUS: 201
RETURN BODY:
{
"clustersmetadata":{
"name":"<name>",
"description":"<description>",
"userData1":"<user data>",
"userData2":"<user data>"
}
} |
GET, DELETE
Code Block |
---|
language | js |
---|
title | Get, Delete |
---|
linenumbers | true |
---|
|
GET [<list of clusters>]
}
DELETE
URL: /v2/cluster-providers/{provider-name}/clusters/{cluster-name}/labels/<label>
RETURN STATUS: 200
RETURN BODY: 204
|
Add key-value pair to a cluster
...
{
"metadata":{
"name":"<name>",
"description":"<description>",
"userData1":"<user data>",
"userData2":"<user data>"
}
}
DELETE
URL: /v2/cluster-providers/{provider-name}/clusters/{cluster-name}
RETURN STATUS: 204
|
Add Label to a cluster
POST
Code Block |
---|
language | js |
---|
title | POST |
---|
linenumbers | true |
---|
|
URL: /v2/cluster-providers/{provider-name}/clusters/{cluster-name}/labels
POST BODY:
{
“label-name” : “<label>”
}
RETURN STATUS: 201
RETURN BODY:
{
“label-name” : “<label>”
} |
GET, DELETE
Code Block |
---|
language | js |
---|
title |
---|
linenumbers | true |
---|
Get, Delete | linenumbers | true |
---|
|
GET
URL: /v2/cluster-providers/{provider-name}/clusters/{cluster-name}/labels/<label>
RETURN STATUS: 200
RETURN BODY:
{
“label-name” : “<label>”
}
GET (Query)
URL: /v2/cluster-providers/{provider-name}/clusters?label=<label>
RETURN STATUS: 200
RETURN BODY:
[<list of clusters>]
DELETE
URL: /v2/cluster-providers/{provider-name}/clusters/{cluster-name}/labels/<label>
RETURN STATUS: 204
|
Add key-value pair to a cluster
Add property to a cluster without the need for change to the API.
POST
Code Block |
---|
language | js |
---|
title | POST |
---|
linenumbers | true |
---|
|
URL: /v2/cluster-providers/{provider-name}/clusters/{cluster-name}/kv-pairs
POST BODY:
{
"metadata":{
"name":"<name>",
"description":"<description>",
"userData1":"<user data>",
"userData2":"<user data>"
},
"spec":{
"kv":[
{
"key1":"val1"
},
{
"key2":"val2"
}
]
}
}
RETURN STATUS: 201
RETURN BODY: URL: /v2/cluster-providers/{provider-name}/clusters/{cluster-name}/kv-pairs
POST BODY:
{
"metadata":{
"name":"<name>",
"description":"<description>",
"userData1":"<user data>",
"userData2":"<user data>"
},
"spec":{
"kv":[
{
"key1":"val1"
},
{
"key2":"val2"
}
]
}
}
|
GET, DELETE
Code Block |
---|
language | js |
---|
title | Get, Delete |
---|
linenumbers | true |
---|
|
GET
URL: /v2/cluster-providers/{provider-name}/clusters/{cluster-name}/kv-pairs/<name>
RETURN STATUS: 201200
RETURN BODY:
{
"metadata":{
"name":"<name>",
"description":"<description>",
"userData1":"<user data>",
"userData2":"<user data>"
},
"spec":{
"kv":[
{
"key1":"val1"
},
{
"key2":"val2"
}
]
}
} |
GET, DELETE
Code Block |
---|
language | js |
---|
title | Get, Delete |
---|
linenumbers | true |
---|
|
GET
GET (Query)
URL: /v2/cluster-providers/{provider-name}/clusters/{cluster-name}/kv-pairs/<name>?key=<key>
RETURN STATUS: 200
RETURN BODY:
{
"metadata":{
"name":"<name>",
"description":"<description>",
"userData1":"<user data>",
"userData2":"<user data>"
},
"specvalue":{
"kv":[
<value>"
}
DELETE
URL: /v2/cluster-providers/{provider-name}/clusters/{cluster-name}/kv-pairs/<name>
RETURN STATUS: 204
|
Orchestrator Controller Registration API
This API allows controllers to register themselves as gRPC servers consumed by the orchestrator.
POST
Code Block |
---|
language | bash |
---|
title | POST |
---|
linenumbers | true |
---|
|
POST/PUT
URL: /v2/controllers
POST BODY:
{
"metadata":{
"key1name":"val1<name>",
}"description":"<description>",
{
"userData1":"<user data>",
"key2userData2":"val2<user data>"
},
]"spec":{
}
}
GET (Query)
URL: /v2/cluster-providers/{provider-name}/clusters/{cluster-name}/kv-pairs/<name>?key=<key>
RETURN STATUS: 200
RETURN BODY:
{
"value": "<value>"
}
DELETE
URL: /v2/cluster-providers/{provider-name}/clusters/{cluster-name}/kv-pairs/<name>
RETURN STATUS: 204
|
Orchestrator Controller Registration API
This API allows controllers to register themselves as gRPC servers consumed by the orchestrator.
IN-PROGRESS
...
"host": "10.7.100.4",
"port": 9029,
"type": "<type of controller>, // placement, action are 2 types supported
"priority": 2
}
} |
GET, DELETE
Code Block |
---|
language | bash |
---|
title | POSTGET, DELETE |
---|
linenumbers | true |
---|
|
POST/PUTGET
URL: /v2/controllers
POST BODY:
{
"name": "HPA-Placement-Controller",
/{controller-name}
RETURN STATUS: 200
RETURN BODY:
{
"metadata":{
"name":"<name>",
"description":"<description>",
"userData1":"<user data>",
"userData2":"<user data>"
},
"spec":{
"host": "10.7.100.4",
"port": 8800
}
|
...
9029,
"type": "<type of controller>,
"priority": 2
}
}
DELETE
URL: /v2/controllers/{controller-name}
RETURN STATUS: 204 |
Example CURL Command:
Code Block |
---|
language | bash |
---|
title | GET, DELETEPOST |
---|
linenumbers | true | true |
---|
|
curl -X GET "http://10.7.100.1:9015GET
URL: /v2/controllers/{controller-name}
RETURN STATUS: 200
RETURN BODY:
{
"name": "HPA-Placement-Controller",
"host": "hpa-placement-controller" -H "accept: */*" -H "Content-Type: application/json"
curl -X DELETE "http://10.7.100.4",
"port": 8800
}
DELETE
URL: 1:9015/v2/controllers/{controller-name}
RETURN STATUS: 204hpa-placement-controller" -H "accept: */*" |