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