diff --git a/bootstrap-daemon/pvcbootstrapd.yaml.sample b/bootstrap-daemon/pvcbootstrapd.yaml.sample index 6ba9d91..b5dfacd 100644 --- a/bootstrap-daemon/pvcbootstrapd.yaml.sample +++ b/bootstrap-daemon/pvcbootstrapd.yaml.sample @@ -64,6 +64,9 @@ pvc: # Replace "10.199.199.254" if you change "dhcp" -> "address" above mirror: http://10.199.199.254:3142/ftp.debian.org/debian + # Default Debian release for new clusters. Must be supported by PVC ("buster", "bullseye", "bookworm"). + release: bookworm + # PVC Ansible repository configuration # Note: If "path" does not exist, "remote" will be cloned to it via Git using SSH private key "keyfile". # Note: The VCS will be refreshed regularly via the API in response to webhooks. diff --git a/bootstrap-daemon/pvcbootstrapd.yaml.template b/bootstrap-daemon/pvcbootstrapd.yaml.template index f74c0f8..558948f 100644 --- a/bootstrap-daemon/pvcbootstrapd.yaml.template +++ b/bootstrap-daemon/pvcbootstrapd.yaml.template @@ -23,6 +23,7 @@ pvc: host_path: "ROOT_DIRECTORY/tftp/host" repo: mirror: http://BOOTSTRAP_ADDRESS:3142/UPSTREAM_MIRROR + release: DEBIAN_RELEASE ansible: path: "ROOT_DIRECTORY/repo" keyfile: "ROOT_DIRECTORY/id_ed25519" diff --git a/bootstrap-daemon/pvcbootstrapd/Daemon.py b/bootstrap-daemon/pvcbootstrapd/Daemon.py index f0f053d..dd66c2b 100755 --- a/bootstrap-daemon/pvcbootstrapd/Daemon.py +++ b/bootstrap-daemon/pvcbootstrapd/Daemon.py @@ -180,7 +180,7 @@ def read_config(): ) # Get the Repo configuration - for key in ["mirror"]: + for key in ["mirror", "release"]: try: config[f"repo_{key}"] = o_repo[key] except Exception: diff --git a/bootstrap-daemon/pvcbootstrapd/lib/installer.py b/bootstrap-daemon/pvcbootstrapd/lib/installer.py index 1e79963..f1cbbd7 100755 --- a/bootstrap-daemon/pvcbootstrapd/lib/installer.py +++ b/bootstrap-daemon/pvcbootstrapd/lib/installer.py @@ -66,7 +66,7 @@ def add_preseed(config, cspec_node, host_macaddr, system_drive_target): # We use the dhcp_address here to allow the listen_address to be 0.0.0.0 rendered = template.render( - debrelease=cspec_node.get("config", {}).get("release"), + debrelease=config.get("repo_release"), debmirror=config.get("repo_mirror"), addpkglist=add_packages, filesystem=cspec_node.get("config", {}).get("filesystem"), diff --git a/install-pvcbootstrapd.sh b/install-pvcbootstrapd.sh index 0b0948d..5333bbc 100755 --- a/install-pvcbootstrapd.sh +++ b/install-pvcbootstrapd.sh @@ -103,6 +103,14 @@ if [[ -z ${upstream_mirror} ]]; then fi echo +echo "Please enter the default Debian release for new clusters (e.g. 'bullseye', 'bookworm'):" +echo -n "[bookworm] > " +read debian_release +if [[ -z ${debian_release} ]]; then + debian_release="bookworm" +fi +echo + echo "Proceeding with setup!" echo @@ -147,6 +155,7 @@ sed -i "s|BOOTSTRAP_DHCPEND|${bootstrap_dhcpend}|" ${root_directory}/pvcbootstra sed -i "s|GIT_REMOTE|${git_remote}|" ${root_directory}/pvcbootstrapd/pvcbootstrapd.yaml sed -i "s|GIT_BRANCH|${git_branch}|" ${root_directory}/pvcbootstrapd/pvcbootstrapd.yaml sed -i "s|UPSTREAM_MIRROR|${upstream_mirror}|" ${root_directory}/pvcbootstrapd/pvcbootstrapd.yaml +sed -i "s|DEBIAN_RELEASE|${debian_release}|" ${root_directory}/pvcbootstrapd/pvcbootstrapd.yaml echo "Creating network configuration for interface ${bootstrap_interface} (is vLAN? ${is_bootstrap_interface_vlan})..." if [[ "${is_bootstrap_interface_vlan}" == "yes" ]]; then