...
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}/destroy
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}/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":
[
{
"GVKapp-name": {"collectd",
"clusters": [
"Group": "", {
"Versionname": "v1cluster1",
"Kindresources": "Service"[
},
"cluster-name": "cluster1",{
"Name": "mongo",
"statusGVK": "Running"{
},
{
"GVKGroup": {"",
"Group": "",
"Version": "v1",
"Kind": "Service"
},
"cluster-name": "cluster2",
"Name": "mongo-read",
"status": "Terminated "status": "Running"
},
]
}
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": "",
"name":"<name>",
"descriptionVersion": "<description>v1",
"userData1":"<user data>",
"userData2Kind": "<user data>Service"
}
}
RETURN STATUS: 201
RETURN BODY:
{
"metadata":{ },
"name "Name": "<name>mongo-read",
"description":"<description>",
"userData1status": "<user data>Terminated",
"userData2":"<user data>"
}
} |
...
Code Block |
---|
language | js |
---|
title | Get, Delete |
---|
linenumbers | true |
---|
|
GET
URL: /v2/cluster-providers/{provider-name}
RETURN STATUS: 200
RETURN BODY:
{
"metadata":{]
"name":"<name>",}
"description":"<description>",
"userData1":"<user data>",
"userData2":"<user data>"
}
}
DELETE]
}
]
Status Queries:
URL: /v2/cluster-providers/{provider-name}
RETURN STATUS: 204
|
POST
...
/projects/{project-name}/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
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:
{
"metadata":{
“label-name” : “<label>”
"name":"<name>",
"description":"<description>",
"userData1":"<user data>",
"userData2":"<user data>"
}
}
RETURN STATUS: 201
RETURN BODY:
{
“label-name” : “<label>”
"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}/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:
{
"clusters": [<list of clusters>] "metadata":{
"name":"<name>",
"description":"<description>",
"userData1":"<user data>",
"userData2":"<user data>"
}
}
DELETE
URL: /v2/cluster-providers/{provider-name}/clusters/{cluster-name}/labels/<label>
RETURN STATUS: 204
|
Add
...
Label 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-pairslabels
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
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>" "metadata":{
"name":"<name>",
"description":"<description>",
"userData1":"<user data>",
"userData2":"<user data>"
},
"spec":{
"kv":[
{
"key1":"val1"
},
{
"description":"<description>",
"key2userData1":"val2<user data>",
}
]
}
}
RETURN STATUS: 201
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
URL: /v2/cluster-providers/{provider-name}/clusters/{cluster-name}/kv-pairs/<name>
RETURN STATUS: 200
RETURN STATUS: 201
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
URL: /v2/cluster-providers/{provider-name}/clusters/{cluster-name}/kv-pairs/<name>
RETURN STATUS: 200
RETURN BODY:
{
"metadata":{
"name":"<name>",
"description":"<description>",
"userData1":"<user data>",
"userData2":"<user data>"
},
"spec":{
"kv":[
{
"key1":"val1"
},
{
"key2":"val2"
}
]
}
}
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.
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
URL: /v2/cluster-providers/{provider-name}/clusters/{cluster-name}/kv-pairs/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: */*" |