Skip to content

Commit b18fafd

Browse files
author
AWS
committed
Amazon Elastic Kubernetes Service Update: Adding RegisterCluster and DeregisterCluster operations, to support connecting external clusters to EKS.
1 parent 605e71e commit b18fafd

File tree

3 files changed

+168
-3
lines changed

3 files changed

+168
-3
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"type": "feature",
3+
"category": "Amazon Elastic Kubernetes Service",
4+
"contributor": "",
5+
"description": "Adding RegisterCluster and DeregisterCluster operations, to support connecting external clusters to EKS."
6+
}

services/eks/src/main/resources/codegen-resources/service-2.json

Lines changed: 156 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,23 @@
191191
],
192192
"documentation":"<p>Deletes an Amazon EKS node group for a cluster.</p>"
193193
},
194+
"DeregisterCluster":{
195+
"name":"DeregisterCluster",
196+
"http":{
197+
"method":"DELETE",
198+
"requestUri":"/cluster-registrations/{name}"
199+
},
200+
"input":{"shape":"DeregisterClusterRequest"},
201+
"output":{"shape":"DeregisterClusterResponse"},
202+
"errors":[
203+
{"shape":"ResourceInUseException"},
204+
{"shape":"ResourceNotFoundException"},
205+
{"shape":"ClientException"},
206+
{"shape":"ServerException"},
207+
{"shape":"ServiceUnavailableException"}
208+
],
209+
"documentation":"<p>Deregisters a connected cluster to remove it from the Amazon EKS control plane.</p>"
210+
},
194211
"DescribeAddon":{
195212
"name":"DescribeAddon",
196213
"http":{
@@ -436,6 +453,23 @@
436453
],
437454
"documentation":"<p>Lists the updates associated with an Amazon EKS cluster or managed node group in your Amazon Web Services account, in the specified Region.</p>"
438455
},
456+
"RegisterCluster":{
457+
"name":"RegisterCluster",
458+
"http":{
459+
"method":"POST",
460+
"requestUri":"/cluster-registrations"
461+
},
462+
"input":{"shape":"RegisterClusterRequest"},
463+
"output":{"shape":"RegisterClusterResponse"},
464+
"errors":[
465+
{"shape":"ResourceLimitExceededException"},
466+
{"shape":"InvalidParameterException"},
467+
{"shape":"ClientException"},
468+
{"shape":"ServerException"},
469+
{"shape":"ServiceUnavailableException"}
470+
],
471+
"documentation":"<p>Connects a Kubernetes cluster to the Amazon EKS control plane. </p> <p>Any Kubernetes cluster can be connected to the Amazon EKS control plane to view current information about the cluster and its nodes. </p> <p>Cluster connection requires two steps. First, send a <code> <a>RegisterClusterRequest</a> </code> to add it to the Amazon EKS control plane.</p> <p>Second, a <a href=\"https://amazon-eks.s3.us-west-2.amazonaws.com/eks-connector/manifests/eks-connector/latest/eks-connector.yaml\">Manifest</a> containing the <code>activationID</code> and <code>activationCode</code> must be applied to the Kubernetes cluster through it's native provider to provide visibility.</p> <p>After the Manifest is updated and applied, then the connected cluster is visible to the Amazon EKS control plane. If the Manifest is not applied within a set amount of time, then the connected cluster will no longer be visible and must be deregistered. See <a>DeregisterCluster</a>.</p>"
472+
},
439473
"TagResource":{
440474
"name":"TagResource",
441475
"http":{
@@ -913,11 +947,15 @@
913947
},
914948
"tags":{
915949
"shape":"TagMap",
916-
"documentation":"<p>The metadata that you apply to the cluster to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Cluster tags do not propagate to any other resources associated with the cluster. </p>"
950+
"documentation":"<p>The metadata that you apply to the cluster to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Cluster tags do not propagate to any other resources associated with the cluster.</p>"
917951
},
918952
"encryptionConfig":{
919953
"shape":"EncryptionConfigList",
920954
"documentation":"<p>The encryption configuration for the cluster.</p>"
955+
},
956+
"connectorConfig":{
957+
"shape":"ConnectorConfigResponse",
958+
"documentation":"<p>The configuration used to connect to a cluster for registration.</p>"
921959
}
922960
},
923961
"documentation":"<p>An object representing an Amazon EKS cluster.</p>"
@@ -935,7 +973,8 @@
935973
"ACTIVE",
936974
"DELETING",
937975
"FAILED",
938-
"UPDATING"
976+
"UPDATING",
977+
"PENDING"
939978
]
940979
},
941980
"Compatibilities":{
@@ -960,6 +999,64 @@
960999
},
9611000
"documentation":"<p>Compatibility information.</p>"
9621001
},
1002+
"ConnectorConfigProvider":{
1003+
"type":"string",
1004+
"enum":[
1005+
"EKS_ANYWHERE",
1006+
"ANTHOS",
1007+
"GKE",
1008+
"AKS",
1009+
"OPENSHIFT",
1010+
"TANZU",
1011+
"RANCHER",
1012+
"EC2",
1013+
"OTHER"
1014+
]
1015+
},
1016+
"ConnectorConfigRequest":{
1017+
"type":"structure",
1018+
"required":[
1019+
"roleArn",
1020+
"provider"
1021+
],
1022+
"members":{
1023+
"roleArn":{
1024+
"shape":"String",
1025+
"documentation":"<p>The Amazon Resource Name (ARN) of the role that is authorized to request the connector configuration.</p>"
1026+
},
1027+
"provider":{
1028+
"shape":"ConnectorConfigProvider",
1029+
"documentation":"<p>The cloud provider for the target cluster to connect.</p>"
1030+
}
1031+
},
1032+
"documentation":"<p>The configuration sent to a cluster for configuration.</p>"
1033+
},
1034+
"ConnectorConfigResponse":{
1035+
"type":"structure",
1036+
"members":{
1037+
"activationId":{
1038+
"shape":"String",
1039+
"documentation":"<p>A unique ID associated with the cluster for registration purposes.</p>"
1040+
},
1041+
"activationCode":{
1042+
"shape":"String",
1043+
"documentation":"<p>A unique code associated with the cluster for registration purposes.</p>"
1044+
},
1045+
"activationExpiry":{
1046+
"shape":"Timestamp",
1047+
"documentation":"<p>The expiration time of the connected cluster. The cluster's YAML file must be applied through the native provider.</p>"
1048+
},
1049+
"provider":{
1050+
"shape":"String",
1051+
"documentation":"<p>The cluster's cloud service provider.</p>"
1052+
},
1053+
"roleArn":{
1054+
"shape":"String",
1055+
"documentation":"<p>The Amazon Resource Name (ARN) of the role that is used by the EKS connector to communicate with AWS services from the connected Kubernetes cluster.</p>"
1056+
}
1057+
},
1058+
"documentation":"<p>The full description of your connected cluster.</p>"
1059+
},
9631060
"CreateAddonRequest":{
9641061
"type":"structure",
9651062
"required":[
@@ -1321,6 +1418,24 @@
13211418
}
13221419
}
13231420
},
1421+
"DeregisterClusterRequest":{
1422+
"type":"structure",
1423+
"required":["name"],
1424+
"members":{
1425+
"name":{
1426+
"shape":"String",
1427+
"documentation":"<p>The name of the connected cluster to deregister.</p>",
1428+
"location":"uri",
1429+
"locationName":"name"
1430+
}
1431+
}
1432+
},
1433+
"DeregisterClusterResponse":{
1434+
"type":"structure",
1435+
"members":{
1436+
"cluster":{"shape":"Cluster"}
1437+
}
1438+
},
13241439
"DescribeAddonRequest":{
13251440
"type":"structure",
13261441
"required":[
@@ -1757,12 +1872,16 @@
17571872
"documentation":"<p>An object that represents an OpenID Connect (OIDC) identity provider configuration.</p>"
17581873
}
17591874
},
1760-
"documentation":"<p>An object that represents an identity configuration.</p>"
1875+
"documentation":"<p>The full description of your identity configuration.</p>"
17611876
},
17621877
"IdentityProviderConfigs":{
17631878
"type":"list",
17641879
"member":{"shape":"IdentityProviderConfig"}
17651880
},
1881+
"IncludeClustersList":{
1882+
"type":"list",
1883+
"member":{"shape":"String"}
1884+
},
17661885
"InvalidParameterException":{
17671886
"type":"structure",
17681887
"members":{
@@ -1920,6 +2039,12 @@
19202039
"documentation":"<p>The <code>nextToken</code> value returned from a previous paginated <code>ListClusters</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value.</p> <note> <p>This token should be treated as an opaque identifier that is used only to retrieve the next items in a list and not for other programmatic purposes.</p> </note>",
19212040
"location":"querystring",
19222041
"locationName":"nextToken"
2042+
},
2043+
"include":{
2044+
"shape":"IncludeClustersList",
2045+
"documentation":"<p>Indicates whether connected clusters are included in the returned list. Default value is 'ALL'.</p>",
2046+
"location":"querystring",
2047+
"locationName":"include"
19232048
}
19242049
}
19252050
},
@@ -2509,6 +2634,34 @@
25092634
},
25102635
"documentation":"<p>Identifies the Key Management Service (KMS) key used to encrypt the secrets.</p>"
25112636
},
2637+
"RegisterClusterRequest":{
2638+
"type":"structure",
2639+
"required":[
2640+
"name",
2641+
"connectorConfig"
2642+
],
2643+
"members":{
2644+
"name":{
2645+
"shape":"ClusterName",
2646+
"documentation":"<p>Define a unique name for this cluster within your AWS account.</p>"
2647+
},
2648+
"connectorConfig":{
2649+
"shape":"ConnectorConfigRequest",
2650+
"documentation":"<p>The configuration settings required to connect the Kubernetes cluster to the Amazon EKS control plane.</p>"
2651+
},
2652+
"clientRequestToken":{
2653+
"shape":"String",
2654+
"documentation":"<p>Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.</p>",
2655+
"idempotencyToken":true
2656+
}
2657+
}
2658+
},
2659+
"RegisterClusterResponse":{
2660+
"type":"structure",
2661+
"members":{
2662+
"cluster":{"shape":"Cluster"}
2663+
}
2664+
},
25122665
"RemoteAccessConfig":{
25132666
"type":"structure",
25142667
"members":{

services/eks/src/main/resources/codegen-resources/waiters-2.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,12 @@
4343
"state": "failure",
4444
"argument": "cluster.status"
4545
},
46+
{
47+
"expected": "PENDING",
48+
"matcher": "path",
49+
"state": "failure",
50+
"argument": "cluster.status"
51+
},
4652
{
4753
"expected": "ResourceNotFoundException",
4854
"matcher": "error",

0 commit comments

Comments
 (0)