Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagejs
titlePUT Logical Cloud
URL: /v2/projects/<project-name>/logical-clouds/<name><logical-cloud-name>
PUT BODY:
{
 "metadata" : {
	"name": "lc-1",
    "description": "logical cloud for walmart finance department",  //description for the logical cloud 
    "userData1":"<user data>",
    "userData2":"<user data>"
   },
 "spec" : {
	"namespace" : "ns-1", // one namespace per logical cloud
 	"user" : {
    "user-name" : "user-1",  //name of user for this cloud  (username and logical cloud name would be used as subject for the user key)
    "type" : "certificate",   //type of authentication credentials used by user (certificate, Token, UNPW)
    "user-permissions" : [
       { "permission-name" : "permission-1",
         "apiGroups" : ["stable.example.com"],
         "resources" : ["secrets", "pods"],
         "verbs" : ["get", "watch", "list", "create"]
       },
       { "permission-name" : "permission-2",
         "apiGroups" : [""],
         "resources" : ["configmaps"],
         "verbs" : ["*"]
       }
    ]
  }
 }
}

Return Status: 200 (OK)
Return Body:
{
  "name" : "logical-cloud-1",
  "logical-cloud-name" : "logical-cloud-1",
  "namespace" : "ns-1",
  "user" : "user-1"
}

...

Code Block
languagejs
titleGET Logical Cloud
GET
URL: /v2/projects/<project-name>/logical-clouds/<name><logical-cloud-name>
RESPONSE BODY:
{
 "metadata" : {
 	"name": "lc-1",   //unique name for the record
    "description": "logical cloud for walmart finance department",  //description for the logical cloud 
    "userData1":"<user data>",
    "userData2":"<user data>"
   },
 "spec" : {
	"namespace" : "ns-1", // one namespace per logical cloud
 	"user" : {
    "user-name" : "user-1",  //name of user for this cloud  (username and logical cloud name would be used as subject for the user key)
    "type" : "certificate",   //type of authentication credentials used by user (certificate, Token, UNPW)
    "user-permissions" : [
       { "permission-name" : "permission-1",
         "apiGroups" : ["stable.example.com"],
         "resources" : ["secrets", "pods"],
         "verbs" : ["get", "watch", "list", "create"]
       },
       { "permission-name" : "permission-2",
         "apiGroups" : [""],
         "resources" : ["configmaps"],
         "verbs" : ["*"]
       }
    ],
    "clusters" : ["cluster-1", "cluster-2", "cluster-3]
  }
 }
}
  

...

Code Block
languagejs
titleDELETE Logical Cloud
DELETE
URL: /v2/projects/<project-name>/logical-clouds/<name><logical-cloud-name>

Logical Cloud Cluster API

...

Code Block
languagejs
titleAssociate logical cloud with cluster
URL: /v2/projects/<project-name>/logical-clouds/<logical-cloud-name>/cluster-references/
POST BODY:
{
 "metadata" : {
 	"name": "lc-cl-1",
    "description": "desc",
    "userData1":"<user data>",
    "userData2":"<user data>"
   },

 "spec" : {
	"cluster-provider": "cp-1",
	"cluster-name": "c1", //name of the cluster,
 	"loadbalancer-ip" : "0.0.0.0"  //IP address of the istio loadbalancer for the logical cloud control plane in the cluster
  }
}



 
}
Return Status: 200 (OK)
Return Body:
{
  "cluster-name" : "cluster-1"
  "loadbalancer-ip" : "0.0.0.0"
}

...

Code Block
languagejs
titleDelete Cluster from logical cloud
DELETE
URL: /v2/projects/<project-name>/logical-clouds/<logical-cloud-name>/cluster-references/cluster<cluster-namename>
RESPONSE STATUS: 204
}

Logical Cloud User Permissions API

...

Code Block
languagejs
titleUpdate KV pair
URL: /v2/projects/<project-name>/logical-clouds/<logical-cloud-name>/kv-pairs/<name><kv-pair-name>
PUT BODY
{
   "metadata":{
      "description":"<description>",
      "userData1":"<user data>",
      "userData2":"<user data>"
   },
   "spec":{
      "kv":[
         {
            "key1":"val3"
         },
         {
            "key2":"val4"
         }
      ]
   }
}
RETURN STATUS: 201
RETURN BODY:
{
   "metadata":{
      "description":"<description>",
      "userData1":"<user data>",
      "userData2":"<user data>"
   },
   "spec":{
      "kv":[
         {
            "key1":"val3"
         },
         {
            "key2":"val4"
         }
      ]
   }
}

...

Code Block
languagejs
titleGet KV pair
URL: /v2/projects/<project-name>/logical-clouds/<logical-cloud-name>/kv-pairs/<name><kv-pair-name>

RETURN STATUS: 200
RETURN BODY:
{
   "metadata":{
      "name":"<name>",
      "description":"<description>",
      "userData1":"<user data>",
      "userData2":"<user data>"
   },
   "spec":{
      "kv":[
         {
            "key1":"val1"
         },
         {
            "key2":"val2"
         }
      ]
   }
}

...

Code Block
languagejs
titleDelete KV pair
URL: /v2/projects/<project-name>/logical-clouds/<logical-cloud-name>/kv-pairs/<name><kv-pair-name>

RETURN STATUS: 204

Kubeconfig API (WORK IN PROGRESS)

...