Skip to content

/AWS1/IF_EKS=>UPDATEADDON()

About UpdateAddon

Updates an Amazon EKS add-on.

Method Signature

IMPORTING

Required arguments:

iv_clustername TYPE /AWS1/EKSCLUSTERNAME /AWS1/EKSCLUSTERNAME

The name of your cluster.

iv_addonname TYPE /AWS1/EKSSTRING /AWS1/EKSSTRING

The name of the add-on. The name must match one of the names returned by ListAddons .

Optional arguments:

iv_addonversion TYPE /AWS1/EKSSTRING /AWS1/EKSSTRING

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

iv_serviceaccountrolearn TYPE /AWS1/EKSROLEARN /AWS1/EKSROLEARN

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.

iv_resolveconflicts TYPE /AWS1/EKSRESOLVECONFLICTS /AWS1/EKSRESOLVECONFLICTS

How to resolve field value conflicts for an Amazon EKS add-on if you've changed a value from the Amazon EKS default value. Conflicts are handled based on the option you choose:

  • None – Amazon EKS doesn't change the value. The update might fail.

  • Overwrite – Amazon EKS overwrites the changed value back to the Amazon EKS default value.

  • Preserve – Amazon EKS preserves the value. If you choose this option, we recommend that you test any field and value changes on a non-production cluster before updating the add-on on your production cluster.

iv_clientrequesttoken TYPE /AWS1/EKSSTRING /AWS1/EKSSTRING

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

iv_configurationvalues TYPE /AWS1/EKSSTRING /AWS1/EKSSTRING

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.

it_podidentityassociations TYPE /AWS1/CL_EKSADDONPODIDASSOCI00=>TT_ADDONPODIDASSOCIATIONSLIST TT_ADDONPODIDASSOCIATIONSLIST

An array of EKS Pod Identity associations to be updated. Each association maps a Kubernetes service account to an IAM role. If this value is left blank, no change. If an empty array is provided, existing associations owned by the add-on are deleted.

For more information, see Attach an IAM Role to an Amazon EKS add-on using EKS Pod Identity in the Amazon EKS User Guide.

RETURNING

oo_output TYPE REF TO /aws1/cl_eksupdateaddonrsp /AWS1/CL_EKSUPDATEADDONRSP

Domain /AWS1/RT_ACCOUNT_ID
Primitive Type NUMC

Examples

Syntax Example

This is an example of the syntax for calling the method. It includes every possible argument and initializes every possible value. The data provided is not necessarily semantically accurate (for example the value "string" may be provided for something that is intended to be an instance ID, or in some cases two arguments may be mutually exclusive). The syntax shows the ABAP syntax for creating the various data structures.

DATA(lo_result) = lo_client->/aws1/if_eks~updateaddon(
  it_podidentityassociations = VALUE /aws1/cl_eksaddonpodidassoci00=>tt_addonpodidassociationslist(
    (
      new /aws1/cl_eksaddonpodidassoci00(
        iv_rolearn = |string|
        iv_serviceaccount = |string|
      )
    )
  )
  iv_addonname = |string|
  iv_addonversion = |string|
  iv_clientrequesttoken = |string|
  iv_clustername = |string|
  iv_configurationvalues = |string|
  iv_resolveconflicts = |string|
  iv_serviceaccountrolearn = |string|
).

This is an example of reading all possible response values

lo_result = lo_result.
IF lo_result IS NOT INITIAL.
  lo_update = lo_result->get_update( ).
  IF lo_update IS NOT INITIAL.
    lv_string = lo_update->get_id( ).
    lv_updatestatus = lo_update->get_status( ).
    lv_updatetype = lo_update->get_type( ).
    LOOP AT lo_update->get_params( ) into lo_row.
      lo_row_1 = lo_row.
      IF lo_row_1 IS NOT INITIAL.
        lv_updateparamtype = lo_row_1->get_type( ).
        lv_string = lo_row_1->get_value( ).
      ENDIF.
    ENDLOOP.
    lv_timestamp = lo_update->get_createdat( ).
    LOOP AT lo_update->get_errors( ) into lo_row_2.
      lo_row_3 = lo_row_2.
      IF lo_row_3 IS NOT INITIAL.
        lv_errorcode = lo_row_3->get_errorcode( ).
        lv_string = lo_row_3->get_errormessage( ).
        LOOP AT lo_row_3->get_resourceids( ) into lo_row_4.
          lo_row_5 = lo_row_4.
          IF lo_row_5 IS NOT INITIAL.
            lv_string = lo_row_5->get_value( ).
          ENDIF.
        ENDLOOP.
      ENDIF.
    ENDLOOP.
  ENDIF.
ENDIF.