curtin/maas don't support multiple (derived) archives/repositories with custom keys
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
| MAAS |
Wishlist
|
Unassigned | ||
| 1.9 |
Undecided
|
Unassigned | ||
| cloud-init |
Medium
|
Unassigned | ||
| curtin |
Medium
|
Christian Ehrhardt | ||
| cloud-init (Ubuntu) |
Medium
|
Unassigned | ||
| Xenial |
Medium
|
Scott Moser | ||
| curtin (Ubuntu) |
Undecided
|
Unassigned | ||
| Xenial |
Undecided
|
Unassigned |
Bug Description
[Impact]
* Curtin doesn't support multiple derived archive/
custom keys as typically deployed in an offline Landscape deployment.
Adding the custom key resulted in an error when processing the
apt_source configuration as provided in this setup.
Curtin has been updated to support the updated apt-source model
implemented in cloud-init as well. Together the existing Landscape
deployments for offline users can now supply an apt-source config
that updates curtin to use the specified derived repository with a
custom key.
[Test Case]
* Install proposed curtin package and deploy a system behind a
Landscape Offline configuration with a derived repo.
PASS: Curtin will successfully accept the derived repo and install the
system from the specified apt repository.
FAIL: Curtin will fail to install the OS with an error like:
W: GPG error: http://
The following signatures couldn't be verified because the public key
is not available: NO_PUBKEY 2C6F2731D2B38BD3
E: There are problems and -y was used without --force-yes
Unexpected error while running command.
Command: ['chroot', '/tmp/tmpcEfTLw
'lvm2', 'ifenslave']
Exit code: 100
[Regression Potential]
* Other users of previous curtin 'apt_source' configurations may not
continue to work without re-formatting the apt_source configuration.
[Original Description]
In a customer environment I have to deploy using offline resources (no internet connection at all), so I created apt mirror and MAAS images mirror. I configured MAAS to use the local mirrors and I'm able to commission the nodes but I'm not able to deploy the nodes because there is no way to add gpg key of the local repo in target before the 'late' stage'.
Using curtin I'm able to add the key but too late, in fact according with http://
I checked also apt_config function in curthooks.py I did't see code that add the key for each mirror.
It should be possible to add gpg public of the repository in maas.
-------
configs/
-------
#cloud-config
debconf_selections:
maas: |
cloud-init cloud-init/
cloud-init cloud-init/
cloud-init cloud-init/
cloud-init cloud-init/
late_commands:
maas: [wget, '--no-proxy', 'http://
apt_key: ["curtin", "in-target", "--", "sh", "-c", "/usr/bin/wget --no-proxy -qO - http://
power_state:
mode: reboot
apt_mirrors:
ubuntu_archive: http://
ubuntu_security: http://
----- curtin end of log ------
Leaving 'diversion of /etc/init/
Setting up swapspace version 1, size = 8388604 KiB
no label, UUID=e2fe91bc-
Get:1 http://
Get:2 http://
Get:3 http://
Ign http://
Get:4 http://
Ign http://
Ign http://
Get:5 http://
Get:6 http://
Get:7 http://
Get:8 http://
Get:9 http://
Get:10 http://
Get:11 http://
Get:12 http://
Get:13 http://
Get:14 http://
Get:15 http://
Fetched 505 kB in 0s (3,772 kB/s)
Reading package lists...
W: GPG error: http://
W: GPG error: http://
W: GPG error: http://
Reading package lists...
Building dependency tree...
Reading state information...
The following extra packages will be installed:
libdevmapper-
Suggested packages:
thin-
The following NEW packages will be installed:
ifenslave libdevmapper-
0 upgraded, 5 newly installed, 0 to remove and 10 not upgraded.
Need to get 635 kB of archives.
After this operation, 1,885 kB of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
libdevmapper-
E: There are problems and -y was used without --force-yes
Unexpected error while running command.
Command: ['chroot', '/tmp/tmpcEfTLw
Exit code: 100
Reason: -
Stdout: ''
Stderr: ''
builtin command failed
Installation failed with exception: Unexpected error while running command.
Command: ['curtin', 'curthooks']
Exit code: 3
Reason: -
Stdout: "Leaving 'diversion of /etc/init/
Stderr: ''
failed posting event: finish: cmd-install: FAIL: curtin command install [[http://
Unexpected error while running command.
Command: ['curtin', 'curthooks']
Exit code: 3
Reason: -
Stdout: "Leaving 'diversion of /etc/init/
Stderr: ''
Related branches
- Server Team CI bot: Needs Fixing (continuous-integration) on 2016-04-26
- curtin developers: Pending requested 2016-04-26
-
Diff: 17 lines (+7/-0)1 file modifiedcurtin/commands/curthooks.py (+7/-0)
- Scott Moser: Needs Fixing on 2016-05-24
-
Diff: 1134 lines (+945/-56)6 files modifiedcloudinit/config/cc_apt_configure.py (+82/-32)
cloudinit/templater.py (+5/-0)
cloudinit/util.py (+10/-0)
doc/examples/cloud-config.txt (+131/-24)
tests/unittests/test_handler/test_handler_apt_configure_sources_list.py (+166/-0)
tests/unittests/test_handler/test_handler_apt_source.py (+551/-0)
- Chad Smith (community): Needs Fixing on 2017-06-06
- Hannes: Pending requested 2016-05-30
-
Diff: 51583 lines (+11/-49380) (has conflicts)424 files modified.bzrignore (+0/-4)
ChangeLog (+0/-761)
HACKING.rst (+0/-48)
LICENSE (+0/-674)
MANIFEST.in (+0/-8)
Makefile (+0/-82)
README (+11/-0)
TODO.rst (+0/-43)
bin/cloud-init (+0/-673)
cloudinit/__init__.py (+0/-21)
cloudinit/cloud.py (+0/-109)
cloudinit/config/__init__.py (+0/-58)
cloudinit/config/cc_apt_configure.py (+0/-292)
cloudinit/config/cc_apt_pipelining.py (+0/-57)
cloudinit/config/cc_bootcmd.py (+0/-54)
cloudinit/config/cc_byobu.py (+0/-80)
cloudinit/config/cc_ca_certs.py (+0/-104)
cloudinit/config/cc_chef.py (+0/-342)
cloudinit/config/cc_debug.py (+0/-109)
cloudinit/config/cc_disable_ec2_metadata.py (+0/-36)
cloudinit/config/cc_emit_upstart.py (+0/-69)
cloudinit/config/cc_fan.py (+0/-101)
cloudinit/config/cc_final_message.py (+0/-73)
cloudinit/config/cc_foo.py (+0/-52)
cloudinit/config/cc_growpart.py (+0/-300)
cloudinit/config/cc_grub_dpkg.py (+0/-73)
cloudinit/config/cc_keys_to_console.py (+0/-62)
cloudinit/config/cc_landscape.py (+0/-99)
cloudinit/config/cc_locale.py (+0/-37)
cloudinit/config/cc_lxd.py (+0/-176)
cloudinit/config/cc_mcollective.py (+0/-88)
cloudinit/config/cc_migrator.py (+0/-85)
cloudinit/config/cc_mounts.py (+0/-405)
cloudinit/config/cc_package_update_upgrade_install.py (+0/-99)
cloudinit/config/cc_phone_home.py (+0/-122)
cloudinit/config/cc_power_state_change.py (+0/-223)
cloudinit/config/cc_puppet.py (+0/-118)
cloudinit/config/cc_resizefs.py (+0/-185)
cloudinit/config/cc_resolv_conf.py (+0/-116)
cloudinit/config/cc_rh_subscription.py (+0/-408)
cloudinit/config/cc_rightscale_userdata.py (+0/-102)
cloudinit/config/cc_rsyslog.py (+0/-366)
cloudinit/config/cc_runcmd.py (+0/-38)
cloudinit/config/cc_salt_minion.py (+0/-59)
cloudinit/config/cc_scripts_per_boot.py (+0/-41)
cloudinit/config/cc_scripts_per_instance.py (+0/-41)
cloudinit/config/cc_scripts_per_once.py (+0/-41)
cloudinit/config/cc_scripts_user.py (+0/-42)
cloudinit/config/cc_scripts_vendor.py (+0/-43)
cloudinit/config/cc_seed_random.py (+0/-94)
cloudinit/config/cc_set_hostname.py (+0/-37)
cloudinit/config/cc_set_passwords.py (+0/-167)
cloudinit/config/cc_snappy.py (+0/-304)
cloudinit/config/cc_ssh.py (+0/-142)
cloudinit/config/cc_ssh_authkey_fingerprints.py (+0/-105)
cloudinit/config/cc_ssh_import_id.py (+0/-99)
cloudinit/config/cc_timezone.py (+0/-39)
cloudinit/config/cc_ubuntu_init_switch.py (+0/-162)
cloudinit/config/cc_update_etc_hosts.py (+0/-60)
cloudinit/config/cc_update_hostname.py (+0/-43)
cloudinit/config/cc_users_groups.py (+0/-34)
cloudinit/config/cc_write_files.py (+0/-103)
cloudinit/config/cc_yum_add_repo.py (+0/-107)
cloudinit/cs_utils.py (+0/-105)
cloudinit/distros/__init__.py (+0/-950)
cloudinit/distros/arch.py (+0/-201)
cloudinit/distros/debian.py (+0/-227)
cloudinit/distros/fedora.py (+0/-31)
cloudinit/distros/freebsd.py (+0/-417)
cloudinit/distros/gentoo.py (+0/-160)
cloudinit/distros/net_util.py (+0/-182)
cloudinit/distros/parsers/__init__.py (+0/-28)
cloudinit/distros/parsers/hostname.py (+0/-88)
cloudinit/distros/parsers/hosts.py (+0/-92)
cloudinit/distros/parsers/resolv_conf.py (+0/-169)
cloudinit/distros/parsers/sys_conf.py (+0/-113)
cloudinit/distros/rhel.py (+0/-222)
cloudinit/distros/rhel_util.py (+0/-89)
cloudinit/distros/sles.py (+0/-179)
cloudinit/distros/ubuntu.py (+0/-31)
cloudinit/ec2_utils.py (+0/-201)
cloudinit/filters/__init__.py (+0/-21)
cloudinit/filters/launch_index.py (+0/-75)
cloudinit/handlers/__init__.py (+0/-274)
cloudinit/handlers/boot_hook.py (+0/-70)
cloudinit/handlers/cloud_config.py (+0/-163)
cloudinit/handlers/shell_script.py (+0/-55)
cloudinit/handlers/upstart_job.py (+0/-119)
cloudinit/helpers.py (+0/-458)
cloudinit/importer.py (+0/-58)
cloudinit/log.py (+0/-155)
cloudinit/mergers/__init__.py (+0/-166)
cloudinit/mergers/m_dict.py (+0/-88)
cloudinit/mergers/m_list.py (+0/-89)
cloudinit/mergers/m_str.py (+0/-46)
cloudinit/net/__init__.py (+0/-771)
cloudinit/net/network_state.py (+0/-447)
cloudinit/net/udev.py (+0/-54)
cloudinit/netinfo.py (+0/-249)
cloudinit/patcher.py (+0/-58)
cloudinit/registry.py (+0/-37)
cloudinit/reporting/__init__.py (+0/-42)
cloudinit/reporting/events.py (+0/-248)
cloudinit/reporting/handlers.py (+0/-91)
cloudinit/safeyaml.py (+0/-32)
cloudinit/settings.py (+0/-68)
cloudinit/signal_handler.py (+0/-71)
cloudinit/sources/DataSourceAltCloud.py (+0/-293)
cloudinit/sources/DataSourceAzure.py (+0/-651)
cloudinit/sources/DataSourceBigstep.py (+0/-57)
cloudinit/sources/DataSourceCloudSigma.py (+0/-141)
cloudinit/sources/DataSourceCloudStack.py (+0/-253)
cloudinit/sources/DataSourceConfigDrive.py (+0/-424)
cloudinit/sources/DataSourceDigitalOcean.py (+0/-110)
cloudinit/sources/DataSourceEc2.py (+0/-211)
cloudinit/sources/DataSourceGCE.py (+0/-167)
cloudinit/sources/DataSourceMAAS.py (+0/-353)
cloudinit/sources/DataSourceNoCloud.py (+0/-336)
cloudinit/sources/DataSourceNone.py (+0/-57)
cloudinit/sources/DataSourceOVF.py (+0/-429)
cloudinit/sources/DataSourceOpenNebula.py (+0/-455)
cloudinit/sources/DataSourceOpenStack.py (+0/-173)
cloudinit/sources/DataSourceSmartOS.py (+0/-536)
cloudinit/sources/__init__.py (+0/-337)
cloudinit/sources/helpers/__init__.py (+0/-13)
cloudinit/sources/helpers/azure.py (+0/-279)
cloudinit/sources/helpers/openstack.py (+0/-499)
cloudinit/sources/helpers/vmware/__init__.py (+0/-13)
cloudinit/sources/helpers/vmware/imc/__init__.py (+0/-13)
cloudinit/sources/helpers/vmware/imc/boot_proto.py (+0/-25)
cloudinit/sources/helpers/vmware/imc/config.py (+0/-95)
cloudinit/sources/helpers/vmware/imc/config_file.py (+0/-129)
cloudinit/sources/helpers/vmware/imc/config_namespace.py (+0/-25)
cloudinit/sources/helpers/vmware/imc/config_nic.py (+0/-247)
cloudinit/sources/helpers/vmware/imc/config_source.py (+0/-23)
cloudinit/sources/helpers/vmware/imc/guestcust_error.py (+0/-24)
cloudinit/sources/helpers/vmware/imc/guestcust_event.py (+0/-27)
cloudinit/sources/helpers/vmware/imc/guestcust_state.py (+0/-25)
cloudinit/sources/helpers/vmware/imc/guestcust_util.py (+0/-128)
cloudinit/sources/helpers/vmware/imc/ipv4_mode.py (+0/-45)
cloudinit/sources/helpers/vmware/imc/nic.py (+0/-147)
cloudinit/sources/helpers/vmware/imc/nic_base.py (+0/-154)
cloudinit/ssh_util.py (+0/-314)
cloudinit/stages.py (+0/-844)
cloudinit/templater.py (+0/-149)
cloudinit/type_utils.py (+0/-52)
cloudinit/url_helper.py (+0/-509)
cloudinit/user_data.py (+0/-352)
cloudinit/util.py (+0/-2226)
cloudinit/version.py (+0/-27)
config/cloud.cfg (+0/-115)
config/cloud.cfg-freebsd (+0/-88)
config/cloud.cfg.d/05_logging.cfg (+0/-66)
config/cloud.cfg.d/README (+0/-3)
doc/README (+0/-4)
doc/examples/cloud-config-add-apt-repos.txt (+0/-34)
doc/examples/cloud-config-archive-launch-index.txt (+0/-30)
doc/examples/cloud-config-archive.txt (+0/-16)
doc/examples/cloud-config-boot-cmds.txt (+0/-15)
doc/examples/cloud-config-ca-certs.txt (+0/-31)
doc/examples/cloud-config-chef-oneiric.txt (+0/-90)
doc/examples/cloud-config-chef.txt (+0/-95)
doc/examples/cloud-config-datasources.txt (+0/-73)
doc/examples/cloud-config-disk-setup.txt (+0/-251)
doc/examples/cloud-config-final-message.txt (+0/-7)
doc/examples/cloud-config-gluster.txt (+0/-18)
doc/examples/cloud-config-growpart.txt (+0/-31)
doc/examples/cloud-config-install-packages.txt (+0/-15)
doc/examples/cloud-config-landscape.txt (+0/-22)
doc/examples/cloud-config-launch-index.txt (+0/-23)
doc/examples/cloud-config-lxd.txt (+0/-55)
doc/examples/cloud-config-mcollective.txt (+0/-49)
doc/examples/cloud-config-mount-points.txt (+0/-46)
doc/examples/cloud-config-phone-home.txt (+0/-14)
doc/examples/cloud-config-power-state.txt (+0/-40)
doc/examples/cloud-config-puppet.txt (+0/-51)
doc/examples/cloud-config-reporting.txt (+0/-17)
doc/examples/cloud-config-resolv-conf.txt (+0/-20)
doc/examples/cloud-config-rh_subscription.txt (+0/-49)
doc/examples/cloud-config-rsyslog.txt (+0/-46)
doc/examples/cloud-config-run-cmds.txt (+0/-22)
doc/examples/cloud-config-salt-minion.txt (+0/-53)
doc/examples/cloud-config-seed-random.txt (+0/-32)
doc/examples/cloud-config-ssh-keys.txt (+0/-46)
doc/examples/cloud-config-update-apt.txt (+0/-7)
doc/examples/cloud-config-update-packages.txt (+0/-8)
doc/examples/cloud-config-user-groups.txt (+0/-109)
doc/examples/cloud-config-vendor-data.txt (+0/-16)
doc/examples/cloud-config-write-files.txt (+0/-33)
doc/examples/cloud-config-yum-repo.txt (+0/-20)
doc/examples/cloud-config.txt (+0/-645)
doc/examples/include-once.txt (+0/-7)
doc/examples/include.txt (+0/-5)
doc/examples/kernel-cmdline.txt (+0/-18)
doc/examples/part-handler-v2.txt (+0/-38)
doc/examples/part-handler.txt (+0/-23)
doc/examples/plain-ignored.txt (+0/-2)
doc/examples/seed/README (+0/-22)
doc/examples/seed/meta-data (+0/-30)
doc/examples/seed/user-data (+0/-3)
doc/examples/upstart-cloud-config.txt (+0/-12)
doc/examples/upstart-rclocal.txt (+0/-12)
doc/examples/user-script.txt (+0/-8)
doc/merging.rst (+0/-188)
doc/rtd/conf.py (+0/-77)
doc/rtd/index.rst (+0/-31)
doc/rtd/static/logo.svg (+0/-89)
doc/rtd/topics/availability.rst (+0/-20)
doc/rtd/topics/capabilities.rst (+0/-24)
doc/rtd/topics/datasources.rst (+0/-200)
doc/rtd/topics/dir_layout.rst (+0/-81)
doc/rtd/topics/examples.rst (+0/-133)
doc/rtd/topics/format.rst (+0/-159)
doc/rtd/topics/hacking.rst (+0/-1)
doc/rtd/topics/merging.rst (+0/-5)
doc/rtd/topics/modules.rst (+0/-342)
doc/rtd/topics/moreinfo.rst (+0/-12)
doc/sources/altcloud/README.rst (+0/-87)
doc/sources/azure/README.rst (+0/-134)
doc/sources/cloudsigma/README.rst (+0/-38)
doc/sources/cloudstack/README.rst (+0/-29)
doc/sources/configdrive/README.rst (+0/-123)
doc/sources/digitalocean/README.rst (+0/-21)
doc/sources/kernel-cmdline.txt (+0/-48)
doc/sources/nocloud/README.rst (+0/-71)
doc/sources/opennebula/README.rst (+0/-142)
doc/sources/openstack/README.rst (+0/-24)
doc/sources/ovf/README (+0/-83)
doc/sources/ovf/example/ovf-env.xml (+0/-46)
doc/sources/ovf/example/ubuntu-server.ovf (+0/-130)
doc/sources/ovf/make-iso (+0/-156)
doc/sources/ovf/ovf-env.xml.tmpl (+0/-28)
doc/sources/ovf/ovfdemo.pem (+0/-27)
doc/sources/ovf/user-data (+0/-7)
doc/sources/smartos/README.rst (+0/-149)
doc/status.txt (+0/-53)
doc/userdata.txt (+0/-79)
doc/var-lib-cloud.txt (+0/-63)
doc/vendordata.txt (+0/-53)
packages/bddeb (+0/-260)
packages/brpm (+0/-277)
packages/debian/changelog.in (+0/-6)
packages/debian/cloud-init.postinst (+0/-16)
packages/debian/cloud-init.preinst (+0/-20)
packages/debian/compat (+0/-1)
packages/debian/control.in (+0/-29)
packages/debian/copyright (+0/-29)
packages/debian/dirs (+0/-6)
packages/debian/rules.in (+0/-23)
packages/debian/watch (+0/-2)
packages/redhat/cloud-init.spec.in (+0/-200)
packages/suse/cloud-init.spec.in (+0/-163)
requirements.txt (+0/-36)
setup.py (+0/-215)
systemd/cloud-config.service (+0/-16)
systemd/cloud-config.target (+0/-11)
systemd/cloud-final.service (+0/-17)
systemd/cloud-init-generator (+0/-133)
systemd/cloud-init-local.service (+0/-22)
systemd/cloud-init.service (+0/-18)
systemd/cloud-init.target (+0/-6)
sysvinit/debian/cloud-config (+0/-64)
sysvinit/debian/cloud-final (+0/-66)
sysvinit/debian/cloud-init (+0/-64)
sysvinit/debian/cloud-init-local (+0/-63)
sysvinit/freebsd/cloudconfig (+0/-35)
sysvinit/freebsd/cloudfinal (+0/-35)
sysvinit/freebsd/cloudinit (+0/-35)
sysvinit/freebsd/cloudinitlocal (+0/-35)
sysvinit/gentoo/cloud-config (+0/-13)
sysvinit/gentoo/cloud-final (+0/-11)
sysvinit/gentoo/cloud-init (+0/-12)
sysvinit/gentoo/cloud-init-local (+0/-13)
sysvinit/redhat/cloud-config (+0/-121)
sysvinit/redhat/cloud-final (+0/-121)
sysvinit/redhat/cloud-init (+0/-121)
sysvinit/redhat/cloud-init-local (+0/-124)
templates/chef_client.rb.tmpl (+0/-58)
templates/hosts.debian.tmpl (+0/-26)
templates/hosts.freebsd.tmpl (+0/-24)
templates/hosts.redhat.tmpl (+0/-24)
templates/hosts.suse.tmpl (+0/-26)
templates/resolv.conf.tmpl (+0/-30)
templates/sources.list.debian.tmpl (+0/-32)
templates/sources.list.ubuntu.tmpl (+0/-58)
test-requirements.txt (+0/-17)
tests/configs/sample1.yaml (+0/-52)
tests/data/filter_cloud_multipart.yaml (+0/-30)
tests/data/filter_cloud_multipart_1.email (+0/-11)
tests/data/filter_cloud_multipart_2.email (+0/-39)
tests/data/filter_cloud_multipart_header.email (+0/-11)
tests/data/merge_sources/expected1.yaml (+0/-1)
tests/data/merge_sources/expected10.yaml (+0/-7)
tests/data/merge_sources/expected11.yaml (+0/-5)
tests/data/merge_sources/expected12.yaml (+0/-5)
tests/data/merge_sources/expected2.yaml (+0/-3)
tests/data/merge_sources/expected3.yaml (+0/-1)
tests/data/merge_sources/expected4.yaml (+0/-2)
tests/data/merge_sources/expected5.yaml (+0/-7)
tests/data/merge_sources/expected6.yaml (+0/-9)
tests/data/merge_sources/expected7.yaml (+0/-38)
tests/data/merge_sources/expected8.yaml (+0/-7)
tests/data/merge_sources/expected9.yaml (+0/-5)
tests/data/merge_sources/source1-1.yaml (+0/-3)
tests/data/merge_sources/source1-2.yaml (+0/-5)
tests/data/merge_sources/source10-1.yaml (+0/-6)
tests/data/merge_sources/source10-2.yaml (+0/-6)
tests/data/merge_sources/source11-1.yaml (+0/-5)
tests/data/merge_sources/source11-2.yaml (+0/-3)
tests/data/merge_sources/source11-3.yaml (+0/-3)
tests/data/merge_sources/source12-1.yaml (+0/-8)
tests/data/merge_sources/source12-2.yaml (+0/-5)
tests/data/merge_sources/source2-1.yaml (+0/-6)
tests/data/merge_sources/source2-2.yaml (+0/-5)
tests/data/merge_sources/source3-1.yaml (+0/-4)
tests/data/merge_sources/source3-2.yaml (+0/-4)
tests/data/merge_sources/source4-1.yaml (+0/-3)
tests/data/merge_sources/source4-2.yaml (+0/-6)
tests/data/merge_sources/source5-1.yaml (+0/-6)
tests/data/merge_sources/source5-2.yaml (+0/-8)
tests/data/merge_sources/source6-1.yaml (+0/-5)
tests/data/merge_sources/source6-2.yaml (+0/-8)
tests/data/merge_sources/source7-1.yaml (+0/-27)
tests/data/merge_sources/source7-2.yaml (+0/-17)
tests/data/merge_sources/source8-1.yaml (+0/-7)
tests/data/merge_sources/source8-2.yaml (+0/-6)
tests/data/merge_sources/source9-1.yaml (+0/-5)
tests/data/merge_sources/source9-2.yaml (+0/-6)
tests/data/mountinfo_precise_ext4.txt (+0/-24)
tests/data/mountinfo_raring_btrfs.txt (+0/-13)
tests/data/roots/simple_ubuntu/etc/networks/interfaces (+0/-3)
tests/data/user_data.1.txt (+0/-15)
tests/data/vmware/cust-dhcp-2nic.cfg (+0/-34)
tests/data/vmware/cust-static-2nic.cfg (+0/-39)
tests/unittests/helpers.py (+0/-346)
tests/unittests/test__init__.py (+0/-220)
tests/unittests/test_builtin_handlers.py (+0/-73)
tests/unittests/test_cli.py (+0/-54)
tests/unittests/test_cs_util.py (+0/-84)
tests/unittests/test_data.py (+0/-559)
tests/unittests/test_datasource/test_altcloud.py (+0/-452)
tests/unittests/test_datasource/test_azure.py (+0/-646)
tests/unittests/test_datasource/test_azure_helper.py (+0/-421)
tests/unittests/test_datasource/test_cloudsigma.py (+0/-99)
tests/unittests/test_datasource/test_cloudstack.py (+0/-87)
tests/unittests/test_datasource/test_configdrive.py (+0/-407)
tests/unittests/test_datasource/test_digitalocean.py (+0/-127)
tests/unittests/test_datasource/test_gce.py (+0/-166)
tests/unittests/test_datasource/test_maas.py (+0/-163)
tests/unittests/test_datasource/test_nocloud.py (+0/-187)
tests/unittests/test_datasource/test_opennebula.py (+0/-300)
tests/unittests/test_datasource/test_openstack.py (+0/-347)
tests/unittests/test_datasource/test_smartos.py (+0/-585)
tests/unittests/test_distros/test_generic.py (+0/-233)
tests/unittests/test_distros/test_hostname.py (+0/-38)
tests/unittests/test_distros/test_hosts.py (+0/-41)
tests/unittests/test_distros/test_netconfig.py (+0/-321)
tests/unittests/test_distros/test_resolv.py (+0/-67)
tests/unittests/test_distros/test_sysconfig.py (+0/-82)
tests/unittests/test_distros/test_user_data_normalize.py (+0/-297)
tests/unittests/test_ec2_util.py (+0/-139)
tests/unittests/test_filters/test_launch_index.py (+0/-132)
tests/unittests/test_handler/test_handler_apt_configure.py (+0/-109)
tests/unittests/test_handler/test_handler_ca_certs.py (+0/-271)
tests/unittests/test_handler/test_handler_chef.py (+0/-192)
tests/unittests/test_handler/test_handler_debug.py (+0/-81)
tests/unittests/test_handler/test_handler_disk_setup.py (+0/-30)
tests/unittests/test_handler/test_handler_growpart.py (+0/-220)
tests/unittests/test_handler/test_handler_locale.py (+0/-67)
tests/unittests/test_handler/test_handler_lxd.py (+0/-134)
tests/unittests/test_handler/test_handler_mounts.py (+0/-133)
tests/unittests/test_handler/test_handler_power_state.py (+0/-127)
tests/unittests/test_handler/test_handler_rsyslog.py (+0/-174)
tests/unittests/test_handler/test_handler_seed_random.py (+0/-227)
tests/unittests/test_handler/test_handler_set_hostname.py (+0/-72)
tests/unittests/test_handler/test_handler_snappy.py (+0/-306)
tests/unittests/test_handler/test_handler_timezone.py (+0/-76)
tests/unittests/test_handler/test_handler_write_files.py (+0/-112)
tests/unittests/test_handler/test_handler_yum_add_repo.py (+0/-68)
tests/unittests/test_helpers.py (+0/-33)
tests/unittests/test_merging.py (+0/-257)
tests/unittests/test_net.py (+0/-130)
tests/unittests/test_pathprefix2dict.py (+0/-44)
tests/unittests/test_registry.py (+0/-28)
tests/unittests/test_reporting.py (+0/-369)
tests/unittests/test_rh_subscription.py (+0/-214)
tests/unittests/test_runs/test_merge_run.py (+0/-54)
tests/unittests/test_runs/test_simple_run.py (+0/-81)
tests/unittests/test_sshutil.py (+0/-171)
tests/unittests/test_templating.py (+0/-119)
tests/unittests/test_util.py (+0/-489)
tests/unittests/test_vmware_config_file.py (+0/-103)
tools/21-cloudinit.conf (+0/-6)
tools/Z99-cloud-locale-test.sh (+0/-98)
tools/build-on-freebsd (+0/-66)
tools/ccfg-merge-debug (+0/-90)
tools/cloud-init-per (+0/-60)
tools/hacking.py (+0/-170)
tools/make-dist-tarball (+0/-21)
tools/make-mime.py (+0/-60)
tools/make-tarball (+0/-39)
tools/mock-meta.py (+0/-454)
tools/motd-hook (+0/-35)
tools/read-dependencies (+0/-29)
tools/read-version (+0/-26)
tools/run-pep8 (+0/-22)
tools/run-pyflakes (+0/-18)
tools/run-pyflakes3 (+0/-2)
tools/tox-venv (+0/-42)
tools/uncloud-init (+0/-141)
tools/validate-yaml.py (+0/-25)
tools/write-ssh-key-fingerprints (+0/-38)
tox.ini (+0/-35)
udev/66-azure-ephemeral.rules (+0/-18)
udev/79-cloud-init-net-wait.rules (+0/-10)
udev/cloud-init-wait (+0/-70)
upstart/cloud-config.conf (+0/-9)
upstart/cloud-final.conf (+0/-10)
upstart/cloud-init-blocknet.conf (+0/-83)
upstart/cloud-init-container.conf (+0/-57)
upstart/cloud-init-local.conf (+0/-16)
upstart/cloud-init-nonet.conf (+0/-66)
upstart/cloud-init.conf (+0/-9)
upstart/cloud-log-shutdown.conf (+0/-19)
- JJ Asghar: Pending requested 2015-03-03
- Diff: 0 lines
- Scott Moser: Pending requested 2012-05-08
-
Diff: 3061 lines (+2239/-175)39 files modifiedChangeLog (+39/-9)
cloud-init.py (+31/-1)
cloudinit/CloudConfig/__init__.py (+1/-1)
cloudinit/CloudConfig/cc_apt_pipelining.py (+53/-0)
cloudinit/CloudConfig/cc_ca_certs.py (+3/-1)
cloudinit/CloudConfig/cc_chef.py (+5/-5)
cloudinit/CloudConfig/cc_landscape.py (+5/-0)
cloudinit/CloudConfig/cc_resizefs.py (+31/-12)
cloudinit/CloudConfig/cc_salt_minion.py (+2/-1)
cloudinit/CloudConfig/cc_update_etc_hosts.py (+1/-1)
cloudinit/DataSource.py (+4/-1)
cloudinit/DataSourceCloudStack.py (+92/-0)
cloudinit/DataSourceConfigDrive.py (+231/-0)
cloudinit/DataSourceEc2.py (+2/-84)
cloudinit/DataSourceMAAS.py (+345/-0)
cloudinit/DataSourceNoCloud.py (+75/-2)
cloudinit/DataSourceOVF.py (+1/-1)
cloudinit/SshUtil.py (+2/-0)
cloudinit/UserDataHandler.py (+2/-2)
cloudinit/__init__.py (+44/-9)
cloudinit/netinfo.py (+5/-5)
cloudinit/util.py (+253/-30)
config/cloud.cfg (+3/-1)
debian.trunk/control (+1/-0)
doc/configdrive/README (+118/-0)
doc/examples/cloud-config-chef-oneiric.txt (+90/-0)
doc/examples/cloud-config-chef.txt (+48/-6)
doc/examples/cloud-config-datasources.txt (+18/-0)
doc/examples/cloud-config.txt (+11/-0)
doc/kernel-cmdline.txt (+48/-0)
doc/nocloud/README (+55/-0)
setup.py (+1/-0)
tests/unittests/test__init__.py (+242/-0)
tests/unittests/test_datasource/test_maas.py (+153/-0)
tests/unittests/test_handler/test_handler_ca_certs.py (+4/-0)
tests/unittests/test_userdata.py (+107/-0)
tests/unittests/test_util.py (+18/-2)
tools/Z99-cloud-locale-test.sh (+92/-0)
tools/run-pylint (+3/-1)
- Server Team CI bot: Approve (continuous-integration) on 2016-07-26
- Ryan Harper: Approve on 2016-06-14
-
Diff: 4008 lines (+3551/-146)25 files modifiedcurtin/__init__.py (+2/-0)
curtin/commands/apt_config.py (+691/-0)
curtin/commands/curthooks.py (+11/-135)
curtin/commands/main.py (+1/-1)
curtin/gpg.py (+74/-0)
curtin/util.py (+144/-2)
doc/devel/README-vmtest.txt (+3/-3)
doc/topics/apt_source.rst (+152/-0)
examples/apt-source.yaml (+239/-0)
examples/tests/apt_config_command.yaml (+85/-0)
examples/tests/apt_source_custom.yaml (+97/-0)
examples/tests/apt_source_modify.yaml (+92/-0)
examples/tests/apt_source_modify_arches.yaml (+102/-0)
examples/tests/apt_source_modify_disable_suite.yaml (+92/-0)
examples/tests/apt_source_preserve.yaml (+98/-0)
examples/tests/apt_source_search.yaml (+97/-0)
examples/tests/apt_source_search_dns.yaml (+21/-0)
examples/tests/test_old_apt_features.yaml (+10/-0)
examples/tests/test_old_apt_features_ports.yaml (+10/-0)
tests/unittests/test_apt_custom_sources_list.py (+172/-0)
tests/unittests/test_apt_source.py (+927/-0)
tests/vmtests/__init__.py (+19/-5)
tests/vmtests/test_apt_config_cmd.py (+55/-0)
tests/vmtests/test_apt_source.py (+277/-0)
tests/vmtests/test_old_apt_features.py (+80/-0)
- Scott Moser: Pending requested 2016-10-03
-
Diff: 14513 lines (+10324/-1893)94 files modifiedMakefile (+3/-1)
curtin/__init__.py (+4/-0)
curtin/block/__init__.py (+249/-61)
curtin/block/clear_holders.py (+387/-0)
curtin/block/lvm.py (+96/-0)
curtin/block/mdadm.py (+18/-5)
curtin/block/mkfs.py (+10/-5)
curtin/commands/apply_net.py (+156/-1)
curtin/commands/apt_config.py (+668/-0)
curtin/commands/block_info.py (+75/-0)
curtin/commands/block_meta.py (+134/-263)
curtin/commands/block_wipe.py (+1/-2)
curtin/commands/clear_holders.py (+48/-0)
curtin/commands/curthooks.py (+61/-235)
curtin/commands/main.py (+4/-3)
curtin/config.py (+2/-3)
curtin/gpg.py (+74/-0)
curtin/net/__init__.py (+67/-30)
curtin/net/network_state.py (+45/-1)
curtin/util.py (+278/-81)
debian/changelog (+32/-2)
doc/conf.py (+21/-4)
doc/devel/README-vmtest.txt (+0/-152)
doc/devel/README.txt (+0/-55)
doc/devel/clear_holders_doc.txt (+85/-0)
doc/index.rst (+6/-0)
doc/topics/apt_source.rst (+164/-0)
doc/topics/config.rst (+551/-0)
doc/topics/development.rst (+68/-0)
doc/topics/integration-testing.rst (+245/-0)
doc/topics/networking.rst (+522/-0)
doc/topics/overview.rst (+7/-7)
doc/topics/reporting.rst (+3/-3)
doc/topics/storage.rst (+894/-0)
examples/apt-source.yaml (+267/-0)
examples/network-ipv6-bond-vlan.yaml (+56/-0)
examples/tests/apt_config_command.yaml (+85/-0)
examples/tests/apt_source_custom.yaml (+97/-0)
examples/tests/apt_source_modify.yaml (+92/-0)
examples/tests/apt_source_modify_arches.yaml (+102/-0)
examples/tests/apt_source_modify_disable_suite.yaml (+92/-0)
examples/tests/apt_source_preserve.yaml (+98/-0)
examples/tests/apt_source_search.yaml (+97/-0)
examples/tests/basic.yaml (+5/-1)
examples/tests/basic_network_static_ipv6.yaml (+22/-0)
examples/tests/basic_scsi.yaml (+1/-1)
examples/tests/network_alias.yaml (+125/-0)
examples/tests/network_mtu.yaml (+88/-0)
examples/tests/network_source_ipv6.yaml (+31/-0)
examples/tests/test_old_apt_features.yaml (+11/-0)
examples/tests/test_old_apt_features_ports.yaml (+10/-0)
examples/tests/uefi_basic.yaml (+15/-0)
examples/tests/vlan_network_ipv6.yaml (+92/-0)
setup.py (+2/-2)
tests/unittests/helpers.py (+41/-0)
tests/unittests/test_apt_custom_sources_list.py (+170/-0)
tests/unittests/test_apt_source.py (+1032/-0)
tests/unittests/test_block.py (+210/-0)
tests/unittests/test_block_lvm.py (+94/-0)
tests/unittests/test_block_mdadm.py (+28/-23)
tests/unittests/test_block_mkfs.py (+2/-2)
tests/unittests/test_clear_holders.py (+329/-0)
tests/unittests/test_make_dname.py (+200/-0)
tests/unittests/test_net.py (+54/-13)
tests/unittests/test_util.py (+180/-2)
tests/vmtests/__init__.py (+38/-38)
tests/vmtests/helpers.py (+129/-166)
tests/vmtests/test_apt_config_cmd.py (+55/-0)
tests/vmtests/test_apt_source.py (+238/-0)
tests/vmtests/test_basic.py (+21/-41)
tests/vmtests/test_bcache_basic.py (+5/-8)
tests/vmtests/test_bonding.py (+0/-204)
tests/vmtests/test_lvm.py (+2/-1)
tests/vmtests/test_mdadm_bcache.py (+21/-17)
tests/vmtests/test_multipath.py (+5/-13)
tests/vmtests/test_network.py (+205/-348)
tests/vmtests/test_network_alias.py (+40/-0)
tests/vmtests/test_network_bonding.py (+63/-0)
tests/vmtests/test_network_enisource.py (+91/-0)
tests/vmtests/test_network_ipv6.py (+53/-0)
tests/vmtests/test_network_ipv6_enisource.py (+26/-0)
tests/vmtests/test_network_ipv6_static.py (+42/-0)
tests/vmtests/test_network_ipv6_vlan.py (+34/-0)
tests/vmtests/test_network_mtu.py (+155/-0)
tests/vmtests/test_network_static.py (+44/-0)
tests/vmtests/test_network_vlan.py (+77/-0)
tests/vmtests/test_nvme.py (+2/-3)
tests/vmtests/test_old_apt_features.py (+89/-0)
tests/vmtests/test_raid5_bcache.py (+5/-8)
tests/vmtests/test_uefi_basic.py (+16/-18)
tools/jenkins-runner (+33/-7)
tools/launch (+9/-48)
tools/xkvm (+90/-2)
tox.ini (+30/-13)
description: | updated |
Andres Rodriguez (andreserl) wrote : | #2 |
Also, how did you create your mirror? IIRC, If you create a Ubuntu mirror you should have the keys you need to voerify on the system itself. I'm thinking that the bug here is that your mirror was not set up properly, hence you experience the key issues.
Mike Pontillo (mpontillo) wrote : | #3 |
Why is a separate signing key in use? When I create my mirror, the GPG signatures are inclided as well, and so it verifies properly out-of-the-box. Does the mirror need another signing key because it modifies some official Ubuntu packages? Or can this approach be used?
Paolo de Rosa (paolo-de-rosa) wrote : | #4 |
Hi Andres and Mike,
using early_command it's not an option because in that stage the target (the chrooted image ) is not ready, so using early stage I'm able to add the key in the installing system but not in the chroot system (the real one).
To create the mirror I'm using reprepro, the mirror is well configured but I'm not sure that I can avoid the the signature of Release file.
We are talking about the metadata of the mirror not the packages , I mean the metadata of this mirror (Release InRelease etc) are generated and signed by reprepro, I don't need to sign the packages, there are no changes in the packages.
If there is a way to avoid the signature please let me know, I'm ok with that solution for now.
In later stages we will use landscape to manage the life cycle of the packages and the signature of the packages will be mandatory.
I'm using reprpro because the mirror should be as small as possible in this initial phase, using reprepro I can filter easily the contents of the mirror, it's quite simple to use and stable, but if you have suggestion in order to workaround this problem I'm happy to try valid alternatives.
Andres Rodriguez (andreserl) wrote : | #5 |
Can you please share how was your repo configured/created?
Paolo de Rosa (paolo-de-rosa) wrote : | #6 |
As temporary solution it could be possible to add something like the snippet in the link above ?
http://
thanks
p.
Andres Rodriguez (andreserl) wrote : Re: [Bug 1574113] Re: Deploy fails in an offline environment | #7 |
Hi Paolo,
I will raise this with the curtin team on Monday, but to me it seems like a
mis configuration of the mirror. Again, can you please share how you
created and configured the mirror?
On Sunday, April 24, 2016, Paolo de Rosa <email address hidden>
wrote:
> As temporary solution it could be possible to add something like the
> snippet in the link above ?
>
> http://
>
> thanks
> p.
>
> --
> You received this bug notification because you are subscribed to MAAS.
> https:/
>
> Title:
> Deploy fails in an offline environment
>
> To manage notifications about this bug go to:
> https:/
>
--
Andres Rodriguez (RoAkSoAx)
Ubuntu Server Developer
MSc. Telecom & Networking
Systems Engineer
Yes, I think it would be difficult to support reporepo out-of-the-box unless we can supplement the trusted key in the image.
I have had better luck with full rsync mirrors. Also, apt-mirror or debmirror could be used to create smaller mirrors without changing the signing key, though I don't know how powerful the filtering is if you want to exclude specific debs.
Alternatively you could replace the signed Release and InRelease files in reporepo with the "officially signed" files. They should specify the same packages, so it should work fine as long as the files specified are the same.
Paolo de Rosa (paolo-de-rosa) wrote : | #9 |
Hi Andres,
what do you want to know exactly ?
I'm using reprepro (below the config files) with a gpg key generated ad-hoc and nginx.
What do you exactly expect to be wrong ?
'Release' file is generated by reprepro and it needs to be signed [1], I generated a key that it's not obviously present in the distribution, it has to be imported, so how the key should be imported by apt system ?
Sorry but from 2006 I followed the rules exposed in [1]. I don't know if there is something newer or a different approach in ubuntu. Could you please point me to some docs/specs where I can study how to build a proper apt repository for MAAS ?
[1] https:/
=====
this is the directory layout exposed trough nginx:
root@apt-
conf db dists lists logs pool pubkeys
pubkyes -> the pub gpg key
conf -> config files for reprepro
the private gpg key has been generated and it's available under root user in the keyring for gpgagent.
Some packages have been imported individually not trough 'reprepro update" process, because they are not included by the filter (priority (==required) | priority (==important)).
I also copied these files, how suggested by Mike:
rsync --recursive --times --links --hard-links --delete --delete-after --verbose \
rsync:
/srv/
===== conf/distributions =====
Origin: Ubuntu
Codename: trusty
Description: Ubuntu trusty mirror
Architectures: i386 amd64
Components: main multiverse restricted universe
UDebComponents: main restricted universe multiverse
Contents: .gz
UDebIndices: Packages Release . .gz
Update: - ubuntu-trusty
Log: /srv/repositori
SignWith: D2B38BD3
Origin: Ubuntu
Codename: trusty-updates
Description: Ubuntu trusty updates
Architectures: i386 amd64
Components: main multiverse restricted universe
UDebComponents: main restricted universe multiverse
Contents: .gz
UDebIndices: Packages Release . .gz
Update: - ubuntu-
Log: /srv/repositori
SignWith: D2B38BD3
Origin: Ubuntu
Codename: trusty-security
Description: Ubuntu trusty security
Architectures: i386 amd64
Components: main multiverse restricted universe
UDebComponents: main restricted universe multiverse
Contents: .gz
UDebIndices: Packages Release . .gz
Update: - ubuntu-
Log: /srv/repositori
SignWith: D2B38BD3
===== conf/updates =====
Name: ubuntu-trusty
Method: http://
Components: main multiverse restricted universe
Suite: trusty
UDebComponents: main restricted universe multiverse
Architectures: i386 amd64
FilterFormula: priority (==required) | priority (==important)
VerifyRelease: blindtrust
GetInRelease: no
Name: ubuntu-
Method: http://
Components: main multiverse restricted universe
Suite: trusty-security
UDebComponents: main restricted universe multiverse
Architectures: i386 amd64
FilterFormula: priority (==required) | priority (==important)
VerifyRelease: blindtrust
Name: ubuntu-
Method: http://
Components: main multivers...
Mike Pontillo (mpontillo) wrote : | #10 |
I haven't used reporepo before, but I wonder: if you remove the SignWith line from the configuration, does it retain the existing signatures?
Paolo de Rosa (paolo-de-rosa) wrote : | #11 |
If you remove the SignWith option no signature will be done and we have the same problem. Something like [1] 6 lines of code in curtin should solve the problem for the moment, in this way I can add the gpg key as string in curtin_userdata.
[1] http://
LaMont Jones (lamont) wrote : | #12 |
The only reason to use reprepro would be if you are adding your own packages to the repo. If that is the case, then simply include your key in the appropriate keyring package (ubuntu-
no longer affects: | curtin |
Andres Rodriguez (andreserl) wrote : | #13 |
Hi Paolo,
Based on LaMont's feedback above, the problem you are having is because of the mirror. You've created a new mirror that you signed yourself with a different key, and in reality, it is not an exact copy of the Ubuntu mirror. As such, curtin will fail to verify packages and fail to install.
The options we now have:
1. Create an actual mirror of the archive, to not experience the issues.
2. Find another way how to inject the key via curtin.
I'll mark the MAAS bug as invalid. And re-name this to see if curtin can add or provide some feedback on the second. However, the recommendation is to create a proper mirror of the archive.
Changed in maas: | |
status: | Incomplete → Invalid |
summary: |
- Deploy fails in an offline environment + No way to inject apt archive/mirror key before apt starts processing + packages |
summary: |
- No way to inject apt archive/mirror key before apt starts processing - packages + No way to inject apt archive/mirror key 'in-target' before apt starts + processing packages |
Andres Rodriguez (andreserl) wrote : Re: No way to inject apt archive/mirror key 'in-target' before apt starts processing packages | #14 |
Paolo,
Again, we highly recommend you create a mirror properly to not have this issue, however, Scott Moser suggested this may work if you wanted to inject the key:
# This is an example of a yaml 'anchor' that allows you to reference
# a string which makes typing things more easily read and reduces
# need for escaping. 'myscript' is defined as an anchor here in the
# arbitrarily named 'bucket' and then referenced as the argument to
# sh below via '*myscript'.
bucket:
- &myscript |
echo "hi mom. i'm running in your target"
# curtin's 'curthooks' stage installs packages into the target
# the default entry in this dictionary is:
# builtin: [curtin, curthooks]
#
# entries added to the curthooks_commands dictionary are executed
# in C locale sorted order. So to run before 'builtin', you
# need to start with something before that.
curthooks_commands:
aa_pre_
Changed in curtin: | |
status: | New → Invalid |
LaMont Jones (lamont) wrote : | #15 |
The methods for creating a mirror are well described at https:/
Paolo de Rosa (paolo-de-rosa) wrote : | #16 |
Hi Andres and LaMont,
I think that there is a communication problem , I'm really sorry for my bad English so I'll try to explain again the problem.
As I said before in the posts, I'm not doing a FULL mirror of ubuntu packages. I need to create a PARTIAL mirror of ubuntu packages with only a small subset of packages, as LaMont suggested me I need to install from a DERIVED REPO
Only the minimum packages necessary to install MAAS and the base system, should be present in this new source.
The methods you suggested describe how to create a FULL mirror 926Gb of archive, not what I need.
Thanks a lot for the information and I'll try the solution proposed by Scott Moser
thanks
p.
Mike Pontillo (mpontillo) wrote : | #17 |
Paolo, you can safely *remove* packages from the archive without changing the signature of the release files. You must only re-sign the release files if you are *adding* packages. (the client will get an error if it believes the missing packages exist and tries to download them, but that's a separate problem.)
Ante Karamatić (ivoks) wrote : | #18 |
Andreas, Mike
I strongly disagree about the state of this bug. If MAAS cannot handle custom keys, then we can't use Landscape as an archive backend. https:/
summary: |
- No way to inject apt archive/mirror key 'in-target' before apt starts - processing packages + curtin/maas don't support derived repositories. We need a way to specify + an archive key |
Andres Rodriguez (andreserl) wrote : Re: curtin/maas don't support derived repositories. We need a way to specify an archive key | #19 |
Curtin would need ot support something like:
https:/
And then MAAS add the counter part.
Changed in maas: | |
status: | Invalid → New |
Changed in curtin: | |
status: | Invalid → New |
Changed in maas: | |
importance: | Undecided → High |
Andres Rodriguez (andreserl) wrote : | #20 |
The patch for this:
http://
Changed in maas: | |
importance: | High → Wishlist |
importance: | Wishlist → Critical |
Scott Moser (smoser) wrote : | #21 |
What i'd suggest to do in curtin is
a.) add support for the 'apt_sources' syntax in cloud-init [1], and change that so that it supports keys without a sources (currently the implementation doesn't do that)
b.) allow some config option to provide a template for /etc/apt/
'a' allows adding keys (even to be used by the default repos) and repos.
'b' would allow maas to provide whatever /etc/apt/
i may want to improve the syntax for cloud-init and also improve it there to support a dictionary rather than a list. Dictionaries are easier to "merge", and curtin's config merger has good support for that.
So it might look something like:
apt_sources:
sources:
smppa: source: ppa:smoser
localkey0: key: |
your key here
sources_
some template for sources.list here.
the key thing is that we want to have cloud-init and curtin with the same function.
Changed in maas: | |
milestone: | none → 2.0.0 |
Changed in maas: | |
status: | New → Triaged |
summary: |
- curtin/maas don't support derived repositories. We need a way to specify - an archive key + curtin/maas don't support multiple (derived) archives/repositories with + custom keys |
Changed in maas: | |
milestone: | 2.0.0 → next |
Christian Ehrhardt (paelzer) wrote : | #22 |
Hi,
the cloud init portion that is required for this functionality is ready in a MP at https:/
I think this should get in soon depending on smoser's next review.
IF/WHAT change we need in curtin and/or maas to exploit these has to be discussed - I couldn't reach smoser last Friday - but in the meantime I think that is something to be discussed with the MAAS team ahead of time anyway.
IMHO - given the cloud-init changes, the MAAS/cloud-init preseeds infrastructure could be already enough for any site that wants to use this feature to set it up with keys and custom source.list templates as they need to allow a derived repositories.
@Andres: If you could set up a call with smoser and me that works for you - that would be great.
IIRC you are currently sprinting and I know combining your current TZ and mine in Germany won't leave a lot of options, but I think you have the busiest schedule atm - so you should be scheduling it.
Changed in cloud-init (Ubuntu): | |
status: | New → Triaged |
importance: | Undecided → Medium |
tags: | added: 4010 |
Scott Moser (smoser) wrote : | #23 |
fix-committed in revno 1224.
Changed in cloud-init: | |
status: | New → Fix Committed |
importance: | Undecided → Medium |
Launchpad Janitor (janitor) wrote : | #24 |
This bug was fixed in the package cloud-init - 0.7.7~bzr1227-
---------------
cloud-init (0.7.7~
* New upstream snapshot.
- fix one more unit test to run inside buildd.
-- Scott Moser <email address hidden> Sat, 04 Jun 2016 20:55:07 -0400
Changed in cloud-init (Ubuntu): | |
status: | Triaged → Fix Released |
Christian Ehrhardt (paelzer) wrote : | #25 |
Please be aware of related bug 1589174 that kind of is a post cleanup for the cloud-init portion.
Changed in curtin: | |
status: | New → Confirmed |
assignee: | nobody → ChristianEhrhardt (paelzer) |
importance: | Undecided → Medium |
tags: | added: curtin-sru |
Scott Moser (smoser) wrote : | #26 |
Hello,
An SRU upload of cloud-init for 16.04 that contains a fix for this bug has been made under bug 1595302. Please track that bug if you are interested.
Changed in cloud-init (Ubuntu Xenial): | |
status: | New → In Progress |
assignee: | nobody → Scott Moser (smoser) |
importance: | Undecided → Medium |
Scott Moser (smoser) wrote : | #27 |
fix is now released to xenial under bug 1595302. daily cloud-images with this newer version of cloud-init should appear in the next few days. Any image with a serial number *newer* than 20160707 should have cloud-init at 0.7.7~bzr1246-
Changed in cloud-init (Ubuntu Xenial): | |
status: | In Progress → Fix Released |
status: | Fix Released → In Progress |
Scott Moser (smoser) wrote : | #28 |
Please strike that last comment.
this is not appropriately fixed in cloud-init in xenial although a related change did go in.
Scott Moser (smoser) wrote : | #29 |
This is fixed in cloud-init 0.7.7
Changed in cloud-init: | |
status: | Fix Committed → Fix Released |
Changed in curtin: | |
status: | Confirmed → Fix Committed |
Scott Moser (smoser) wrote : | #30 |
This is in xenial SRU at the moment.
see package version 0.7.7-31-
Changed in cloud-init (Ubuntu Xenial): | |
status: | In Progress → Fix Committed |
Changed in maas: | |
milestone: | next → 2.1.0 |
importance: | Critical → Wishlist |
status: | Triaged → Fix Released |
description: | updated |
Hello Paolo, or anyone else affected,
Accepted curtin into xenial-proposed. The package will build now and be available at https:/
Please help us by testing this new package. See https:/
If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-
Further information regarding the verification process can be found at https:/
tags: | added: verification-needed |
Changed in curtin (Ubuntu Xenial): | |
status: | New → Fix Committed |
Changed in curtin (Ubuntu): | |
status: | New → Fix Released |
Andres Rodriguez (andreserl) wrote : | #32 |
Verified, marking as verification-done
tags: |
added: verification-done removed: verification-needed |
Launchpad Janitor (janitor) wrote : | #33 |
This bug was fixed in the package curtin - 0.1.0~bzr425-
---------------
curtin (0.1.0~
[ Scott Moser ]
* debian/
[ Ryan Harper ]
* New upstream snapshot.
- unittest,tox.ini: catch and fix issue with trusty-level mock of open
- block/mdadm: add option to ignore mdadm_assemble errors (LP: #1618429)
- curtin/doc: overhaul curtin documentation for readthedocs.org
(LP: #1351085)
- curtin.util: re-add support for RunInChroot (LP: #1617375)
- curtin/net: overhaul of eni rendering to handle mixed ipv4/ipv6 configs
- curtin.block: refactor clear_holders logic into block.clear_holders and
cli cmd
- curtin.apply_net should exit non-zero upon exception. (LP: #1615780)
- apt: fix bug in disable_suites if sources.list line is blank.
- vmtests: disable Wily in vmtests
- Fix the unittests for test_apt_source.
- get CURTIN_
- fix vmtest check_file_
- fix whitespace damage in tests/vmtests/
- fix dpkg-reconfigure when debconf_selections was provided.
(LP: #1609614)
- fix apt tests on non-intel arch
- Add apt features to curtin. (LP: #1574113)
- vmtest: easier use of parallel and controlling timeouts
- mkfs.vfat: add force flag for formating whole disks (LP: #1597923)
- block.mkfs: fix sectorsize flag (LP: #1597522)
- block_meta: cleanup use of sys_block_path and handle cciss knames
(LP: #1562249)
- block.get_
(LP: #1598310)
- util: add target (chroot) support to subp, add target_path helper.
- block_meta: fallback to parted if blkid does not produce output
(LP: #1524031)
- commands.
- tox.ini: run coverage normally rather than separately
- move uefi boot knowledge from launch and vmtest to xkvm
-- Ryan Harper <email address hidden> Mon, 03 Oct 2016 13:43:54 -0500
Changed in curtin (Ubuntu Xenial): | |
status: | Fix Committed → Fix Released |
Martin Pitt (pitti) wrote : Update Released | #34 |
The verification of the Stable Release Update for curtin has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.
Ante Karamatić (ivoks) wrote : | #35 |
Is there any way to use this functionality in 14.04?
Christian Ehrhardt (paelzer) wrote : Re: [Bug 1574113] Re: curtin/maas don't support multiple (derived) archives/repositories with custom keys | #36 |
On Mon, Nov 7, 2016 at 1:08 PM, Ante Karamatić <<email address hidden>
> wrote:
> Is there any way to use this functionality in 14.04?
Hi Ante,
Since it was not targeted, developed nor tested at 14.04 it can not be used
as-is.
But OTOH the code is rather release agnostic, so 14.04 it might still just
work once you have the right curtin/cloud-init bits available.
But to test that is a bit harder than the usual "add a ppa" action.
You'd need to have 14.04 images that MAAS deploys to have the new code as
well as get MAAS to exploit that.
So for the moment, no - there is no way (yet?) to use this in 14.04
This bug is believed to be fixed in curtin in 17.1. If this is still a problem for you, please make a comment and set the state back to New
Thank you.
Changed in curtin: | |
status: | Fix Committed → Fix Released |
HI Paolo,
Why don't you use a 'early_command' instead of 'late_command'?
That being said, even if the key is not available I'd have thought that you would have been able to continue to install, but the two/packages were unauthenticated.