createAddon method
- required String addonName,
- required String clusterName,
- String? addonVersion,
- String? clientRequestToken,
- String? configurationValues,
- AddonNamespaceConfigRequest? namespaceConfig,
- List<
AddonPodIdentityAssociations> ? podIdentityAssociations, - ResolveConflicts? resolveConflicts,
- String? serviceAccountRoleArn,
- Map<
String, String> ? tags,
Creates an Amazon EKS add-on.
Amazon EKS add-ons help to automate the provisioning and lifecycle management of common operational software for Amazon EKS clusters. For more information, see Amazon EKS add-ons in the Amazon EKS User Guide.
May throw ClientException.
May throw InvalidParameterException.
May throw InvalidRequestException.
May throw ResourceInUseException.
May throw ResourceNotFoundException.
May throw ServerException.
Parameter addonName :
The name of the add-on. The name must match one of the names returned by
DescribeAddonVersions.
Parameter clusterName :
The name of your cluster.
Parameter addonVersion :
The version of the add-on. The version must match one of the versions
returned by
DescribeAddonVersions .
Parameter clientRequestToken :
A unique, case-sensitive identifier that you provide to ensure the
idempotency of the request.
Parameter configurationValues :
The set of configuration values for the add-on that's created. The values
that you provide are validated against the schema returned by
DescribeAddonConfiguration.
Parameter namespaceConfig :
The namespace configuration for the addon. If specified, this will
override the default namespace for the addon.
Parameter podIdentityAssociations :
An array of EKS Pod Identity associations to be created. Each association
maps a Kubernetes service account to an IAM role.
For more information, see Attach an IAM Role to an Amazon EKS add-on using EKS Pod Identity in the Amazon EKS User Guide.
Parameter resolveConflicts :
How to resolve field value conflicts for an Amazon EKS add-on. Conflicts
are handled based on the value you choose:
- None – If the self-managed version of the add-on is installed on your cluster, Amazon EKS doesn't change the value. Creation of the add-on might fail.
- Overwrite – If the self-managed version of the add-on is installed on your cluster and the Amazon EKS default value is different than the existing value, Amazon EKS changes the value to the Amazon EKS default value.
-
Preserve – This is similar to the NONE option. If the self-managed
version of the add-on is installed on your cluster Amazon EKS doesn't
change the add-on resource properties. Creation of the add-on might fail
if conflicts are detected. This option works differently during the update
operation. For more information, see
UpdateAddon.
Parameter serviceAccountRoleArn :
The Amazon Resource Name (ARN) of an existing IAM role to bind to the
add-on's service account. The role must be assigned the IAM permissions
required by the add-on. If you don't specify an existing IAM role, then
the add-on uses the permissions assigned to the node IAM role. For more
information, see Amazon
EKS node IAM role in the Amazon EKS User Guide.
Parameter tags :
Metadata that assists with categorization and organization. Each tag
consists of a key and an optional value. You define both. Tags don't
propagate to any other cluster or Amazon Web Services resources.
Implementation
Future<CreateAddonResponse> createAddon({
required String addonName,
required String clusterName,
String? addonVersion,
String? clientRequestToken,
String? configurationValues,
AddonNamespaceConfigRequest? namespaceConfig,
List<AddonPodIdentityAssociations>? podIdentityAssociations,
ResolveConflicts? resolveConflicts,
String? serviceAccountRoleArn,
Map<String, String>? tags,
}) async {
final $payload = <String, dynamic>{
'addonName': addonName,
if (addonVersion != null) 'addonVersion': addonVersion,
'clientRequestToken': clientRequestToken ?? _s.generateIdempotencyToken(),
if (configurationValues != null)
'configurationValues': configurationValues,
if (namespaceConfig != null) 'namespaceConfig': namespaceConfig,
if (podIdentityAssociations != null)
'podIdentityAssociations': podIdentityAssociations,
if (resolveConflicts != null) 'resolveConflicts': resolveConflicts.value,
if (serviceAccountRoleArn != null)
'serviceAccountRoleArn': serviceAccountRoleArn,
if (tags != null) 'tags': tags,
};
final response = await _protocol.send(
payload: $payload,
method: 'POST',
requestUri: '/clusters/${Uri.encodeComponent(clusterName)}/addons',
exceptionFnMap: _exceptionFns,
);
return CreateAddonResponse.fromJson(response);
}