atmos icon indicating copy to clipboard operation
atmos copied to clipboard

Add Atmos manifest lists merge strategies

Open aknysh opened this issue 8 months ago • 0 comments

what

  • Add Atmos manifest lists merge strategies
  • Update docs

why

  • Allow using the following list merge strategies in Atmos stack manifests:

    • replace - Most recent list imported wins (the default behavior).

    • append - The sequence of lists is appended in the same order as imports.

    • merge - The items in the destination list are deep-merged with the items in the source list. The items in the source list take precedence. The items are processed starting from the first up to the length of the source list (the remaining items are not processed). If the source and destination lists have the same length, all items in the destination lists are deep-merged with all items in the source list.

The list merging strategies are configured in atmos.yaml CLI config file in the settings.list_merge_strategy section


settings:
  # `list_merge_strategy` specifies how lists are merged in Atmos stack manifests.
  # Can also be set using 'ATMOS_SETTINGS_LIST_MERGE_STRATEGY' environment variable, or '--settings-list-merge-strategy' command-line argument
  # The following strategies are supported:
  # `replace`: Most recent list imported wins (the default behavior).
  # `append`:  The sequence of lists is appended in the same order as imports.
  # `merge`:   The items in the destination list are deep-merged with the items in the source list.
  #            The items in the source list take precedence.
  #            The items are processed starting from the first up to the length of the source list (the remaining items are not processed).
  #            If the source and destination lists have the same length, all items in the destination lists are
  #            deep-merged with all items in the source list.
  list_merge_strategy: replace

aknysh avatar May 26 '24 20:05 aknysh