Fix selected namespace when reopening K8s runtime settings

This commit is contained in:
Jonatan Kłosko 2024-10-29 02:07:30 +08:00
parent c14bdb7830
commit 3c9fedbca5
2 changed files with 14 additions and 5 deletions

View file

@ -536,7 +536,6 @@ defmodule LivebookWeb.SessionLive.K8sRuntimeComponent do
def handle_async(:cluster_check, {:ok, results}, socket) do
[access_review_result, namespaces_result] = results
context_namespace = socket.assigns.kubeconfig.current_namespace
access_review_result =
case access_review_result do
@ -549,7 +548,15 @@ defmodule LivebookWeb.SessionLive.K8sRuntimeComponent do
case namespaces_result do
{:ok, namespaces} ->
namespace_options = Enum.map(namespaces, & &1.name)
{:ok, namespace_options, context_namespace || List.first(namespace_options)}
default_namespace =
if socket.assigns.context == socket.assigns.config_defaults["context"] do
socket.assigns.config_defaults["namespace"]
end
context_namespace = socket.assigns.kubeconfig.current_namespace
namespace = default_namespace || context_namespace || List.first(namespace_options)
{:ok, namespace_options, namespace}
{:error, %{status: 403}} ->
# No access to list namespaces, we will show an input instead
@ -768,9 +775,8 @@ defmodule LivebookWeb.SessionLive.K8sRuntimeComponent do
pvc_name: config_defaults["pvc_name"],
docker_tag: config_defaults["docker_tag"]
)
|> set_context(config_defaults["context"])
|> set_namespace(config_defaults["namespace"])
|> set_pod_template(config_defaults["pod_template"])
|> set_context(config_defaults["context"])
end
defp build_config(socket) do

View file

@ -1350,6 +1350,9 @@ defmodule LivebookWeb.SessionLiveTest do
{:ok, view, _} = live(conn, ~p"/sessions/#{session.id}/settings/runtime")
# We load cluster information async, and then run namespace
# checks async, so we need to await async twice
_ = render_async(view)
assert render_async(view) =~ "You can fully customize"
assert view
@ -1439,7 +1442,7 @@ defmodule LivebookWeb.SessionLiveTest do
# Set a different runtime, so there are no defaults
Session.set_runtime(session.pid, Runtime.Standalone.new())
# Open new runtime configuratino
# Open new runtime configuration
{:ok, view, _} = live(conn, ~p"/sessions/#{session.id}/settings/runtime")
view