This bug was fixed in the package cloud-init -
0.7.8-1-g3705bb5-0ubuntu1~16.04.1

---------------
cloud-init (0.7.8-1-g3705bb5-0ubuntu1~16.04.1) xenial-proposed; urgency=medium

  * New upstream release 0.7.8.
  * New upstream snapshot.
    - systemd: put cloud-init.target After multi-user.target (LP: #1623868)

cloud-init (0.7.7-31-g65ace7b-0ubuntu1~16.04.2) xenial-proposed;
urgency=medium

  * debian/control: add Breaks of older versions of walinuxagent (LP:
#1623570)

cloud-init (0.7.7-31-g65ace7b-0ubuntu1~16.04.1) xenial-proposed;
urgency=medium

  * debian/control: fix missing dependency on python3-serial,
    and make SmartOS datasource work.
  * debian/cloud-init.templates fix capitalisation in template so
    dpkg-reconfigure works to select OpenStack. (LP: #1575727)
  * d/README.source, d/control, d/new-upstream-snapshot, d/rules: sync
    with yakkety for changes due to move to git.
  * d/rules: change PYVER=python3 to PYVER=3 to adjust to upstream change.
  * debian/rules, debian/cloud-init.install: remove install file
    to ensure expected files are collected into cloud-init deb.
    (LP: #1615745)
  * debian/dirs: remove obsolete / unused file.
  * upstream move from bzr to git.
  * New upstream snapshot.
    - Allow link type of null in network_data.json [Jon Grimm] (LP: #1621968)
    - DataSourceOVF: fix user-data as base64 with python3 (LP: #1619394)
    - remove obsolete .bzrignore
    - systemd: Better support package and upgrade. (LP: #1576692, #1621336)
    - tests: cleanup tempdirs in apt_source tests
    - apt config conversion: treat empty string as not provided. (LP: #1621180)
    - Fix typo in default keys for phone_home [Roland Sommer] (LP: #1607810)
    - salt minion: update default pki directory for newer salt minion.
      (LP: #1609899)
    - bddeb: add --release flag to specify the release in changelog.
    - apt-config: allow both old and new format to be present.
      [Christian Ehrhardt] (LP: #1616831)
    - python2.6: fix dict comprehension usage in _lsb_release. [Joshua Harlow]
    - Add a module that can configure spacewalk. [Joshua Harlow]
    - add install option for openrc [Matthew Thode]
    - Generate a dummy bond name for OpenStack (LP: #1605749)
    - network: fix get_interface_mac for bond slave, read_sys_net for ENOTDIR
    - azure dhclient-hook cleanups
    - Minor cleanups to atomic_helper and add unit tests.
    - Fix Gentoo net config generation [Matthew Thode]
    - distros: fix get_primary_arch method use of os.uname [Andrew Jorgensen]
    - Apt: add new apt configuration format [Christian Ehrhardt]
    - Get Azure endpoint server from DHCP client [Brent Baude]
    - DigitalOcean: use the v1.json endpoint [Ben Howard]
    - MAAS: add vendor-data support (LP: #1612313)
    - Upgrade to a configobj package new enough to work [Joshua Harlow]
    - ConfigDrive: recognize 'tap' as a link type. (LP: #1610784)
    - NoCloud: fix bug providing network-interfaces via meta-data.
      (LP: 1577982)
    - Add distro tags on config modules that should have it [Joshua Harlow]
    - ChangeLog: update changelog for previous commit.
    - add ntp config module [Ryan Harper]
    - SmartOS: more improvements for network configuration
    - tools/read-version: update to address change in version
    - make-tarball: older versions of git with --format=tar.
    - read-version: do not attempt git-describe if no git.
    - Newer requests have strong type validation [Joshua Harlow]
    - For upstream snapshot versions do not modify git-describe output.
    - adjust signal_handler for version changes.
    - revert unintended change to ubuntu sources list
    - drop modification of version during make-tarball, tools changes.
    - adjust tools and version information.
    - Update build tools to work with git [Lars Kellogg-Stedman]
    - fix pep8 errors in mcollective unit tests
    - mcollective: add tests, cleanups and bug fix when no config in /etc.

 -- Scott Moser <smo...@ubuntu.com>  Thu, 15 Sep 2016 09:57:27 -0400

** Changed in: cloud-init (Ubuntu Xenial)
       Status: Fix Committed => Fix Released

-- 
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/1609899

Title:
  salt minion module writes minion keys to the wrong directory

Status in cloud-init:
  Fix Released
Status in cloud-init package in Ubuntu:
  Fix Released
Status in cloud-init source package in Xenial:
  Fix Released

Bug description:
  ==== Begin SRU Template ====
  [Impact] 
  Salt minion config module of cloud-init would not work by default
  if 'public_key' and 'private_key' were provided.

  [Test Case]
  ## Recreate failure
  $ cat >user-data <<EOF
  #cloud-config
  salt_minion:
    public_key: "foo public"
    private_key: "foo private"
  EOF

  $ lxc launch ubuntu-daily:xenial x1 "--config=user.user-data=$(cat user-data)"
  $ lxc exec x1 -- grep salt/pki/ /var/log/cloud-init.log
  Sep 13 21:04:55 ubuntu [CLOUDINIT] util.py[DEBUG]: Writing to 
/etc/salt/pki/minion.pub - wb: [420] 10 bytes
  Sep 13 21:04:55 ubuntu [CLOUDINIT] util.py[DEBUG]: Writing to 
/etc/salt/pki/minion.pem - wb: [420] 11 bytes

  ## Note, that ubuntu's packaging actuall moves these files to their proper
  ## location, so checking the log is all we can do to show failure.

  ## Now update container, clean and reboot to show first boot 
  $ lxc exec x1 -- sh -c '
      p=/etc/apt/sources.list.d/proposed.list
      echo deb http://archive.ubuntu.com/ubuntu xenial-proposed main > "$p" &&
      apt-get update -q && apt-get -qy install cloud-init'
  $ lxc exec x1 -- sh -c 'apt-get -qy --purge remove salt-minion && rm -Rf 
/etc/salt'
  $ lxc exec x1 -- sh -c '
      cd /var/lib/cloud && for d in *; do [ "$d" = "seed" ] || rm -Rf "$d"; done
      rm -Rf /var/log/cloud-init*'

  $ lxc exec x1 reboot

  $ lxc exec x1 -- grep salt/pki/ /var/log/cloud-init.log
  Sep 13 21:10:52 x1 [CLOUDINIT] util.py[DEBUG]: Writing to 
/etc/salt/pki/minion/minion.pub - wb: [420] 10 bytes
  Sep 13 21:10:52 x1 [CLOUDINIT] util.py[DEBUG]: Writing to 
/etc/salt/pki/minion/minion.pem - wb: [420] 11 bytes

  [Regression Potential] 
  Low chance for regression, especially since the packaging does the right 
thing.
  ==== End SRU Template ====

  
  Cloud-init's salt minion module writes minion.pem, and minion.pub to the 
wrong directory. Salt-minion expects them in /etc/salt/pki/minion, but 
/etc/salt/pki is used by cloud-init's salt minion module. Somehow in the past 
this worked out, and the files would be moved to /etc/salt/pki/minion. This 
part I don't understand, but currently on Ubuntu 16.04 Xenial with cloud-init 
0.7.7 it doesn't work out. What happens is cloud-init writes to /etc/salt/pki, 
and salt-minion ignores the /etc/salt/pki files and writes it's own 
/etc/salt/pki/minion files. This results in the salt minion generated keys 
being rejected by the salt master.

  Current:
  pki_dir = salt_cfg.get('pki_dir', '/etc/salt/pki')

  Fixed:
  pki_dir = salt_cfg.get('pki_dir', '/etc/salt/pki/minion')

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

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to