← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1990169] [NEW] Merging multiple user-data

 

Public bug reported:

Provider : Terraform / LXD

ci-user-global.tf  
locals {
  cloud-init-user-data-global = <<EOF
#cloud-config
packages:
  - nginx
write_files:
- encoding: b64
  content: |
    ${filebase64("conf/fichierdeconf")}
  path: /etc/fichierdeconf
  owner: root:root
  permissions: '755'
merge_how:
 - name: list
   settings: [append, recurse_list]
 - name: dict
   settings: [no_replace, recurse_dict]
 - name: str
   settings: [append, recurse_str]
EOF
}

ci-user-specific.tf                             
locals {
  cloud-init-user-data-specific = <<EOF
#cloud-config
write_files:
- encoding: b64
  content: |
    ${filebase64("conf/fichierdeconf2")}
  path: /etc/fichierdeconf2
  owner: root:root
  permissions: '755'
merge_how:
 - name: list
   settings: [append, recurse_list]
 - name: dict
   settings: [no_replace, recurse_dict]
 - name: str
   settings: [append, recurse_str]
EOF
}

The first is specified on profile file, the last is specified on container file.
Only the last is applied even if merge_how is used.

Already seen a couple of similar issues and documentation but never saw
how to fix, apply it correctly for cloud-init to merge theses two user-
data files ?

** Affects: cloud-init
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to cloud-init.
https://bugs.launchpad.net/bugs/1990169

Title:
  Merging multiple user-data

Status in cloud-init:
  New

Bug description:
  Provider : Terraform / LXD

  ci-user-global.tf  
  locals {
    cloud-init-user-data-global = <<EOF
  #cloud-config
  packages:
    - nginx
  write_files:
  - encoding: b64
    content: |
      ${filebase64("conf/fichierdeconf")}
    path: /etc/fichierdeconf
    owner: root:root
    permissions: '755'
  merge_how:
   - name: list
     settings: [append, recurse_list]
   - name: dict
     settings: [no_replace, recurse_dict]
   - name: str
     settings: [append, recurse_str]
  EOF
  }

  ci-user-specific.tf                             
  locals {
    cloud-init-user-data-specific = <<EOF
  #cloud-config
  write_files:
  - encoding: b64
    content: |
      ${filebase64("conf/fichierdeconf2")}
    path: /etc/fichierdeconf2
    owner: root:root
    permissions: '755'
  merge_how:
   - name: list
     settings: [append, recurse_list]
   - name: dict
     settings: [no_replace, recurse_dict]
   - name: str
     settings: [append, recurse_str]
  EOF
  }

  The first is specified on profile file, the last is specified on container file.
  Only the last is applied even if merge_how is used.

  Already seen a couple of similar issues and documentation but never
  saw how to fix, apply it correctly for cloud-init to merge theses two
  user-data files ?

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-init/+bug/1990169/+subscriptions



Follow ups