project-lakitu: cloud-init: move cloud.cfg to cloud-init-config
add azure specific cloud.cfg
BUG=b/175418043
TEST=presubmit
RELEASE_NOTE=None
Change-Id: I5812d85160e3149b312304635c08e2fba4b2441f
Reviewed-on: https://cos-review.googlesource.com/c/cos/overlays/board-overlays/+/10400
Reviewed-by: Roy Yang <royyang@google.com>
Tested-by: Cusky Presubmit Bot <presubmit@cos-infra-prod.iam.gserviceaccount.com>
diff --git a/project-lakitu/app-emulation/cloud-init-config/cloud-init-config-1.0.0-r1.ebuild b/project-lakitu/app-emulation/cloud-init-config/cloud-init-config-1.0.0-r2.ebuild
similarity index 100%
rename from project-lakitu/app-emulation/cloud-init-config/cloud-init-config-1.0.0-r1.ebuild
rename to project-lakitu/app-emulation/cloud-init-config/cloud-init-config-1.0.0-r2.ebuild
diff --git a/project-lakitu/app-emulation/cloud-init-config/cloud-init-config-1.0.0.ebuild b/project-lakitu/app-emulation/cloud-init-config/cloud-init-config-1.0.0.ebuild
index 8629878..44c9de9 100644
--- a/project-lakitu/app-emulation/cloud-init-config/cloud-init-config-1.0.0.ebuild
+++ b/project-lakitu/app-emulation/cloud-init-config/cloud-init-config-1.0.0.ebuild
@@ -21,6 +21,16 @@
S=${WORKDIR}
src_install() {
+ # override the default cloud.cfg
+ insinto /etc/cloud
+ if use platform_azure; then
+ doins "${FILESDIR}"/azure/cloud.cfg
+ else
+ doins "${FILESDIR}"/cloud.cfg
+ fi
+
+ doins "${FILESDIR}"/ds-identify.cfg
+
insinto /etc/cloud/cloud.cfg.d
if use platform_gcp; then
doins "${FILESDIR}/gcp/10-disable_ssh_publish_hostkeys.cfg"
diff --git a/project-lakitu/app-emulation/cloud-init-config/files/azure/cloud.cfg b/project-lakitu/app-emulation/cloud-init-config/files/azure/cloud.cfg
new file mode 100644
index 0000000..8adbe7c
--- /dev/null
+++ b/project-lakitu/app-emulation/cloud-init-config/files/azure/cloud.cfg
@@ -0,0 +1,71 @@
+# The top level settings are used as module
+# and system configuration.
+
+# If this is set, 'root' will not be able to ssh in and they
+# will get a message to login instead as the above $user (ubuntu)
+disable_root: true
+
+# This will cause the set+update hostname module to not operate (if true)
+preserve_hostname: true
+
+# Example datasource config
+# datasource:
+# Ec2:
+# metadata_urls: [ 'blah.com' ]
+# timeout: 5 # (defaults to 50 seconds)
+# max_wait: 10 # (defaults to 120 seconds)
+
+datasource:
+ Azure:
+ set_hostname: True
+ agent_command: __builtin__
+
+
+# Disable network-config because Lakitu doesn't support any network renders
+# of cloud-init (eni, netplan, sysconfig).
+network:
+ config: disabled
+
+# Lakitu specific: Lakitu has a "stateless" cloud-init, so the following modules
+# are all executed upon reboot. Therefore, the concept of module run frequency
+# in lakitu is different from Ubuntu. There are only two run frequencies "always"
+# and "once" in lakitu. If we rerun cloud-init without rebooting the instance,
+# modules with "always" frequency will be rerun, while modules with "once"
+# frequency will not.
+
+# The modules that run in the 'init' stage
+cloud_init_modules:
+ - [bootcmd, once]
+ - [update_etc_hosts, always]
+ - [users-groups, once]
+ - [write-files, always]
+ - [ssh, once]
+
+# The modules that run in the 'config' stage
+cloud_config_modules:
+ - [mounts, once]
+ - [ssh-import-id, once]
+ - [timezone, once]
+ - [disable-ec2-metadata, always]
+ - [set_hostname, always]
+ - [runcmd, always]
+
+# The modules that run in the 'final' stage
+cloud_final_modules:
+ - [rightscale_userdata, once]
+ - [scripts-vendor, once]
+ - [scripts-per-once, once]
+ - [scripts-per-boot, once]
+ - [scripts-per-instance, once]
+ - [scripts-user, always]
+ - [ssh-authkey-fingerprints, once]
+ - [keys-to-console, once]
+ - [phone-home, once]
+ - [final-message, always]
+
+# System and/or distro specific settings
+# (not accessible to handlers/transforms)
+system_info:
+ paths:
+ cloud_dir: /var/lib/cloud/
+ templates_dir: /etc/cloud/templates/
diff --git a/project-lakitu/app-emulation/cloud-init/files/cloud.cfg b/project-lakitu/app-emulation/cloud-init-config/files/cloud.cfg
similarity index 100%
rename from project-lakitu/app-emulation/cloud-init/files/cloud.cfg
rename to project-lakitu/app-emulation/cloud-init-config/files/cloud.cfg
diff --git a/project-lakitu/app-emulation/cloud-init/files/ds-identify.cfg b/project-lakitu/app-emulation/cloud-init-config/files/ds-identify.cfg
similarity index 100%
rename from project-lakitu/app-emulation/cloud-init/files/ds-identify.cfg
rename to project-lakitu/app-emulation/cloud-init-config/files/ds-identify.cfg
diff --git a/project-lakitu/app-emulation/cloud-init/cloud-init-20.1-r5.ebuild b/project-lakitu/app-emulation/cloud-init/cloud-init-20.1-r6.ebuild
similarity index 100%
rename from project-lakitu/app-emulation/cloud-init/cloud-init-20.1-r5.ebuild
rename to project-lakitu/app-emulation/cloud-init/cloud-init-20.1-r6.ebuild
diff --git a/project-lakitu/app-emulation/cloud-init/cloud-init-20.1.ebuild b/project-lakitu/app-emulation/cloud-init/cloud-init-20.1.ebuild
index 1621c6d..6ede201 100644
--- a/project-lakitu/app-emulation/cloud-init/cloud-init-20.1.ebuild
+++ b/project-lakitu/app-emulation/cloud-init/cloud-init-20.1.ebuild
@@ -95,11 +95,6 @@
}
lakitu_python_install_all() {
- # Overwrite the default cloud.cfg with our customized version.
- insinto /etc/cloud
- doins "${FILESDIR}"/cloud.cfg
- doins "${FILESDIR}"/ds-identify.cfg
-
exeinto /usr/share/cloud
doexe "${FILESDIR}"/rerun-cloudinit.sh
@@ -114,7 +109,6 @@
python_install_all() {
keepdir /etc/cloud
-
distutils-r1_python_install_all
# lakitu: Comment out this because sysvinit scripts are not installed.
@@ -125,7 +119,10 @@
}
pkg_postinst() {
- # [2000, 5000) are reserved for users created by clout-init.
+ # delete the default cloud.cfg to override in the cloud-init-config
+ rm -f -v "${ROOT}/etc/cloud/cloud.cfg"
+
+ # [2000, 5000) are reserved for users created by clout-init.
# Start from 5000 for automatic uid selection in useradd.
sed -i -r 's/^(UID_MIN\s+)1000/\15000/' "${ROOT}"/etc/login.defs