Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions api/azimuth/cluster_api/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -273,6 +273,7 @@ def _from_api_cluster(self, cluster, sizes):
for ng in cluster.spec.get("nodeGroups", [])
],
cluster.spec["autohealing"],
cluster_addons.get("dashboard", False),
cluster_addons.get("ingress", False),
cluster_addons.get("ingressControllerLoadBalancerIp"),
cluster_addons.get("monitoring", False),
Expand Down Expand Up @@ -382,6 +383,8 @@ def _build_cluster_spec(self, **options):
if "autohealing_enabled" in options:
spec["autohealing"] = options["autohealing_enabled"]
addons = spec.setdefault("addons", {})
if "dashboard_enabled" in options:
addons["dashboard"] = options["dashboard_enabled"]
if "ingress_enabled" in options:
addons["ingress"] = options["ingress_enabled"]
if "ingress_controller_load_balancer_ip" in options:
Expand All @@ -407,6 +410,7 @@ def create_cluster(
node_groups: list[NodeGroupSpec],
resources: scheduling_dto.PlatformResources,
autohealing_enabled: bool = True,
dashboard_enabled: bool = False,
ingress_enabled: bool = False,
ingress_controller_load_balancer_ip: str | None = None,
monitoring_enabled: bool = False,
Expand Down Expand Up @@ -455,6 +459,7 @@ def create_cluster(
control_plane_size=control_plane_size,
node_groups=node_groups,
autohealing_enabled=autohealing_enabled,
dashboard_enabled=dashboard_enabled,
ingress_enabled=ingress_enabled,
ingress_controller_load_balancer_ip=ingress_controller_load_balancer_ip,
monitoring_enabled=monitoring_enabled,
Expand Down
2 changes: 2 additions & 0 deletions api/azimuth/cluster_api/dto.py
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,8 @@ class Cluster:
node_groups: list[NodeGroup]
#: Indicates if autohealing is enabled
autohealing_enabled: bool
#: Indicates if the Headlamp dashboard is enabled
dashboard_enabled: bool
#: Indicates if ingress is enabled
ingress_enabled: bool
#: The IP address of the ingress controller load balancer
Expand Down
2 changes: 2 additions & 0 deletions api/azimuth/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -962,6 +962,7 @@ class CreateKubernetesClusterSerializer(
control_plane_size = serializers.RegexField(ID_REGEX)
node_groups = NodeGroupSpecSerializer(many=True)
autohealing_enabled = serializers.BooleanField(default=True)
dashboard_enabled = serializers.BooleanField(default=False)
ingress_enabled = serializers.BooleanField(default=False)
ingress_controller_load_balancer_ip = serializers.IPAddressField(
protocol="IPv4", allow_null=True, default=None
Expand All @@ -987,6 +988,7 @@ class UpdateKubernetesClusterSerializer(
control_plane_size = serializers.RegexField(ID_REGEX, required=False)
node_groups = NodeGroupSpecSerializer(many=True, required=False)
autohealing_enabled = serializers.BooleanField(required=False)
dashboard_enabled = serializers.BooleanField(required=False)
ingress_enabled = serializers.BooleanField(required=False)
ingress_controller_load_balancer_ip = serializers.IPAddressField(
protocol="IPv4", allow_null=True, required=False
Expand Down
12 changes: 12 additions & 0 deletions ui/src/components/pages/tenancy/platforms/kubernetes/form.js
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,7 @@ const initialState = kubernetesCluster => {
max_count: ng.max_count
})),
autohealing_enabled: kubernetesCluster.autohealing_enabled,
dashboard_enabled: kubernetesCluster.dashboard_enabled,
ingress_enabled: kubernetesCluster.ingress_enabled,
ingress_controller_load_balancer_ip: kubernetesCluster.ingress_controller_load_balancer_ip,
monitoring_enabled: kubernetesCluster.monitoring_enabled,
Expand All @@ -253,6 +254,7 @@ const initialState = kubernetesCluster => {
control_plane_size: '',
node_groups: [],
autohealing_enabled: true,
dashboard_enabled: true,
ingress_enabled: false,
ingress_controller_load_balancer_ip: null,
monitoring_enabled: true,
Expand Down Expand Up @@ -599,6 +601,16 @@ export const KubernetesClusterForm = ({
className="mb-3"
>
<Card.Body className="pb-0">
<Field
name="dashboard_enabled"
helpText="Allows you to view and manage resources in your cluster using a web browser."
>
<BSForm.Check
label="Enable Headlamp Dashboard?"
checked={getStateKey('dashboard_enabled')}
onChange={setStateFromCheckboxEvent('dashboard_enabled')}
/>
</Field>
<Field
name="monitoring_enabled"
helpText="Enables collection of cluster metrics and web-based dashboards for visualisation."
Expand Down
Loading