aws_sdk_eks/client/
create_addon.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2impl super::Client {
3    /// Constructs a fluent builder for the [`CreateAddon`](crate::operation::create_addon::builders::CreateAddonFluentBuilder) operation.
4    ///
5    /// - The fluent builder is configurable:
6    ///   - [`cluster_name(impl Into<String>)`](crate::operation::create_addon::builders::CreateAddonFluentBuilder::cluster_name) / [`set_cluster_name(Option<String>)`](crate::operation::create_addon::builders::CreateAddonFluentBuilder::set_cluster_name):<br>required: **true**<br><p>The name of your cluster.</p><br>
7    ///   - [`addon_name(impl Into<String>)`](crate::operation::create_addon::builders::CreateAddonFluentBuilder::addon_name) / [`set_addon_name(Option<String>)`](crate::operation::create_addon::builders::CreateAddonFluentBuilder::set_addon_name):<br>required: **true**<br><p>The name of the add-on. The name must match one of the names returned by <code>DescribeAddonVersions</code>.</p><br>
8    ///   - [`addon_version(impl Into<String>)`](crate::operation::create_addon::builders::CreateAddonFluentBuilder::addon_version) / [`set_addon_version(Option<String>)`](crate::operation::create_addon::builders::CreateAddonFluentBuilder::set_addon_version):<br>required: **false**<br><p>The version of the add-on. The version must match one of the versions returned by <a href="https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html"> <code>DescribeAddonVersions</code> </a>.</p><br>
9    ///   - [`service_account_role_arn(impl Into<String>)`](crate::operation::create_addon::builders::CreateAddonFluentBuilder::service_account_role_arn) / [`set_service_account_role_arn(Option<String>)`](crate::operation::create_addon::builders::CreateAddonFluentBuilder::set_service_account_role_arn):<br>required: **false**<br><p>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 <a href="https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html">Amazon EKS node IAM role</a> in the <i>Amazon EKS User Guide</i>.</p><note>  <p>To specify an existing IAM role, you must have an IAM OpenID Connect (OIDC) provider created for your cluster. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html">Enabling IAM roles for service accounts on your cluster</a> in the <i>Amazon EKS User Guide</i>.</p> </note><br>
10    ///   - [`resolve_conflicts(ResolveConflicts)`](crate::operation::create_addon::builders::CreateAddonFluentBuilder::resolve_conflicts) / [`set_resolve_conflicts(Option<ResolveConflicts>)`](crate::operation::create_addon::builders::CreateAddonFluentBuilder::set_resolve_conflicts):<br>required: **false**<br><p>How to resolve field value conflicts for an Amazon EKS add-on. Conflicts are handled based on the value you choose:</p> <ul>  <li>   <p><b>None</b> – 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.</p></li>  <li>   <p><b>Overwrite</b> – 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.</p></li>  <li>   <p><b>Preserve</b> – 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 <a href="https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateAddon.html"> <code>UpdateAddon</code> </a>.</p></li> </ul> <p>If you don't currently have the self-managed version of the add-on installed on your cluster, the Amazon EKS add-on is installed. Amazon EKS sets all values to default values, regardless of the option that you specify.</p><br>
11    ///   - [`client_request_token(impl Into<String>)`](crate::operation::create_addon::builders::CreateAddonFluentBuilder::client_request_token) / [`set_client_request_token(Option<String>)`](crate::operation::create_addon::builders::CreateAddonFluentBuilder::set_client_request_token):<br>required: **false**<br><p>A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.</p><br>
12    ///   - [`tags(impl Into<String>, impl Into<String>)`](crate::operation::create_addon::builders::CreateAddonFluentBuilder::tags) / [`set_tags(Option<HashMap::<String, String>>)`](crate::operation::create_addon::builders::CreateAddonFluentBuilder::set_tags):<br>required: **false**<br><p>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.</p><br>
13    ///   - [`configuration_values(impl Into<String>)`](crate::operation::create_addon::builders::CreateAddonFluentBuilder::configuration_values) / [`set_configuration_values(Option<String>)`](crate::operation::create_addon::builders::CreateAddonFluentBuilder::set_configuration_values):<br>required: **false**<br><p>The set of configuration values for the add-on that's created. The values that you provide are validated against the schema returned by <code>DescribeAddonConfiguration</code>.</p><br>
14    ///   - [`pod_identity_associations(AddonPodIdentityAssociations)`](crate::operation::create_addon::builders::CreateAddonFluentBuilder::pod_identity_associations) / [`set_pod_identity_associations(Option<Vec::<AddonPodIdentityAssociations>>)`](crate::operation::create_addon::builders::CreateAddonFluentBuilder::set_pod_identity_associations):<br>required: **false**<br><p>An array of EKS Pod Identity associations to be created. Each association maps a Kubernetes service account to an IAM role.</p> <p>For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/add-ons-iam.html">Attach an IAM Role to an Amazon EKS add-on using EKS Pod Identity</a> in the <i>Amazon EKS User Guide</i>.</p><br>
15    ///   - [`namespace_config(AddonNamespaceConfigRequest)`](crate::operation::create_addon::builders::CreateAddonFluentBuilder::namespace_config) / [`set_namespace_config(Option<AddonNamespaceConfigRequest>)`](crate::operation::create_addon::builders::CreateAddonFluentBuilder::set_namespace_config):<br>required: **false**<br><p>The namespace configuration for the addon. If specified, this will override the default namespace for the addon.</p><br>
16    /// - On success, responds with [`CreateAddonOutput`](crate::operation::create_addon::CreateAddonOutput) with field(s):
17    ///   - [`addon(Option<Addon>)`](crate::operation::create_addon::CreateAddonOutput::addon): <p>An Amazon EKS add-on. For more information, see <a href="https://docs.aws.amazon.com/eks/latest/userguide/eks-add-ons.html">Amazon EKS add-ons</a> in the <i>Amazon EKS User Guide</i>.</p>
18    /// - On failure, responds with [`SdkError<CreateAddonError>`](crate::operation::create_addon::CreateAddonError)
19    pub fn create_addon(&self) -> crate::operation::create_addon::builders::CreateAddonFluentBuilder {
20        crate::operation::create_addon::builders::CreateAddonFluentBuilder::new(self.handle.clone())
21    }
22}