Skip to content

Commit 426b3eb

Browse files
committed
Cloud-init support for LXC containers
1 parent bf5a336 commit 426b3eb

File tree

3 files changed

+42
-0
lines changed

3 files changed

+42
-0
lines changed

lxd-dashboard/backend/lxd/containers.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
$boot_autostart_priority = (isset($_GET['boot_autostart_priority'])) ? filter_var(urldecode($_GET['boot_autostart_priority']), FILTER_SANITIZE_STRING) : "";
5353
$boot_host_shutdown_timeout = (isset($_GET['boot_host_shutdown_timeout'])) ? filter_var(urldecode($_GET['boot_host_shutdown_timeout']), FILTER_SANITIZE_STRING) : "";
5454
$boot_stop_priority = (isset($_GET['boot_stop_priority'])) ? filter_var(urldecode($_GET['boot_stop_priority']), FILTER_SANITIZE_STRING) : "";
55+
$cloud_init_user_data = (isset($_GET['cloud_init_user_data'])) ? filter_var(urldecode($_GET['cloud_init_user_data']), FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES) : "";
5556
$limits_cpu = (isset($_GET['limits_cpu'])) ? filter_var(urldecode($_GET['limits_cpu']), FILTER_SANITIZE_STRING) : "";
5657
$limits_cpu_allowance = (isset($_GET['limits_cpu_allowance'])) ? filter_var(urldecode($_GET['limits_cpu_allowance']), FILTER_SANITIZE_STRING) : "";
5758
$limits_cpu_priority = (isset($_GET['limits_cpu_priority'])) ? filter_var(urldecode($_GET['limits_cpu_priority']), FILTER_SANITIZE_STRING) : "";
@@ -286,6 +287,8 @@
286287
if (!empty($boot_host_shutdown_timeout)){ $instance_array['config']['boot.host_shutdown_timeout'] = $boot_host_shutdown_timeout;}
287288
if (!empty($boot_stop_priority)){ $instance_array['config']['boot.stop.priority'] = $boot_stop_priority;}
288289

290+
if (!empty($cloud_init_user_data)){ $instance_array['config']['cloud-init.user-data'] = $cloud_init_user_data;}
291+
289292
if (!empty($limits_cpu)){ $instance_array['config']['limits.cpu'] = $limits_cpu;}
290293
if (!empty($limits_cpu_allowance)){ $instance_array['config']['limits.cpu.allowance'] = $limits_cpu_allowance;}
291294
if (!empty($limits_cpu_priority)){ $instance_array['config']['limits.cpu.priority'] = $limits_cpu_priority;}

lxd-dashboard/containers-single.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -607,6 +607,25 @@
607607
</div>
608608
</div>
609609
<!-- End Security Syscalls Card -->
610+
611+
<!-- Cloud-Init Card -->
612+
<div class="card col-12 border-0 mb-2">
613+
<!-- Card Header - Dropdown -->
614+
<div class="card-header border-0 bg-transparent py-1 d-flex flex-row align-items-center justify-content-between">
615+
<h5 class="m-0 font-weight-bold text-primary">Cloud-Init</h5>
616+
</div>
617+
<!-- Card Body -->
618+
<div class="card-body pt-1">
619+
<div class="row">
620+
<div class="col-12">
621+
<table class="table table-sm">
622+
<tr><td class="pr-3 font-weight-bold">User-Data:</td> <td><span id="cloudInitUserData"></span></td></tr>
623+
</table>
624+
</div>
625+
</div>
626+
</div>
627+
</div>
628+
<!-- End Security Syscalls Card -->
610629
</div>
611630
</div>
612631
<!-- End Config List -->
@@ -3718,6 +3737,8 @@ function reloadPageContent(){
37183737
if (dataConfig.hasOwnProperty('boot.host_shutdown_timeout')) { $("#bootHostShutdownTimeout").text(dataConfig['boot.host_shutdown_timeout']); } else { $("#bootHostShutdownTimeout").text(""); }
37193738
if (dataConfig.hasOwnProperty('boot.stop.priority')) { $("#bootStopPriority").text(dataConfig['boot.stop.priority']); } else { $("#bootStopPriority").text(""); }
37203739

3740+
if (dataConfig.hasOwnProperty('cloud-init.user-data')) { $("#cloudInitUserData").text(dataConfig['cloud-init.user-data']); } else { $("#cloudInitUserData").text(""); }
3741+
37213742
if (dataConfig.hasOwnProperty('cluster.evacuate')) { $("#clusterEvacuate").text(dataConfig['cluster.evacuate']); } else { $("#clusterEvacuate").text(""); }
37223743

37233744
if (dataConfig.hasOwnProperty('limits.cpu')) { $("#limitsCpu").text(dataConfig['limits.cpu']); } else { $("#limitsCpu").text(""); }

lxd-dashboard/containers.php

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -514,6 +514,7 @@
514514
<a class="nav-link" id="nav-nvidia-tab" data-toggle="tab" href="#nav-nvidia" role="tab" aria-controls="nav-nvidia" aria-selected="false">Nvidia</a>
515515
<a class="nav-link" id="nav-other-tab" data-toggle="tab" href="#nav-other" role="tab" aria-controls="nav-other" aria-selected="false">Other</a>
516516
<a class="nav-link" id="nav-raw-tab" data-toggle="tab" href="#nav-raw" role="tab" aria-controls="nav-raw" aria-selected="false">Raw</a>
517+
<a class="nav-link" id="nav-cloud-init-tab" data-toggle="tab" href="#nav-cloud-init" role="tab" aria-controls="nav-cloud-init" aria-selected="false">Cloud-Init</a>
517518
<a class="nav-link" id="nav-security-tab" data-toggle="tab" href="#nav-security" role="tab" aria-controls="nav-security" aria-selected="false">Security</a>
518519
<a class="nav-link" id="nav-snapshots-tab" data-toggle="tab" href="#nav-snapshots" role="tab" aria-controls="nav-snapshots" aria-selected="false">Snapshots</a>
519520
</div>
@@ -917,6 +918,19 @@
917918
</div>
918919
919920
</div>
921+
<div class="tab-pane fade" id="nav-cloud-init" role="tabpanel" aria-labelledby="nav-cloud-init">
922+
<div class="row">
923+
<label class="col-4 col-form-label text-right">User-Data: </label>
924+
<div class="col-6">
925+
<div class="form-group">
926+
<textarea id="containerCloudInitUserDataInput" class="form-control" name="containerCloudInitUserDataInput"></textarea>
927+
</div>
928+
</div>
929+
<div class="col-1">
930+
<i class="far fa-sm fa-question-circle" title="Enter the user-data configuration for cloud-init. Default: (not set)."></i>
931+
</div>
932+
</div>
933+
</div>
920934
<div class="tab-pane fade" id="nav-security" role="tabpanel" aria-labelledby="nav-security-tab">
921935
<br>
922936
<div class="row">
@@ -1443,6 +1457,8 @@ function createInstanceUsingForm(){
14431457
var bootHostShutdownTimeout = $("#containerBootHostShutdownTimeoutInput").val();
14441458
var bootStopPriority = $("#containerBootStopPriorityInput").val();
14451459
1460+
var cloudInitUserData = $("#containerCloudInitUserDataInput").val();
1461+
14461462
var limitsCpu = $("#containerLimitsCpuInput").val();
14471463
var limitsCpuAllowance = $("#containerLimitsCpuAllowanceInput").val();
14481464
var limitsCpuPriority = $("#containerLimitsCpuPriorityInput").val();
@@ -1516,6 +1532,8 @@ function createInstanceUsingForm(){
15161532
"&boot_host_shutdown_timeout=" + encodeURI(bootHostShutdownTimeout) +
15171533
"&boot_stop_priority=" + encodeURI(bootStopPriority) +
15181534
1535+
"&cloud_init_user_data=" + encodeURIComponent(cloudInitUserData) +
1536+
15191537
"&limits_cpu=" + encodeURI(limitsCpu) +
15201538
"&limits_cpu_allowance=" + encodeURI(limitsCpuAllowance) +
15211539
"&limits_cpu_priority=" + encodeURI(limitsCpuPriority) +

0 commit comments

Comments
 (0)