aws-sdk-eks 1.39.0 → 1.44.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3a5a7ce6dd7bc21c388bbd0714cde7596ea1081af87aa1d7ff6b7c79b681620d
4
- data.tar.gz: b613e224f572b20d98b35e419b4ebecd65fcfccee4cbd43cd9d10991af9a7066
3
+ metadata.gz: 849696b1e9413006ad5beb42b6604035413415d25d1f12fec76573ca4bdef7d2
4
+ data.tar.gz: a1e2a182b26d0f1cdee95ab08be94840c3f07a7fb5c0f771fef51d57bb6ce066
5
5
  SHA512:
6
- metadata.gz: 4d64bfa6e95f6009d39853b8c10b342219a746d0729421ff88edf6fbcd28991202f65054c0f841045614e46b60c4f27bc460caee114dd63ff2f7e0f6fa262943
7
- data.tar.gz: e9b7050f2d7f9df6999d26fc5aa3157a783ef6429a7083258891d4bfb33d2aa5136b9a9c20746635ca3e32128518724a9fd8dee7fb6b4a0b76bdde6d269a092c
6
+ metadata.gz: 47561f2b89fdafb2d393e02042c7b13006d32005e6c2b47b0aca29478686e3e77a905f50cd19c442b7a309ee99f11dd2ac166f5b752fb4116371b10b01359fe3
7
+ data.tar.gz: b71d69eb6d3b2fcd3ec4f6bc4726c7dcca2567f075e638b17fa3c896fb5486f8e9e758cc70841f39e8c632af66e460b0e8f3dba4cbec017742b1c2a2bf73c5e3
@@ -7,6 +7,7 @@
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
10
+
10
11
  require 'aws-sdk-core'
11
12
  require 'aws-sigv4'
12
13
 
@@ -45,9 +46,9 @@ require_relative 'aws-sdk-eks/customizations'
45
46
  #
46
47
  # See {Errors} for more information.
47
48
  #
48
- # @service
49
+ # @!group service
49
50
  module Aws::EKS
50
51
 
51
- GEM_VERSION = '1.39.0'
52
+ GEM_VERSION = '1.44.0'
52
53
 
53
54
  end
@@ -85,13 +85,28 @@ module Aws::EKS
85
85
  # * `Aws::Credentials` - Used for configuring static, non-refreshing
86
86
  # credentials.
87
87
  #
88
+ # * `Aws::SharedCredentials` - Used for loading static credentials from a
89
+ # shared file, such as `~/.aws/config`.
90
+ #
91
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
92
+ #
93
+ # * `Aws::AssumeRoleWebIdentityCredentials` - Used when you need to
94
+ # assume a role after providing credentials via the web.
95
+ #
96
+ # * `Aws::SSOCredentials` - Used for loading credentials from AWS SSO using an
97
+ # access token generated from `aws login`.
98
+ #
99
+ # * `Aws::ProcessCredentials` - Used for loading credentials from a
100
+ # process that outputs to stdout.
101
+ #
88
102
  # * `Aws::InstanceProfileCredentials` - Used for loading credentials
89
103
  # from an EC2 IMDS on an EC2 instance.
90
104
  #
91
- # * `Aws::SharedCredentials` - Used for loading credentials from a
92
- # shared file, such as `~/.aws/config`.
105
+ # * `Aws::ECSCredentials` - Used for loading credentials from
106
+ # instances running in ECS.
93
107
  #
94
- # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
108
+ # * `Aws::CognitoIdentityCredentials` - Used for loading credentials
109
+ # from the Cognito Identity service.
95
110
  #
96
111
  # When `:credentials` are not configured directly, the following
97
112
  # locations will be searched for credentials:
@@ -101,10 +116,10 @@ module Aws::EKS
101
116
  # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
102
117
  # * `~/.aws/credentials`
103
118
  # * `~/.aws/config`
104
- # * EC2 IMDS instance profile - When used by default, the timeouts are
105
- # very aggressive. Construct and pass an instance of
106
- # `Aws::InstanceProfileCredentails` to enable retries and extended
107
- # timeouts.
119
+ # * EC2/ECS IMDS instance profile - When used by default, the timeouts
120
+ # are very aggressive. Construct and pass an instance of
121
+ # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
122
+ # enable retries and extended timeouts.
108
123
  #
109
124
  # @option options [required, String] :region
110
125
  # The AWS region to connect to. The configured `:region` is
@@ -375,9 +390,9 @@ module Aws::EKS
375
390
  #
376
391
  # @option params [required, String] :role_arn
377
392
  # The Amazon Resource Name (ARN) of the IAM role that provides
378
- # permissions for Amazon EKS to make calls to other AWS API operations
379
- # on your behalf. For more information, see [Amazon EKS Service IAM
380
- # Role][1] in the <i> <i>Amazon EKS User Guide</i> </i>.
393
+ # permissions for the Kubernetes control plane to make calls to AWS API
394
+ # operations on your behalf. For more information, see [Amazon EKS
395
+ # Service IAM Role][1] in the <i> <i>Amazon EKS User Guide</i> </i>.
381
396
  #
382
397
  #
383
398
  #
@@ -397,6 +412,9 @@ module Aws::EKS
397
412
  # [1]: https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html
398
413
  # [2]: https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html
399
414
  #
415
+ # @option params [Types::KubernetesNetworkConfigRequest] :kubernetes_network_config
416
+ # The Kubernetes network configuration for the cluster.
417
+ #
400
418
  # @option params [Types::Logging] :logging
401
419
  # Enable or disable exporting the Kubernetes control plane logs for your
402
420
  # cluster to CloudWatch Logs. By default, cluster control plane logs
@@ -472,6 +490,9 @@ module Aws::EKS
472
490
  # endpoint_private_access: false,
473
491
  # public_access_cidrs: ["String"],
474
492
  # },
493
+ # kubernetes_network_config: {
494
+ # service_ipv_4_cidr: "String",
495
+ # },
475
496
  # logging: {
476
497
  # cluster_logging: [
477
498
  # {
@@ -512,6 +533,7 @@ module Aws::EKS
512
533
  # resp.cluster.resources_vpc_config.endpoint_private_access #=> Boolean
513
534
  # resp.cluster.resources_vpc_config.public_access_cidrs #=> Array
514
535
  # resp.cluster.resources_vpc_config.public_access_cidrs[0] #=> String
536
+ # resp.cluster.kubernetes_network_config.service_ipv_4_cidr #=> String
515
537
  # resp.cluster.logging.cluster_logging #=> Array
516
538
  # resp.cluster.logging.cluster_logging[0].types #=> Array
517
539
  # resp.cluster.logging.cluster_logging[0].types[0] #=> String, one of "api", "audit", "authenticator", "controllerManager", "scheduler"
@@ -677,17 +699,20 @@ module Aws::EKS
677
699
  # only create a node group for your cluster that is equal to the current
678
700
  # Kubernetes version for the cluster. All node groups are created with
679
701
  # the latest AMI release version for the respective minor Kubernetes
680
- # version of the cluster.
702
+ # version of the cluster, unless you deploy a custom AMI using a launch
703
+ # template. For more information about using launch templates, see
704
+ # [Launch template support][1].
681
705
  #
682
706
  # An Amazon EKS managed node group is an Amazon EC2 Auto Scaling group
683
707
  # and associated Amazon EC2 instances that are managed by AWS for an
684
708
  # Amazon EKS cluster. Each node group uses a version of the Amazon
685
709
  # EKS-optimized Amazon Linux 2 AMI. For more information, see [Managed
686
- # Node Groups][1] in the *Amazon EKS User Guide*.
710
+ # Node Groups][2] in the *Amazon EKS User Guide*.
687
711
  #
688
712
  #
689
713
  #
690
- # [1]: https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html
714
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
715
+ # [2]: https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html
691
716
  #
692
717
  # @option params [required, String] :cluster_name
693
718
  # The name of the cluster to create the node group in.
@@ -701,28 +726,68 @@ module Aws::EKS
701
726
  #
702
727
  # @option params [Integer] :disk_size
703
728
  # The root device disk size (in GiB) for your node group instances. The
704
- # default disk size is 20 GiB.
729
+ # default disk size is 20 GiB. If you specify `launchTemplate`, then
730
+ # don't specify `diskSize`, or the node group deployment will fail. For
731
+ # more information about using launch templates with Amazon EKS, see
732
+ # [Launch template support][1] in the Amazon EKS User Guide.
733
+ #
734
+ #
735
+ #
736
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
705
737
  #
706
738
  # @option params [required, Array<String>] :subnets
707
739
  # The subnets to use for the Auto Scaling group that is created for your
708
740
  # node group. These subnets must have the tag key
709
741
  # `kubernetes.io/cluster/CLUSTER_NAME` with a value of `shared`, where
710
- # `CLUSTER_NAME` is replaced with the name of your cluster.
742
+ # `CLUSTER_NAME` is replaced with the name of your cluster. If you
743
+ # specify `launchTemplate`, then don't specify [ `SubnetId` ][1] in
744
+ # your launch template, or the node group deployment will fail. For more
745
+ # information about using launch templates with Amazon EKS, see [Launch
746
+ # template support][2] in the Amazon EKS User Guide.
747
+ #
748
+ #
749
+ #
750
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html
751
+ # [2]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
711
752
  #
712
753
  # @option params [Array<String>] :instance_types
713
- # The instance type to use for your node group. Currently, you can
714
- # specify a single instance type for a node group. The default value for
715
- # this parameter is `t3.medium`. If you choose a GPU instance type, be
716
- # sure to specify the `AL2_x86_64_GPU` with the `amiType` parameter.
754
+ # The instance type to use for your node group. You can specify a single
755
+ # instance type for a node group. The default value for `instanceTypes`
756
+ # is `t3.medium`. If you choose a GPU instance type, be sure to specify
757
+ # `AL2_x86_64_GPU` with the `amiType` parameter. If you specify
758
+ # `launchTemplate`, then don't specify `instanceTypes`, or the node
759
+ # group deployment will fail. For more information about using launch
760
+ # templates with Amazon EKS, see [Launch template support][1] in the
761
+ # Amazon EKS User Guide.
762
+ #
763
+ #
764
+ #
765
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
717
766
  #
718
767
  # @option params [String] :ami_type
719
768
  # The AMI type for your node group. GPU instance types should use the
720
- # `AL2_x86_64_GPU` AMI type, which uses the Amazon EKS-optimized Linux
721
- # AMI with GPU support. Non-GPU instances should use the `AL2_x86_64`
722
- # AMI type, which uses the Amazon EKS-optimized Linux AMI.
769
+ # `AL2_x86_64_GPU` AMI type. Non-GPU instances should use the
770
+ # `AL2_x86_64` AMI type. Arm instances should use the `AL2_ARM_64` AMI
771
+ # type. All types use the Amazon EKS-optimized Amazon Linux 2 AMI. If
772
+ # you specify `launchTemplate`, and your launch template uses a custom
773
+ # AMI, then don't specify `amiType`, or the node group deployment will
774
+ # fail. For more information about using launch templates with Amazon
775
+ # EKS, see [Launch template support][1] in the Amazon EKS User Guide.
776
+ #
777
+ #
778
+ #
779
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
723
780
  #
724
781
  # @option params [Types::RemoteAccessConfig] :remote_access
725
- # The remote access (SSH) configuration to use with your node group.
782
+ # The remote access (SSH) configuration to use with your node group. If
783
+ # you specify `launchTemplate`, then don't specify `remoteAccess`, or
784
+ # the node group deployment will fail. For more information about using
785
+ # launch templates with Amazon EKS, see [Launch template support][1] in
786
+ # the Amazon EKS User Guide.
787
+ #
788
+ #
789
+ #
790
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
726
791
  #
727
792
  # @option params [required, String] :node_role
728
793
  # The Amazon Resource Name (ARN) of the IAM role to associate with your
@@ -732,11 +797,17 @@ module Aws::EKS
732
797
  # Before you can launch worker nodes and register them into a cluster,
733
798
  # you must create an IAM role for those worker nodes to use when they
734
799
  # are launched. For more information, see [Amazon EKS Worker Node IAM
735
- # Role][1] in the <i> <i>Amazon EKS User Guide</i> </i>.
800
+ # Role][1] in the <i> <i>Amazon EKS User Guide</i> </i>. If you specify
801
+ # `launchTemplate`, then don't specify [ `IamInstanceProfile` ][2] in
802
+ # your launch template, or the node group deployment will fail. For more
803
+ # information about using launch templates with Amazon EKS, see [Launch
804
+ # template support][3] in the Amazon EKS User Guide.
736
805
  #
737
806
  #
738
807
  #
739
808
  # [1]: https://docs.aws.amazon.com/eks/latest/userguide/worker_node_IAM_role.html
809
+ # [2]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html
810
+ # [3]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
740
811
  #
741
812
  # @option params [Hash<String,String>] :labels
742
813
  # The Kubernetes labels to be applied to the nodes in the node group
@@ -756,21 +827,40 @@ module Aws::EKS
756
827
  # **A suitable default value is auto-generated.** You should normally
757
828
  # not need to pass this option.**
758
829
  #
830
+ # @option params [Types::LaunchTemplateSpecification] :launch_template
831
+ # An object representing a node group's launch template specification.
832
+ # If specified, then do not specify `instanceTypes`, `diskSize`, or
833
+ # `remoteAccess` and make sure that the launch template meets the
834
+ # requirements in `launchTemplateSpecification`.
835
+ #
759
836
  # @option params [String] :version
760
837
  # The Kubernetes version to use for your managed nodes. By default, the
761
838
  # Kubernetes version of the cluster is used, and this is the only
762
- # accepted specified value.
839
+ # accepted specified value. If you specify `launchTemplate`, and your
840
+ # launch template uses a custom AMI, then don't specify `version`, or
841
+ # the node group deployment will fail. For more information about using
842
+ # launch templates with Amazon EKS, see [Launch template support][1] in
843
+ # the Amazon EKS User Guide.
844
+ #
845
+ #
846
+ #
847
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
763
848
  #
764
849
  # @option params [String] :release_version
765
850
  # The AMI version of the Amazon EKS-optimized AMI to use with your node
766
851
  # group. By default, the latest available AMI version for the node
767
852
  # group's current Kubernetes version is used. For more information, see
768
853
  # [Amazon EKS-Optimized Linux AMI Versions][1] in the *Amazon EKS User
769
- # Guide*.
854
+ # Guide*. If you specify `launchTemplate`, and your launch template uses
855
+ # a custom AMI, then don't specify `releaseVersion`, or the node group
856
+ # deployment will fail. For more information about using launch
857
+ # templates with Amazon EKS, see [Launch template support][2] in the
858
+ # Amazon EKS User Guide.
770
859
  #
771
860
  #
772
861
  #
773
862
  # [1]: https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html
863
+ # [2]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
774
864
  #
775
865
  # @return [Types::CreateNodegroupResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
776
866
  #
@@ -789,7 +879,7 @@ module Aws::EKS
789
879
  # disk_size: 1,
790
880
  # subnets: ["String"], # required
791
881
  # instance_types: ["String"],
792
- # ami_type: "AL2_x86_64", # accepts AL2_x86_64, AL2_x86_64_GPU
882
+ # ami_type: "AL2_x86_64", # accepts AL2_x86_64, AL2_x86_64_GPU, AL2_ARM_64
793
883
  # remote_access: {
794
884
  # ec2_ssh_key: "String",
795
885
  # source_security_groups: ["String"],
@@ -802,6 +892,11 @@ module Aws::EKS
802
892
  # "TagKey" => "TagValue",
803
893
  # },
804
894
  # client_request_token: "String",
895
+ # launch_template: {
896
+ # name: "String",
897
+ # version: "String",
898
+ # id: "String",
899
+ # },
805
900
  # version: "String",
806
901
  # release_version: "String",
807
902
  # })
@@ -826,7 +921,7 @@ module Aws::EKS
826
921
  # resp.nodegroup.remote_access.ec2_ssh_key #=> String
827
922
  # resp.nodegroup.remote_access.source_security_groups #=> Array
828
923
  # resp.nodegroup.remote_access.source_security_groups[0] #=> String
829
- # resp.nodegroup.ami_type #=> String, one of "AL2_x86_64", "AL2_x86_64_GPU"
924
+ # resp.nodegroup.ami_type #=> String, one of "AL2_x86_64", "AL2_x86_64_GPU", "AL2_ARM_64"
830
925
  # resp.nodegroup.node_role #=> String
831
926
  # resp.nodegroup.labels #=> Hash
832
927
  # resp.nodegroup.labels["labelKey"] #=> String
@@ -839,6 +934,9 @@ module Aws::EKS
839
934
  # resp.nodegroup.health.issues[0].message #=> String
840
935
  # resp.nodegroup.health.issues[0].resource_ids #=> Array
841
936
  # resp.nodegroup.health.issues[0].resource_ids[0] #=> String
937
+ # resp.nodegroup.launch_template.name #=> String
938
+ # resp.nodegroup.launch_template.version #=> String
939
+ # resp.nodegroup.launch_template.id #=> String
842
940
  # resp.nodegroup.tags #=> Hash
843
941
  # resp.nodegroup.tags["TagKey"] #=> String
844
942
  #
@@ -912,6 +1010,7 @@ module Aws::EKS
912
1010
  # resp.cluster.resources_vpc_config.endpoint_private_access #=> Boolean
913
1011
  # resp.cluster.resources_vpc_config.public_access_cidrs #=> Array
914
1012
  # resp.cluster.resources_vpc_config.public_access_cidrs[0] #=> String
1013
+ # resp.cluster.kubernetes_network_config.service_ipv_4_cidr #=> String
915
1014
  # resp.cluster.logging.cluster_logging #=> Array
916
1015
  # resp.cluster.logging.cluster_logging[0].types #=> Array
917
1016
  # resp.cluster.logging.cluster_logging[0].types[0] #=> String, one of "api", "audit", "authenticator", "controllerManager", "scheduler"
@@ -1033,7 +1132,7 @@ module Aws::EKS
1033
1132
  # resp.nodegroup.remote_access.ec2_ssh_key #=> String
1034
1133
  # resp.nodegroup.remote_access.source_security_groups #=> Array
1035
1134
  # resp.nodegroup.remote_access.source_security_groups[0] #=> String
1036
- # resp.nodegroup.ami_type #=> String, one of "AL2_x86_64", "AL2_x86_64_GPU"
1135
+ # resp.nodegroup.ami_type #=> String, one of "AL2_x86_64", "AL2_x86_64_GPU", "AL2_ARM_64"
1037
1136
  # resp.nodegroup.node_role #=> String
1038
1137
  # resp.nodegroup.labels #=> Hash
1039
1138
  # resp.nodegroup.labels["labelKey"] #=> String
@@ -1046,6 +1145,9 @@ module Aws::EKS
1046
1145
  # resp.nodegroup.health.issues[0].message #=> String
1047
1146
  # resp.nodegroup.health.issues[0].resource_ids #=> Array
1048
1147
  # resp.nodegroup.health.issues[0].resource_ids[0] #=> String
1148
+ # resp.nodegroup.launch_template.name #=> String
1149
+ # resp.nodegroup.launch_template.version #=> String
1150
+ # resp.nodegroup.launch_template.id #=> String
1049
1151
  # resp.nodegroup.tags #=> Hash
1050
1152
  # resp.nodegroup.tags["TagKey"] #=> String
1051
1153
  #
@@ -1140,6 +1242,7 @@ module Aws::EKS
1140
1242
  # resp.cluster.resources_vpc_config.endpoint_private_access #=> Boolean
1141
1243
  # resp.cluster.resources_vpc_config.public_access_cidrs #=> Array
1142
1244
  # resp.cluster.resources_vpc_config.public_access_cidrs[0] #=> String
1245
+ # resp.cluster.kubernetes_network_config.service_ipv_4_cidr #=> String
1143
1246
  # resp.cluster.logging.cluster_logging #=> Array
1144
1247
  # resp.cluster.logging.cluster_logging[0].types #=> Array
1145
1248
  # resp.cluster.logging.cluster_logging[0].types[0] #=> String, one of "api", "audit", "authenticator", "controllerManager", "scheduler"
@@ -1256,7 +1359,7 @@ module Aws::EKS
1256
1359
  # resp.nodegroup.remote_access.ec2_ssh_key #=> String
1257
1360
  # resp.nodegroup.remote_access.source_security_groups #=> Array
1258
1361
  # resp.nodegroup.remote_access.source_security_groups[0] #=> String
1259
- # resp.nodegroup.ami_type #=> String, one of "AL2_x86_64", "AL2_x86_64_GPU"
1362
+ # resp.nodegroup.ami_type #=> String, one of "AL2_x86_64", "AL2_x86_64_GPU", "AL2_ARM_64"
1260
1363
  # resp.nodegroup.node_role #=> String
1261
1364
  # resp.nodegroup.labels #=> Hash
1262
1365
  # resp.nodegroup.labels["labelKey"] #=> String
@@ -1269,6 +1372,9 @@ module Aws::EKS
1269
1372
  # resp.nodegroup.health.issues[0].message #=> String
1270
1373
  # resp.nodegroup.health.issues[0].resource_ids #=> Array
1271
1374
  # resp.nodegroup.health.issues[0].resource_ids[0] #=> String
1375
+ # resp.nodegroup.launch_template.name #=> String
1376
+ # resp.nodegroup.launch_template.version #=> String
1377
+ # resp.nodegroup.launch_template.id #=> String
1272
1378
  # resp.nodegroup.tags #=> Hash
1273
1379
  # resp.nodegroup.tags["TagKey"] #=> String
1274
1380
  #
@@ -1949,12 +2055,20 @@ module Aws::EKS
1949
2055
  # Updates the Kubernetes version or AMI version of an Amazon EKS managed
1950
2056
  # node group.
1951
2057
  #
1952
- # You can update to the latest available AMI version of a node group's
1953
- # current Kubernetes version by not specifying a Kubernetes version in
1954
- # the request. You can update to the latest AMI version of your
1955
- # cluster's current Kubernetes version by specifying your cluster's
1956
- # Kubernetes version in the request. For more information, see [Amazon
1957
- # EKS-Optimized Linux AMI Versions][1] in the *Amazon EKS User Guide*.
2058
+ # You can update a node group using a launch template only if the node
2059
+ # group was originally deployed with a launch template. If you need to
2060
+ # update a custom AMI in a node group that was deployed with a launch
2061
+ # template, then update your custom AMI, specify the new ID in a new
2062
+ # version of the launch template, and then update the node group to the
2063
+ # new version of the launch template.
2064
+ #
2065
+ # If you update without a launch template, then you can update to the
2066
+ # latest available AMI version of a node group's current Kubernetes
2067
+ # version by not specifying a Kubernetes version in the request. You can
2068
+ # update to the latest AMI version of your cluster's current Kubernetes
2069
+ # version by specifying your cluster's Kubernetes version in the
2070
+ # request. For more information, see [Amazon EKS-Optimized Linux AMI
2071
+ # Versions][1] in the *Amazon EKS User Guide*.
1958
2072
  #
1959
2073
  # You cannot roll back a node group to an earlier Kubernetes version or
1960
2074
  # AMI version.
@@ -1980,17 +2094,36 @@ module Aws::EKS
1980
2094
  # The Kubernetes version to update to. If no version is specified, then
1981
2095
  # the Kubernetes version of the node group does not change. You can
1982
2096
  # specify the Kubernetes version of the cluster to update the node group
1983
- # to the latest AMI version of the cluster's Kubernetes version.
2097
+ # to the latest AMI version of the cluster's Kubernetes version. If you
2098
+ # specify `launchTemplate`, and your launch template uses a custom AMI,
2099
+ # then don't specify `version`, or the node group update will fail. For
2100
+ # more information about using launch templates with Amazon EKS, see
2101
+ # [Launch template support][1] in the Amazon EKS User Guide.
2102
+ #
2103
+ #
2104
+ #
2105
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
1984
2106
  #
1985
2107
  # @option params [String] :release_version
1986
2108
  # The AMI version of the Amazon EKS-optimized AMI to use for the update.
1987
2109
  # By default, the latest available AMI version for the node group's
1988
2110
  # Kubernetes version is used. For more information, see [Amazon
1989
2111
  # EKS-Optimized Linux AMI Versions ][1] in the *Amazon EKS User Guide*.
2112
+ # If you specify `launchTemplate`, and your launch template uses a
2113
+ # custom AMI, then don't specify `releaseVersion`, or the node group
2114
+ # update will fail. For more information about using launch templates
2115
+ # with Amazon EKS, see [Launch template support][2] in the Amazon EKS
2116
+ # User Guide.
1990
2117
  #
1991
2118
  #
1992
2119
  #
1993
2120
  # [1]: https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html
2121
+ # [2]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
2122
+ #
2123
+ # @option params [Types::LaunchTemplateSpecification] :launch_template
2124
+ # An object representing a node group's launch template specification.
2125
+ # You can only update a node group using a launch template if the node
2126
+ # group was originally deployed with a launch template.
1994
2127
  #
1995
2128
  # @option params [Boolean] :force
1996
2129
  # Force the update if the existing node group's pods are unable to be
@@ -2017,6 +2150,11 @@ module Aws::EKS
2017
2150
  # nodegroup_name: "String", # required
2018
2151
  # version: "String",
2019
2152
  # release_version: "String",
2153
+ # launch_template: {
2154
+ # name: "String",
2155
+ # version: "String",
2156
+ # id: "String",
2157
+ # },
2020
2158
  # force: false,
2021
2159
  # client_request_token: "String",
2022
2160
  # })
@@ -2058,7 +2196,7 @@ module Aws::EKS
2058
2196
  params: params,
2059
2197
  config: config)
2060
2198
  context[:gem_name] = 'aws-sdk-eks'
2061
- context[:gem_version] = '1.39.0'
2199
+ context[:gem_version] = '1.44.0'
2062
2200
  Seahorse::Client::Request.new(handlers, context)
2063
2201
  end
2064
2202
 
@@ -62,6 +62,9 @@ module Aws::EKS
62
62
  InvalidRequestException = Shapes::StructureShape.new(name: 'InvalidRequestException')
63
63
  Issue = Shapes::StructureShape.new(name: 'Issue')
64
64
  IssueList = Shapes::ListShape.new(name: 'IssueList')
65
+ KubernetesNetworkConfigRequest = Shapes::StructureShape.new(name: 'KubernetesNetworkConfigRequest')
66
+ KubernetesNetworkConfigResponse = Shapes::StructureShape.new(name: 'KubernetesNetworkConfigResponse')
67
+ LaunchTemplateSpecification = Shapes::StructureShape.new(name: 'LaunchTemplateSpecification')
65
68
  ListClustersRequest = Shapes::StructureShape.new(name: 'ListClustersRequest')
66
69
  ListClustersRequestMaxResults = Shapes::IntegerShape.new(name: 'ListClustersRequestMaxResults')
67
70
  ListClustersResponse = Shapes::StructureShape.new(name: 'ListClustersResponse')
@@ -152,6 +155,7 @@ module Aws::EKS
152
155
  Cluster.add_member(:endpoint, Shapes::ShapeRef.new(shape: String, location_name: "endpoint"))
153
156
  Cluster.add_member(:role_arn, Shapes::ShapeRef.new(shape: String, location_name: "roleArn"))
154
157
  Cluster.add_member(:resources_vpc_config, Shapes::ShapeRef.new(shape: VpcConfigResponse, location_name: "resourcesVpcConfig"))
158
+ Cluster.add_member(:kubernetes_network_config, Shapes::ShapeRef.new(shape: KubernetesNetworkConfigResponse, location_name: "kubernetesNetworkConfig"))
155
159
  Cluster.add_member(:logging, Shapes::ShapeRef.new(shape: Logging, location_name: "logging"))
156
160
  Cluster.add_member(:identity, Shapes::ShapeRef.new(shape: Identity, location_name: "identity"))
157
161
  Cluster.add_member(:status, Shapes::ShapeRef.new(shape: ClusterStatus, location_name: "status"))
@@ -166,6 +170,7 @@ module Aws::EKS
166
170
  CreateClusterRequest.add_member(:version, Shapes::ShapeRef.new(shape: String, location_name: "version"))
167
171
  CreateClusterRequest.add_member(:role_arn, Shapes::ShapeRef.new(shape: String, required: true, location_name: "roleArn"))
168
172
  CreateClusterRequest.add_member(:resources_vpc_config, Shapes::ShapeRef.new(shape: VpcConfigRequest, required: true, location_name: "resourcesVpcConfig"))
173
+ CreateClusterRequest.add_member(:kubernetes_network_config, Shapes::ShapeRef.new(shape: KubernetesNetworkConfigRequest, location_name: "kubernetesNetworkConfig"))
169
174
  CreateClusterRequest.add_member(:logging, Shapes::ShapeRef.new(shape: Logging, location_name: "logging"))
170
175
  CreateClusterRequest.add_member(:client_request_token, Shapes::ShapeRef.new(shape: String, location_name: "clientRequestToken", metadata: {"idempotencyToken"=>true}))
171
176
  CreateClusterRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "tags"))
@@ -199,6 +204,7 @@ module Aws::EKS
199
204
  CreateNodegroupRequest.add_member(:labels, Shapes::ShapeRef.new(shape: labelsMap, location_name: "labels"))
200
205
  CreateNodegroupRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "tags"))
201
206
  CreateNodegroupRequest.add_member(:client_request_token, Shapes::ShapeRef.new(shape: String, location_name: "clientRequestToken", metadata: {"idempotencyToken"=>true}))
207
+ CreateNodegroupRequest.add_member(:launch_template, Shapes::ShapeRef.new(shape: LaunchTemplateSpecification, location_name: "launchTemplate"))
202
208
  CreateNodegroupRequest.add_member(:version, Shapes::ShapeRef.new(shape: String, location_name: "version"))
203
209
  CreateNodegroupRequest.add_member(:release_version, Shapes::ShapeRef.new(shape: String, location_name: "releaseVersion"))
204
210
  CreateNodegroupRequest.struct_class = Types::CreateNodegroupRequest
@@ -308,6 +314,17 @@ module Aws::EKS
308
314
 
309
315
  IssueList.member = Shapes::ShapeRef.new(shape: Issue)
310
316
 
317
+ KubernetesNetworkConfigRequest.add_member(:service_ipv_4_cidr, Shapes::ShapeRef.new(shape: String, location_name: "serviceIpv4Cidr"))
318
+ KubernetesNetworkConfigRequest.struct_class = Types::KubernetesNetworkConfigRequest
319
+
320
+ KubernetesNetworkConfigResponse.add_member(:service_ipv_4_cidr, Shapes::ShapeRef.new(shape: String, location_name: "serviceIpv4Cidr"))
321
+ KubernetesNetworkConfigResponse.struct_class = Types::KubernetesNetworkConfigResponse
322
+
323
+ LaunchTemplateSpecification.add_member(:name, Shapes::ShapeRef.new(shape: String, location_name: "name"))
324
+ LaunchTemplateSpecification.add_member(:version, Shapes::ShapeRef.new(shape: String, location_name: "version"))
325
+ LaunchTemplateSpecification.add_member(:id, Shapes::ShapeRef.new(shape: String, location_name: "id"))
326
+ LaunchTemplateSpecification.struct_class = Types::LaunchTemplateSpecification
327
+
311
328
  ListClustersRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: ListClustersRequestMaxResults, location: "querystring", location_name: "maxResults"))
312
329
  ListClustersRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location: "querystring", location_name: "nextToken"))
313
330
  ListClustersRequest.struct_class = Types::ListClustersRequest
@@ -379,6 +396,7 @@ module Aws::EKS
379
396
  Nodegroup.add_member(:resources, Shapes::ShapeRef.new(shape: NodegroupResources, location_name: "resources"))
380
397
  Nodegroup.add_member(:disk_size, Shapes::ShapeRef.new(shape: BoxedInteger, location_name: "diskSize"))
381
398
  Nodegroup.add_member(:health, Shapes::ShapeRef.new(shape: NodegroupHealth, location_name: "health"))
399
+ Nodegroup.add_member(:launch_template, Shapes::ShapeRef.new(shape: LaunchTemplateSpecification, location_name: "launchTemplate"))
382
400
  Nodegroup.add_member(:tags, Shapes::ShapeRef.new(shape: TagMap, location_name: "tags"))
383
401
  Nodegroup.struct_class = Types::Nodegroup
384
402
 
@@ -499,6 +517,7 @@ module Aws::EKS
499
517
  UpdateNodegroupVersionRequest.add_member(:nodegroup_name, Shapes::ShapeRef.new(shape: String, required: true, location: "uri", location_name: "nodegroupName"))
500
518
  UpdateNodegroupVersionRequest.add_member(:version, Shapes::ShapeRef.new(shape: String, location_name: "version"))
501
519
  UpdateNodegroupVersionRequest.add_member(:release_version, Shapes::ShapeRef.new(shape: String, location_name: "releaseVersion"))
520
+ UpdateNodegroupVersionRequest.add_member(:launch_template, Shapes::ShapeRef.new(shape: LaunchTemplateSpecification, location_name: "launchTemplate"))
502
521
  UpdateNodegroupVersionRequest.add_member(:force, Shapes::ShapeRef.new(shape: Boolean, location_name: "force"))
503
522
  UpdateNodegroupVersionRequest.add_member(:client_request_token, Shapes::ShapeRef.new(shape: String, location_name: "clientRequestToken", metadata: {"idempotencyToken"=>true}))
504
523
  UpdateNodegroupVersionRequest.struct_class = Types::UpdateNodegroupVersionRequest
@@ -126,6 +126,10 @@ module Aws::EKS
126
126
  # [2]: https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html
127
127
  # @return [Types::VpcConfigResponse]
128
128
  #
129
+ # @!attribute [rw] kubernetes_network_config
130
+ # Network configuration settings for your cluster.
131
+ # @return [Types::KubernetesNetworkConfigResponse]
132
+ #
129
133
  # @!attribute [rw] logging
130
134
  # The logging configuration for your cluster.
131
135
  # @return [Types::Logging]
@@ -178,6 +182,7 @@ module Aws::EKS
178
182
  :endpoint,
179
183
  :role_arn,
180
184
  :resources_vpc_config,
185
+ :kubernetes_network_config,
181
186
  :logging,
182
187
  :identity,
183
188
  :status,
@@ -204,6 +209,9 @@ module Aws::EKS
204
209
  # endpoint_private_access: false,
205
210
  # public_access_cidrs: ["String"],
206
211
  # },
212
+ # kubernetes_network_config: {
213
+ # service_ipv_4_cidr: "String",
214
+ # },
207
215
  # logging: {
208
216
  # cluster_logging: [
209
217
  # {
@@ -238,9 +246,9 @@ module Aws::EKS
238
246
  #
239
247
  # @!attribute [rw] role_arn
240
248
  # The Amazon Resource Name (ARN) of the IAM role that provides
241
- # permissions for Amazon EKS to make calls to other AWS API operations
242
- # on your behalf. For more information, see [Amazon EKS Service IAM
243
- # Role][1] in the <i> <i>Amazon EKS User Guide</i> </i>.
249
+ # permissions for the Kubernetes control plane to make calls to AWS
250
+ # API operations on your behalf. For more information, see [Amazon EKS
251
+ # Service IAM Role][1] in the <i> <i>Amazon EKS User Guide</i> </i>.
244
252
  #
245
253
  #
246
254
  #
@@ -262,6 +270,10 @@ module Aws::EKS
262
270
  # [2]: https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html
263
271
  # @return [Types::VpcConfigRequest]
264
272
  #
273
+ # @!attribute [rw] kubernetes_network_config
274
+ # The Kubernetes network configuration for the cluster.
275
+ # @return [Types::KubernetesNetworkConfigRequest]
276
+ #
265
277
  # @!attribute [rw] logging
266
278
  # Enable or disable exporting the Kubernetes control plane logs for
267
279
  # your cluster to CloudWatch Logs. By default, cluster control plane
@@ -306,6 +318,7 @@ module Aws::EKS
306
318
  :version,
307
319
  :role_arn,
308
320
  :resources_vpc_config,
321
+ :kubernetes_network_config,
309
322
  :logging,
310
323
  :client_request_token,
311
324
  :tags,
@@ -439,7 +452,7 @@ module Aws::EKS
439
452
  # disk_size: 1,
440
453
  # subnets: ["String"], # required
441
454
  # instance_types: ["String"],
442
- # ami_type: "AL2_x86_64", # accepts AL2_x86_64, AL2_x86_64_GPU
455
+ # ami_type: "AL2_x86_64", # accepts AL2_x86_64, AL2_x86_64_GPU, AL2_ARM_64
443
456
  # remote_access: {
444
457
  # ec2_ssh_key: "String",
445
458
  # source_security_groups: ["String"],
@@ -452,6 +465,11 @@ module Aws::EKS
452
465
  # "TagKey" => "TagValue",
453
466
  # },
454
467
  # client_request_token: "String",
468
+ # launch_template: {
469
+ # name: "String",
470
+ # version: "String",
471
+ # id: "String",
472
+ # },
455
473
  # version: "String",
456
474
  # release_version: "String",
457
475
  # }
@@ -471,33 +489,73 @@ module Aws::EKS
471
489
  #
472
490
  # @!attribute [rw] disk_size
473
491
  # The root device disk size (in GiB) for your node group instances.
474
- # The default disk size is 20 GiB.
492
+ # The default disk size is 20 GiB. If you specify `launchTemplate`,
493
+ # then don't specify `diskSize`, or the node group deployment will
494
+ # fail. For more information about using launch templates with Amazon
495
+ # EKS, see [Launch template support][1] in the Amazon EKS User Guide.
496
+ #
497
+ #
498
+ #
499
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
475
500
  # @return [Integer]
476
501
  #
477
502
  # @!attribute [rw] subnets
478
503
  # The subnets to use for the Auto Scaling group that is created for
479
504
  # your node group. These subnets must have the tag key
480
505
  # `kubernetes.io/cluster/CLUSTER_NAME` with a value of `shared`, where
481
- # `CLUSTER_NAME` is replaced with the name of your cluster.
506
+ # `CLUSTER_NAME` is replaced with the name of your cluster. If you
507
+ # specify `launchTemplate`, then don't specify [ `SubnetId` ][1] in
508
+ # your launch template, or the node group deployment will fail. For
509
+ # more information about using launch templates with Amazon EKS, see
510
+ # [Launch template support][2] in the Amazon EKS User Guide.
511
+ #
512
+ #
513
+ #
514
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html
515
+ # [2]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
482
516
  # @return [Array<String>]
483
517
  #
484
518
  # @!attribute [rw] instance_types
485
- # The instance type to use for your node group. Currently, you can
486
- # specify a single instance type for a node group. The default value
487
- # for this parameter is `t3.medium`. If you choose a GPU instance
488
- # type, be sure to specify the `AL2_x86_64_GPU` with the `amiType`
489
- # parameter.
519
+ # The instance type to use for your node group. You can specify a
520
+ # single instance type for a node group. The default value for
521
+ # `instanceTypes` is `t3.medium`. If you choose a GPU instance type,
522
+ # be sure to specify `AL2_x86_64_GPU` with the `amiType` parameter. If
523
+ # you specify `launchTemplate`, then don't specify `instanceTypes`,
524
+ # or the node group deployment will fail. For more information about
525
+ # using launch templates with Amazon EKS, see [Launch template
526
+ # support][1] in the Amazon EKS User Guide.
527
+ #
528
+ #
529
+ #
530
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
490
531
  # @return [Array<String>]
491
532
  #
492
533
  # @!attribute [rw] ami_type
493
534
  # The AMI type for your node group. GPU instance types should use the
494
- # `AL2_x86_64_GPU` AMI type, which uses the Amazon EKS-optimized Linux
495
- # AMI with GPU support. Non-GPU instances should use the `AL2_x86_64`
496
- # AMI type, which uses the Amazon EKS-optimized Linux AMI.
535
+ # `AL2_x86_64_GPU` AMI type. Non-GPU instances should use the
536
+ # `AL2_x86_64` AMI type. Arm instances should use the `AL2_ARM_64` AMI
537
+ # type. All types use the Amazon EKS-optimized Amazon Linux 2 AMI. If
538
+ # you specify `launchTemplate`, and your launch template uses a custom
539
+ # AMI, then don't specify `amiType`, or the node group deployment
540
+ # will fail. For more information about using launch templates with
541
+ # Amazon EKS, see [Launch template support][1] in the Amazon EKS User
542
+ # Guide.
543
+ #
544
+ #
545
+ #
546
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
497
547
  # @return [String]
498
548
  #
499
549
  # @!attribute [rw] remote_access
500
550
  # The remote access (SSH) configuration to use with your node group.
551
+ # If you specify `launchTemplate`, then don't specify `remoteAccess`,
552
+ # or the node group deployment will fail. For more information about
553
+ # using launch templates with Amazon EKS, see [Launch template
554
+ # support][1] in the Amazon EKS User Guide.
555
+ #
556
+ #
557
+ #
558
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
501
559
  # @return [Types::RemoteAccessConfig]
502
560
  #
503
561
  # @!attribute [rw] node_role
@@ -508,11 +566,18 @@ module Aws::EKS
508
566
  # policies. Before you can launch worker nodes and register them into
509
567
  # a cluster, you must create an IAM role for those worker nodes to use
510
568
  # when they are launched. For more information, see [Amazon EKS Worker
511
- # Node IAM Role][1] in the <i> <i>Amazon EKS User Guide</i> </i>.
569
+ # Node IAM Role][1] in the <i> <i>Amazon EKS User Guide</i> </i>. If
570
+ # you specify `launchTemplate`, then don't specify [
571
+ # `IamInstanceProfile` ][2] in your launch template, or the node group
572
+ # deployment will fail. For more information about using launch
573
+ # templates with Amazon EKS, see [Launch template support][3] in the
574
+ # Amazon EKS User Guide.
512
575
  #
513
576
  #
514
577
  #
515
578
  # [1]: https://docs.aws.amazon.com/eks/latest/userguide/worker_node_IAM_role.html
579
+ # [2]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html
580
+ # [3]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
516
581
  # @return [String]
517
582
  #
518
583
  # @!attribute [rw] labels
@@ -536,10 +601,25 @@ module Aws::EKS
536
601
  # not need to pass this option.
537
602
  # @return [String]
538
603
  #
604
+ # @!attribute [rw] launch_template
605
+ # An object representing a node group's launch template
606
+ # specification. If specified, then do not specify `instanceTypes`,
607
+ # `diskSize`, or `remoteAccess` and make sure that the launch template
608
+ # meets the requirements in `launchTemplateSpecification`.
609
+ # @return [Types::LaunchTemplateSpecification]
610
+ #
539
611
  # @!attribute [rw] version
540
612
  # The Kubernetes version to use for your managed nodes. By default,
541
613
  # the Kubernetes version of the cluster is used, and this is the only
542
- # accepted specified value.
614
+ # accepted specified value. If you specify `launchTemplate`, and your
615
+ # launch template uses a custom AMI, then don't specify `version`, or
616
+ # the node group deployment will fail. For more information about
617
+ # using launch templates with Amazon EKS, see [Launch template
618
+ # support][1] in the Amazon EKS User Guide.
619
+ #
620
+ #
621
+ #
622
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
543
623
  # @return [String]
544
624
  #
545
625
  # @!attribute [rw] release_version
@@ -547,11 +627,16 @@ module Aws::EKS
547
627
  # node group. By default, the latest available AMI version for the
548
628
  # node group's current Kubernetes version is used. For more
549
629
  # information, see [Amazon EKS-Optimized Linux AMI Versions][1] in the
550
- # *Amazon EKS User Guide*.
630
+ # *Amazon EKS User Guide*. If you specify `launchTemplate`, and your
631
+ # launch template uses a custom AMI, then don't specify
632
+ # `releaseVersion`, or the node group deployment will fail. For more
633
+ # information about using launch templates with Amazon EKS, see
634
+ # [Launch template support][2] in the Amazon EKS User Guide.
551
635
  #
552
636
  #
553
637
  #
554
638
  # [1]: https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html
639
+ # [2]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
555
640
  # @return [String]
556
641
  #
557
642
  # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateNodegroupRequest AWS API Documentation
@@ -569,6 +654,7 @@ module Aws::EKS
569
654
  :labels,
570
655
  :tags,
571
656
  :client_request_token,
657
+ :launch_template,
572
658
  :version,
573
659
  :release_version)
574
660
  SENSITIVE = []
@@ -1117,6 +1203,14 @@ module Aws::EKS
1117
1203
  # version that Amazon EKS created. You may be able to revert to the
1118
1204
  # version that Amazon EKS created to recover.
1119
1205
  #
1206
+ # * **Ec2SubnetInvalidConfiguration**\: One or more Amazon EC2 subnets
1207
+ # specified for a node group do not automatically assign public IP
1208
+ # addresses to instances launched into it. If you want your
1209
+ # instances to be assigned a public IP address, then you need to
1210
+ # enable the `auto-assign public IP address` setting for the subnet.
1211
+ # See [Modifying the public IPv4 addressing attribute for your
1212
+ # subnet][1] in the Amazon VPC User Guide.
1213
+ #
1120
1214
  # * **IamInstanceProfileNotFound**\: We couldn't find the IAM
1121
1215
  # instance profile for your managed node group. You may be able to
1122
1216
  # recreate an instance profile with the same settings to recover.
@@ -1130,7 +1224,7 @@ module Aws::EKS
1130
1224
  #
1131
1225
  # * **NodeCreationFailure**\: Your launched instances are unable to
1132
1226
  # register with your Amazon EKS cluster. Common causes of this
1133
- # failure are insufficient [worker node IAM role][1] permissions or
1227
+ # failure are insufficient [worker node IAM role][2] permissions or
1134
1228
  # lack of outbound internet access for the nodes.
1135
1229
  #
1136
1230
  # * **InstanceLimitExceeded**\: Your AWS account is unable to launch
@@ -1149,7 +1243,8 @@ module Aws::EKS
1149
1243
  #
1150
1244
  #
1151
1245
  #
1152
- # [1]: https://docs.aws.amazon.com/eks/latest/userguide/worker_node_IAM_role.html
1246
+ # [1]: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html#subnet-public-ip
1247
+ # [2]: https://docs.aws.amazon.com/eks/latest/userguide/worker_node_IAM_role.html
1153
1248
  # @return [String]
1154
1249
  #
1155
1250
  # @!attribute [rw] message
@@ -1170,6 +1265,115 @@ module Aws::EKS
1170
1265
  include Aws::Structure
1171
1266
  end
1172
1267
 
1268
+ # The Kubernetes network configuration for the cluster.
1269
+ #
1270
+ # @note When making an API call, you may pass KubernetesNetworkConfigRequest
1271
+ # data as a hash:
1272
+ #
1273
+ # {
1274
+ # service_ipv_4_cidr: "String",
1275
+ # }
1276
+ #
1277
+ # @!attribute [rw] service_ipv_4_cidr
1278
+ # The CIDR block to assign Kubernetes service IP addresses from. If
1279
+ # you don't specify a block, Kubernetes assigns addresses from either
1280
+ # the 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. We recommend that
1281
+ # you specify a block that does not overlap with resources in other
1282
+ # networks that are peered or connected to your VPC. The block must
1283
+ # meet the following requirements:
1284
+ #
1285
+ # * Within one of the following private IP address blocks: 10.0.0.0/8,
1286
+ # 172.16.0.0.0/12, or 192.168.0.0/16.
1287
+ #
1288
+ # * Doesn't overlap with any CIDR block assigned to the VPC that you
1289
+ # selected for VPC.
1290
+ #
1291
+ # * Between /24 and /12.
1292
+ #
1293
+ # You can only specify a custom CIDR block when you create a cluster
1294
+ # and can't change this value once the cluster is created.
1295
+ # @return [String]
1296
+ #
1297
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/KubernetesNetworkConfigRequest AWS API Documentation
1298
+ #
1299
+ class KubernetesNetworkConfigRequest < Struct.new(
1300
+ :service_ipv_4_cidr)
1301
+ SENSITIVE = []
1302
+ include Aws::Structure
1303
+ end
1304
+
1305
+ # The Kubernetes network configuration for the cluster.
1306
+ #
1307
+ # @!attribute [rw] service_ipv_4_cidr
1308
+ # The CIDR block that Kubernetes service IP addresses are assigned
1309
+ # from. If you didn't specify a CIDR block, then Kubernetes assigns
1310
+ # addresses from either the 10.100.0.0/16 or 172.20.0.0/16 CIDR
1311
+ # blocks. If this was specified, then it was specified when the
1312
+ # cluster was created and it cannot be changed.
1313
+ # @return [String]
1314
+ #
1315
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/KubernetesNetworkConfigResponse AWS API Documentation
1316
+ #
1317
+ class KubernetesNetworkConfigResponse < Struct.new(
1318
+ :service_ipv_4_cidr)
1319
+ SENSITIVE = []
1320
+ include Aws::Structure
1321
+ end
1322
+
1323
+ # An object representing a node group launch template specification. The
1324
+ # launch template cannot include [ `SubnetId` ][1], [
1325
+ # `IamInstanceProfile` ][2], [ `RequestSpotInstances` ][3], [
1326
+ # `HibernationOptions` ][4], or [ `TerminateInstances` ][5], or the node
1327
+ # group deployment or update will fail. For more information about
1328
+ # launch templates, see [ `CreateLaunchTemplate` ][6] in the Amazon EC2
1329
+ # API Reference. For more information about using launch templates with
1330
+ # Amazon EKS, see [Launch template support][7] in the Amazon EKS User
1331
+ # Guide.
1332
+ #
1333
+ # Specify either `name` or `id`, but not both.
1334
+ #
1335
+ #
1336
+ #
1337
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html
1338
+ # [2]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_IamInstanceProfile.html
1339
+ # [3]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RequestSpotInstances.html
1340
+ # [4]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_HibernationOptionsRequest.html
1341
+ # [5]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_TerminateInstances.html
1342
+ # [6]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateLaunchTemplate.html
1343
+ # [7]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
1344
+ #
1345
+ # @note When making an API call, you may pass LaunchTemplateSpecification
1346
+ # data as a hash:
1347
+ #
1348
+ # {
1349
+ # name: "String",
1350
+ # version: "String",
1351
+ # id: "String",
1352
+ # }
1353
+ #
1354
+ # @!attribute [rw] name
1355
+ # The name of the launch template.
1356
+ # @return [String]
1357
+ #
1358
+ # @!attribute [rw] version
1359
+ # The version of the launch template to use. If no version is
1360
+ # specified, then the template's default version is used.
1361
+ # @return [String]
1362
+ #
1363
+ # @!attribute [rw] id
1364
+ # The ID of the launch template.
1365
+ # @return [String]
1366
+ #
1367
+ # @see http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/LaunchTemplateSpecification AWS API Documentation
1368
+ #
1369
+ class LaunchTemplateSpecification < Struct.new(
1370
+ :name,
1371
+ :version,
1372
+ :id)
1373
+ SENSITIVE = []
1374
+ include Aws::Structure
1375
+ end
1376
+
1173
1377
  # @note When making an API call, you may pass ListClustersRequest
1174
1378
  # data as a hash:
1175
1379
  #
@@ -1541,13 +1745,11 @@ module Aws::EKS
1541
1745
  # @return [String]
1542
1746
  #
1543
1747
  # @!attribute [rw] release_version
1544
- # The AMI version of the managed node group. For more information, see
1545
- # [Amazon EKS-Optimized Linux AMI Versions ][1] in the *Amazon EKS
1546
- # User Guide*.
1547
- #
1548
- #
1549
- #
1550
- # [1]: https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html
1748
+ # If the node group was deployed using a launch template with a custom
1749
+ # AMI, then this is the AMI ID that was specified in the launch
1750
+ # template. For node groups that weren't deployed using a launch
1751
+ # template, this is the version of the Amazon EKS-optimized AMI that
1752
+ # the node group was deployed with.
1551
1753
  # @return [String]
1552
1754
  #
1553
1755
  # @!attribute [rw] created_at
@@ -1570,42 +1772,35 @@ module Aws::EKS
1570
1772
  # @return [Types::NodegroupScalingConfig]
1571
1773
  #
1572
1774
  # @!attribute [rw] instance_types
1573
- # The instance types associated with your node group.
1775
+ # If the node group wasn't deployed with a launch template, then this
1776
+ # is the instance type that is associated with the node group. If the
1777
+ # node group was deployed with a launch template, then this is `null`.
1574
1778
  # @return [Array<String>]
1575
1779
  #
1576
1780
  # @!attribute [rw] subnets
1577
- # The subnets allowed for the Auto Scaling group that is associated
1578
- # with your node group. These subnets must have the following tag:
1579
- # `kubernetes.io/cluster/CLUSTER_NAME`, where `CLUSTER_NAME` is
1580
- # replaced with the name of your cluster.
1781
+ # The subnets that were specified for the Auto Scaling group that is
1782
+ # associated with your node group.
1581
1783
  # @return [Array<String>]
1582
1784
  #
1583
1785
  # @!attribute [rw] remote_access
1584
- # The remote access (SSH) configuration that is associated with the
1585
- # node group.
1786
+ # If the node group wasn't deployed with a launch template, then this
1787
+ # is the remote access configuration that is associated with the node
1788
+ # group. If the node group was deployed with a launch template, then
1789
+ # this is `null`.
1586
1790
  # @return [Types::RemoteAccessConfig]
1587
1791
  #
1588
1792
  # @!attribute [rw] ami_type
1589
- # The AMI type associated with your node group. GPU instance types
1590
- # should use the `AL2_x86_64_GPU` AMI type, which uses the Amazon
1591
- # EKS-optimized Linux AMI with GPU support. Non-GPU instances should
1592
- # use the `AL2_x86_64` AMI type, which uses the Amazon EKS-optimized
1593
- # Linux AMI.
1793
+ # If the node group was deployed using a launch template with a custom
1794
+ # AMI, then this is `CUSTOM`. For node groups that weren't deployed
1795
+ # using a launch template, this is the AMI type that was specified in
1796
+ # the node group configuration.
1594
1797
  # @return [String]
1595
1798
  #
1596
1799
  # @!attribute [rw] node_role
1597
1800
  # The IAM role associated with your node group. The Amazon EKS worker
1598
1801
  # node `kubelet` daemon makes calls to AWS APIs on your behalf. Worker
1599
1802
  # nodes receive permissions for these API calls through an IAM
1600
- # instance profile and associated policies. Before you can launch
1601
- # worker nodes and register them into a cluster, you must create an
1602
- # IAM role for those worker nodes to use when they are launched. For
1603
- # more information, see [Amazon EKS Worker Node IAM Role][1] in the
1604
- # <i> <i>Amazon EKS User Guide</i> </i>.
1605
- #
1606
- #
1607
- #
1608
- # [1]: https://docs.aws.amazon.com/eks/latest/userguide/worker_node_IAM_role.html
1803
+ # instance profile and associated policies.
1609
1804
  # @return [String]
1610
1805
  #
1611
1806
  # @!attribute [rw] labels
@@ -1624,8 +1819,9 @@ module Aws::EKS
1624
1819
  # @return [Types::NodegroupResources]
1625
1820
  #
1626
1821
  # @!attribute [rw] disk_size
1627
- # The root device disk size (in GiB) for your node group instances.
1628
- # The default disk size is 20 GiB.
1822
+ # If the node group wasn't deployed with a launch template, then this
1823
+ # is the disk size in the node group configuration. If the node group
1824
+ # was deployed with a launch template, then this is `null`.
1629
1825
  # @return [Integer]
1630
1826
  #
1631
1827
  # @!attribute [rw] health
@@ -1633,6 +1829,11 @@ module Aws::EKS
1633
1829
  # node group's health, they are listed here.
1634
1830
  # @return [Types::NodegroupHealth]
1635
1831
  #
1832
+ # @!attribute [rw] launch_template
1833
+ # If a launch template was used to create the node group, then this is
1834
+ # the launch template that was used.
1835
+ # @return [Types::LaunchTemplateSpecification]
1836
+ #
1636
1837
  # @!attribute [rw] tags
1637
1838
  # The metadata applied to the node group to assist with categorization
1638
1839
  # and organization. Each tag consists of a key and an optional value,
@@ -1662,6 +1863,7 @@ module Aws::EKS
1662
1863
  :resources,
1663
1864
  :disk_size,
1664
1865
  :health,
1866
+ :launch_template,
1665
1867
  :tags)
1666
1868
  SENSITIVE = []
1667
1869
  include Aws::Structure
@@ -1703,7 +1905,9 @@ module Aws::EKS
1703
1905
  end
1704
1906
 
1705
1907
  # An object representing the scaling configuration details for the Auto
1706
- # Scaling group that is associated with your node group.
1908
+ # Scaling group that is associated with your node group. If you specify
1909
+ # a value for any property, then you must specify values for all of the
1910
+ # properties.
1707
1911
  #
1708
1912
  # @note When making an API call, you may pass NodegroupScalingConfig
1709
1913
  # data as a hash:
@@ -2336,6 +2540,11 @@ module Aws::EKS
2336
2540
  # nodegroup_name: "String", # required
2337
2541
  # version: "String",
2338
2542
  # release_version: "String",
2543
+ # launch_template: {
2544
+ # name: "String",
2545
+ # version: "String",
2546
+ # id: "String",
2547
+ # },
2339
2548
  # force: false,
2340
2549
  # client_request_token: "String",
2341
2550
  # }
@@ -2354,7 +2563,15 @@ module Aws::EKS
2354
2563
  # then the Kubernetes version of the node group does not change. You
2355
2564
  # can specify the Kubernetes version of the cluster to update the node
2356
2565
  # group to the latest AMI version of the cluster's Kubernetes
2357
- # version.
2566
+ # version. If you specify `launchTemplate`, and your launch template
2567
+ # uses a custom AMI, then don't specify `version`, or the node group
2568
+ # update will fail. For more information about using launch templates
2569
+ # with Amazon EKS, see [Launch template support][1] in the Amazon EKS
2570
+ # User Guide.
2571
+ #
2572
+ #
2573
+ #
2574
+ # [1]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
2358
2575
  # @return [String]
2359
2576
  #
2360
2577
  # @!attribute [rw] release_version
@@ -2362,13 +2579,25 @@ module Aws::EKS
2362
2579
  # update. By default, the latest available AMI version for the node
2363
2580
  # group's Kubernetes version is used. For more information, see
2364
2581
  # [Amazon EKS-Optimized Linux AMI Versions ][1] in the *Amazon EKS
2365
- # User Guide*.
2582
+ # User Guide*. If you specify `launchTemplate`, and your launch
2583
+ # template uses a custom AMI, then don't specify `releaseVersion`, or
2584
+ # the node group update will fail. For more information about using
2585
+ # launch templates with Amazon EKS, see [Launch template support][2]
2586
+ # in the Amazon EKS User Guide.
2366
2587
  #
2367
2588
  #
2368
2589
  #
2369
2590
  # [1]: https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html
2591
+ # [2]: https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html
2370
2592
  # @return [String]
2371
2593
  #
2594
+ # @!attribute [rw] launch_template
2595
+ # An object representing a node group's launch template
2596
+ # specification. You can only update a node group using a launch
2597
+ # template if the node group was originally deployed with a launch
2598
+ # template.
2599
+ # @return [Types::LaunchTemplateSpecification]
2600
+ #
2372
2601
  # @!attribute [rw] force
2373
2602
  # Force the update if the existing node group's pods are unable to be
2374
2603
  # drained due to a pod disruption budget issue. If an update fails
@@ -2392,6 +2621,7 @@ module Aws::EKS
2392
2621
  :nodegroup_name,
2393
2622
  :version,
2394
2623
  :release_version,
2624
+ :launch_template,
2395
2625
  :force,
2396
2626
  :client_request_token)
2397
2627
  SENSITIVE = []
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-eks
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.39.0
4
+ version: 1.44.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-23 00:00:00.000000000 Z
11
+ date: 2020-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '3'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 3.99.0
22
+ version: 3.109.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '3'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 3.99.0
32
+ version: 3.109.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: aws-sigv4
35
35
  requirement: !ruby/object:Gem::Requirement