Skip to content

Create Addon

eks_create_addon R Documentation

Creates an Amazon EKS add-on

Description

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.

Usage

eks_create_addon(clusterName, addonName, addonVersion,
  serviceAccountRoleArn, resolveConflicts, clientRequestToken, tags,
  configurationValues, podIdentityAssociations)

Arguments

clusterName

[required] The name of your cluster.

addonName

[required] The name of the add-on. The name must match one of the names returned by describe_addon_versions.

addonVersion

The version of the add-on. The version must match one of the versions returned by describe_addon_versions .

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.

To specify an existing IAM role, you must have an IAM OpenID Connect (OIDC) provider created for your cluster. For more information, see Enabling IAM roles for service accounts on your cluster in the Amazon EKS User Guide.

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 update_addon.

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.

clientRequestToken

A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.

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.

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 describe_addon_configuration.

podIdentityAssociations

An array of Pod Identity Assocations to be created. Each EKS Pod Identity 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 Pod Identity in the EKS User Guide.

Value

A list with the following syntax:

list(
  addon = list(
    addonName = "string",
    clusterName = "string",
    status = "CREATING"|"ACTIVE"|"CREATE_FAILED"|"UPDATING"|"DELETING"|"DELETE_FAILED"|"DEGRADED"|"UPDATE_FAILED",
    addonVersion = "string",
    health = list(
      issues = list(
        list(
          code = "AccessDenied"|"InternalFailure"|"ClusterUnreachable"|"InsufficientNumberOfReplicas"|"ConfigurationConflict"|"AdmissionRequestDenied"|"UnsupportedAddonModification"|"K8sResourceNotFound"|"AddonSubscriptionNeeded"|"AddonPermissionFailure",
          message = "string",
          resourceIds = list(
            "string"
          )
        )
      )
    ),
    addonArn = "string",
    createdAt = as.POSIXct(
      "2015-01-01"
    ),
    modifiedAt = as.POSIXct(
      "2015-01-01"
    ),
    serviceAccountRoleArn = "string",
    tags = list(
      "string"
    ),
    publisher = "string",
    owner = "string",
    marketplaceInformation = list(
      productId = "string",
      productUrl = "string"
    ),
    configurationValues = "string",
    podIdentityAssociations = list(
      "string"
    )
  )
)

Request syntax

svc$create_addon(
  clusterName = "string",
  addonName = "string",
  addonVersion = "string",
  serviceAccountRoleArn = "string",
  resolveConflicts = "OVERWRITE"|"NONE"|"PRESERVE",
  clientRequestToken = "string",
  tags = list(
    "string"
  ),
  configurationValues = "string",
  podIdentityAssociations = list(
    list(
      serviceAccount = "string",
      roleArn = "string"
    )
  )
)