yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #86133
[Bug 1914641] Re: jinja rendering broken in latest git checkout
[Expired for cloud-init because there has been no activity for 60 days.]
** Changed in: cloud-init
Status: Incomplete => Expired
--
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/1914641
Title:
jinja rendering broken in latest git checkout
Status in cloud-init:
Expired
Bug description:
I use jinja templating for vendor data; it works with my .deb packaged
version of cloud-init, 20.2-2~deb10u1
Testing with the latest git checkout, I see a json parser chocking on
curly braces. That suggests that it's skipping the jinja rendering
step, or trying to run it after json parsing, which won't work.
Here is the top part of my vendor data:
```
root@cloudinit-test:~# curl http://169.254.169.254/openstack/latest/vendor_data.json
{"domain": "codfw1dev.wikimedia.cloud", "cloud-init": "MIME-Version: 1.0\nContent-Type: multipart/mixed; boundary=\"XXXXboundary text\"\n\nThis is a multipart config in MIME format.\nIt contains a cloud-init config followed by\na first boot script.\n\n--XXXXboundary text\nMIME-Version: 1.0\nContent-Type: text/cloud-config; charset=\"us-ascii\"\n\n## template: jinja\n#cloud-config\n\nhostname: {{ds.meta_data.name}}\nfqdn: {{ds.meta_data.name}}.{{ds.meta_data.project_id}}.codfw1dev.wikimedia.cloud\n\n\n# /etc/block-ldap-key-lookup:\n# Prevent non-root logins while the VM is being setup\n# The ssh-key-ldap-lookup script rejects non-root user logins if this file\n# is present.\n#\n# /etc/rsyslog.d/60-puppet.conf:\n# Enable console logging for puppet\n#\n# /etc/systemd/system/serial-getty@ttyS0.service.d/override.conf:\n# Enable root console on serial0\n# (cloud-init will create any needed parent dirs)\nwrite_files:\n - content: \"VM is work in progress\"\n path: /etc/block-ldap-key-lookup\n - content: \"daemon.* |/dev/console\"\n path: /etc/rsyslog.d/60-puppet.conf\n - content: |\n [Service]\n ExecStart=\n ExecStart=-/sbin/agetty --autologin root --noclear %I $TERM\n path: /etc/systemd/system/serial-getty@ttyS0.service.d/override.conf\n\n# resetting ttys0 so root is logged in\nruncmd:\n - [systemctl, enable, serial-getty@ttyS0.service]\n - [systemctl, restart, serial-getty@ttyS0.service]\n\n\nmanage_etc_hosts: true\n\npackages:\n - gpg\n - curl\n - nscd\n - lvm2\n - parted\n - puppet\n\ngrowpart:\n mode: false\n\n# You'll see that we're setting apt_preserve_sources_list twice here. That's\n# because there's a bug in cloud-init where it tries to reconcile the\n# two settings and if they're different the stage fails. That means that\n# if one of them is set differently from the default (True) then nothing\n# works.\napt_preserve_sources_list: False\napt:\n preserve_sources_list: False\n
```
And here are the errors:
```
2021-02-04 18:08:43,117 - util.py[WARNING]: Failed loading yaml blob. Invalid format at line 4 column 1: "while parsing a block mapping
in "<unicode string>", line 4, column 1:
hostname: {{ds.meta_data.name}}
^
expected <block end>, but found '<scalar>'
in "<unicode string>", line 5, column 28:
fqdn: {{ds.meta_data.name}}.{{ds.meta_data.project_id}}.cod ...
^"
2021-02-04 18:08:43,131 - util.py[WARNING]: Failed loading yaml blob. Invalid format at line 4 column 1: "while parsing a block mapping
in "<unicode string>", line 4, column 1:
hostname: {{ds.meta_data.name}}
^
expected <block end>, but found '<scalar>'
in "<unicode string>", line 5, column 28:
fqdn: {{ds.meta_data.name}}.{{ds.meta_data.project_id}}.cod ...
^"
2021-02-04 18:08:43,131 - util.py[WARNING]: Failed at merging in cloud config part from part-001
```
To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-init/+bug/1914641/+subscriptions
References