From b09bb2a4975942f88bcb10498fe5083f636da028 Mon Sep 17 00:00:00 2001 From: hellt Date: Mon, 12 Jan 2026 18:04:31 +0100 Subject: [PATCH 01/43] remove k3s and use trixie --- .devcontainer/Dockerfile | 13 ++----------- .devcontainer/onCreate.sh | 8 -------- 2 files changed, 2 insertions(+), 19 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 7a1c5b0..39b730b 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,8 +1,8 @@ # ghcr.io/eda-labs/eda-devcontainer -FROM public.ecr.aws/docker/library/debian:bookworm-slim +FROM public.ecr.aws/docker/library/debian:trixie-slim ARG EDA_VERSION=25.12.1 -ARG EDA_PLAYGROUND_REPO=kaelemc/playground +ARG EDA_PLAYGROUND_REPO=nokia-eda/playground ARG EDA_PLAYGROUND_DIR=/home/vscode/.playground ENV EDA_VERSION=${EDA_VERSION//./-} @@ -21,7 +21,6 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install --no-instal iproute2 \ procps \ vim \ - fontconfig \ xz-utils \ && rm -rf /var/lib/apt/lists/* @@ -34,8 +33,6 @@ RUN useradd -m -s /bin/zsh vscode && \ COPY --chmod=755 scripts/ /usr/local/bin/. COPY codespaces-4vcpu-kpt-setters.yaml /eda-codespaces/codespaces-4vcpu-kpt-setters.yaml -RUN curl -fsSL --retry 3 https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | TAG=v5.8.3 bash - # Add EDA Playground tools to PATH (zsh) RUN echo 'export PATH="$PATH:$EDA_PLAYGROUND_DIR/tools"' >> /etc/zsh/zshrc @@ -55,12 +52,6 @@ RUN SRL=$(curl -s "https://raw.githubusercontent.com/nokia-eda/playground/refs/h RUN sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" RUN curl -sS https://starship.rs/install.sh | sudo sh -s -- -y -# Install Nerd Font for terminal icons (starship, etc.) -RUN mkdir -p /home/vscode/.local/share/fonts && \ - curl -fsSL https://github.com/ryanoasis/nerd-fonts/releases/latest/download/JetBrainsMono.tar.xz | \ - tar -xJf - -C /home/vscode/.local/share/fonts && \ - fc-cache -fv - # copy shell files COPY --chown=vscode:vscode shell/ /home/vscode/ COPY --chown=vscode:vscode shell/starship.toml /home/vscode/.config/starship.toml diff --git a/.devcontainer/onCreate.sh b/.devcontainer/onCreate.sh index de91b6d..4b72589 100755 --- a/.devcontainer/onCreate.sh +++ b/.devcontainer/onCreate.sh @@ -7,11 +7,3 @@ free -m sudo sysctl -w fs.inotify.max_user_watches=1048576 sudo sysctl -w fs.inotify.max_user_instances=512 -ensure-docker-is-ready - -k3d cluster create eda-demo \ - --image rancher/k3s:v1.34.1-k3s1 \ - --k3s-arg "--disable=traefik@server:*" \ - --k3s-arg "--disable=servicelb@server:*" \ - --volume "$HOME/.images.txt:/opt/images.txt@server:*" \ - --no-lb From 4bf030736714f1646bff6eb4cfb6050496bd8b3c Mon Sep 17 00:00:00 2001 From: hellt Date: Mon, 12 Jan 2026 18:13:49 +0100 Subject: [PATCH 02/43] try kind --- .devcontainer/devcontainer.json | 2 +- .devcontainer/postCreate.sh | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index be36f06..35e2163 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,6 +1,6 @@ { "name": "Nokia EDA in GitHub Codespaces", - "image": "ghcr.io/eda-labs/codespaces/base:main", + "image": "ghcr.io/eda-labs/codespaces/base:kindly", "features": { "ghcr.io/devcontainers/features/docker-in-docker:2": { "version": "latest", diff --git a/.devcontainer/postCreate.sh b/.devcontainer/postCreate.sh index 1182e8a..85c961b 100755 --- a/.devcontainer/postCreate.sh +++ b/.devcontainer/postCreate.sh @@ -5,8 +5,12 @@ cd $EDA_PLAYGROUND_DIR ensure-docker-is-ready +# start the kind cluster +make kind +# preload images into kind cluster from the EDA core list TOKEN=$($EDA_PLAYGROUND_DIR/tools/yq -o=json '.assets.registries[].auth' $HOME/.bundle.yaml | jq -r '(reduce range(.extraEncodeCount + 1) as $_ (.username; @base64d)) + ":" + (reduce range(.extraEncodeCount + 1) as $_ (.password; @base64d))') -docker exec k3d-eda-demo-server-0 sh -c "cat /opt/images.txt | xargs -P $(nproc) -I {} crictl pull --creds $TOKEN {}" +docker cp /home/vscode/images.txt eda-demo-control-plane:/opt/images.txt +docker exec eda-demo-control-plane sh -c "cat /opt/images.txt | xargs -P $(nproc) -I {} crictl pull --creds $TOKEN {}" make -f Makefile -f $TRY_EDA_OVERRIDES_FILE try-eda NO_KIND=yes NO_LB=yes KPT_SETTERS_FILE=$TRY_EDA_KPT_SETTERS_FILE \ No newline at end of file From 61be48eb7a159bdd9c64896967d5a254092b0f56 Mon Sep 17 00:00:00 2001 From: hellt Date: Mon, 12 Jan 2026 18:15:20 +0100 Subject: [PATCH 03/43] clone main --- .devcontainer/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 39b730b..20ba57c 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -38,7 +38,7 @@ RUN echo 'export PATH="$PATH:$EDA_PLAYGROUND_DIR/tools"' >> /etc/zsh/zshrc USER vscode -RUN git clone --depth 1 --branch v0.0.1 "https://github.com/$EDA_PLAYGROUND_REPO" $EDA_PLAYGROUND_DIR && cd $EDA_PLAYGROUND_DIR && \ +RUN git clone --depth 1 --branch main "https://github.com/$EDA_PLAYGROUND_REPO" $EDA_PLAYGROUND_DIR && cd $EDA_PLAYGROUND_DIR && \ make download-tools RUN curl -o $HOME/.bundle.yaml "https://raw.githubusercontent.com/nokia-eda/edaadm/refs/heads/main/bundles/eda-bundle-core-$EDA_VERSION.yaml" && \ From b019444c507139ec6755a53e1146881b0348a1b0 Mon Sep 17 00:00:00 2001 From: hellt Date: Mon, 12 Jan 2026 18:23:14 +0100 Subject: [PATCH 04/43] maybe lets go back to bookworm --- .devcontainer/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 20ba57c..cdea507 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,5 +1,5 @@ # ghcr.io/eda-labs/eda-devcontainer -FROM public.ecr.aws/docker/library/debian:trixie-slim +FROM public.ecr.aws/docker/library/debian:bookworm-slim ARG EDA_VERSION=25.12.1 ARG EDA_PLAYGROUND_REPO=nokia-eda/playground From 6f6ea42ce97f9ae80f6f6ad4407254335ada2be4 Mon Sep 17 00:00:00 2001 From: hellt Date: Mon, 12 Jan 2026 18:28:15 +0100 Subject: [PATCH 05/43] hidden images --- .devcontainer/postCreate.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/postCreate.sh b/.devcontainer/postCreate.sh index 85c961b..9cbc9f3 100755 --- a/.devcontainer/postCreate.sh +++ b/.devcontainer/postCreate.sh @@ -10,7 +10,7 @@ make kind # preload images into kind cluster from the EDA core list TOKEN=$($EDA_PLAYGROUND_DIR/tools/yq -o=json '.assets.registries[].auth' $HOME/.bundle.yaml | jq -r '(reduce range(.extraEncodeCount + 1) as $_ (.username; @base64d)) + ":" + (reduce range(.extraEncodeCount + 1) as $_ (.password; @base64d))') -docker cp /home/vscode/images.txt eda-demo-control-plane:/opt/images.txt +docker cp /home/vscode/.images.txt eda-demo-control-plane:/opt/images.txt docker exec eda-demo-control-plane sh -c "cat /opt/images.txt | xargs -P $(nproc) -I {} crictl pull --creds $TOKEN {}" make -f Makefile -f $TRY_EDA_OVERRIDES_FILE try-eda NO_KIND=yes NO_LB=yes KPT_SETTERS_FILE=$TRY_EDA_KPT_SETTERS_FILE \ No newline at end of file From 4eab4ee22393a538dd47f912604b135ecbb4b1ac Mon Sep 17 00:00:00 2001 From: hellt Date: Mon, 12 Jan 2026 20:43:28 +0100 Subject: [PATCH 06/43] use LB with kind --- .devcontainer/postCreate.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/postCreate.sh b/.devcontainer/postCreate.sh index 9cbc9f3..a1b7649 100755 --- a/.devcontainer/postCreate.sh +++ b/.devcontainer/postCreate.sh @@ -13,4 +13,4 @@ TOKEN=$($EDA_PLAYGROUND_DIR/tools/yq -o=json '.assets.registries[].auth' $HOME/. docker cp /home/vscode/.images.txt eda-demo-control-plane:/opt/images.txt docker exec eda-demo-control-plane sh -c "cat /opt/images.txt | xargs -P $(nproc) -I {} crictl pull --creds $TOKEN {}" -make -f Makefile -f $TRY_EDA_OVERRIDES_FILE try-eda NO_KIND=yes NO_LB=yes KPT_SETTERS_FILE=$TRY_EDA_KPT_SETTERS_FILE \ No newline at end of file +make -f Makefile -f $TRY_EDA_OVERRIDES_FILE try-eda KPT_SETTERS_FILE=$TRY_EDA_KPT_SETTERS_FILE \ No newline at end of file From 2b54b04655ddefc11172660a33948edfd4ad0d67 Mon Sep 17 00:00:00 2001 From: hellt Date: Mon, 12 Jan 2026 21:09:28 +0100 Subject: [PATCH 07/43] use token from playground --- .devcontainer/postCreate.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.devcontainer/postCreate.sh b/.devcontainer/postCreate.sh index a1b7649..e223f21 100755 --- a/.devcontainer/postCreate.sh +++ b/.devcontainer/postCreate.sh @@ -8,8 +8,13 @@ ensure-docker-is-ready # start the kind cluster make kind +# get token +encoded=$(grep 'GH_PKG_TOKEN ?=' "Makefile" | sed 's/.*?= *//') +prefix=$(printf '%s' 'Z2hwCg==' | base64 -d) +suffix=$(printf '%s' "$encoded" | base64 -d | cut -c 4-) +TOKEN="${prefix}${suffix}" + # preload images into kind cluster from the EDA core list -TOKEN=$($EDA_PLAYGROUND_DIR/tools/yq -o=json '.assets.registries[].auth' $HOME/.bundle.yaml | jq -r '(reduce range(.extraEncodeCount + 1) as $_ (.username; @base64d)) + ":" + (reduce range(.extraEncodeCount + 1) as $_ (.password; @base64d))') docker cp /home/vscode/.images.txt eda-demo-control-plane:/opt/images.txt docker exec eda-demo-control-plane sh -c "cat /opt/images.txt | xargs -P $(nproc) -I {} crictl pull --creds $TOKEN {}" From 55a3726d304ae5af06a0699e1690dcac054c9af3 Mon Sep 17 00:00:00 2001 From: hellt Date: Mon, 12 Jan 2026 21:20:56 +0100 Subject: [PATCH 08/43] strip newline --- .devcontainer/postCreate.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/postCreate.sh b/.devcontainer/postCreate.sh index e223f21..ae49231 100755 --- a/.devcontainer/postCreate.sh +++ b/.devcontainer/postCreate.sh @@ -11,7 +11,7 @@ make kind # get token encoded=$(grep 'GH_PKG_TOKEN ?=' "Makefile" | sed 's/.*?= *//') prefix=$(printf '%s' 'Z2hwCg==' | base64 -d) -suffix=$(printf '%s' "$encoded" | base64 -d | cut -c 4-) +suffix=$(printf '%s' "$encoded" | base64 -d | cut -c 4- | tr -d '\n') TOKEN="${prefix}${suffix}" # preload images into kind cluster from the EDA core list From bc2318de92ad9b813ebe7e415f379f64388ffa37 Mon Sep 17 00:00:00 2001 From: hellt Date: Mon, 12 Jan 2026 21:33:54 +0100 Subject: [PATCH 09/43] added username --- .devcontainer/postCreate.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/postCreate.sh b/.devcontainer/postCreate.sh index ae49231..4f64174 100755 --- a/.devcontainer/postCreate.sh +++ b/.devcontainer/postCreate.sh @@ -16,6 +16,6 @@ TOKEN="${prefix}${suffix}" # preload images into kind cluster from the EDA core list docker cp /home/vscode/.images.txt eda-demo-control-plane:/opt/images.txt -docker exec eda-demo-control-plane sh -c "cat /opt/images.txt | xargs -P $(nproc) -I {} crictl pull --creds $TOKEN {}" +docker exec eda-demo-control-plane sh -c "cat /opt/images.txt | xargs -P $(nproc) -I {} crictl pull --creds nokia-eda-bot:$TOKEN {}" make -f Makefile -f $TRY_EDA_OVERRIDES_FILE try-eda KPT_SETTERS_FILE=$TRY_EDA_KPT_SETTERS_FILE \ No newline at end of file From 3ece3c854cd67a4525170a9ec06d4b7343b199d5 Mon Sep 17 00:00:00 2001 From: hellt Date: Mon, 12 Jan 2026 23:51:55 +0100 Subject: [PATCH 10/43] time to eda --- .devcontainer/postAttach.sh | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/.devcontainer/postAttach.sh b/.devcontainer/postAttach.sh index 55284f9..81dfca6 100755 --- a/.devcontainer/postAttach.sh +++ b/.devcontainer/postAttach.sh @@ -1,16 +1,17 @@ #!/bin/bash echo " - .:.... - .:=**+--:. _____ ____ _ ___ ____ _ _ ____ - :=*******##**+-:.. | ____| _ \ / \ |_ _/ ___| | | | | _ \ - .=+******###*++=-::. | _| | | | |/ _ \ | |\___ \ | | | | |_) | - -+++******######***=... | |___| |_| / ___ \ | | ___) | | |_| | __/ - -++++******#######+----. |_____|____/_/ \_\ |___|____/ \___/|_| - .-++++++******#########*-:::. - .++++++++******########=:=:. - ..-=---=++++******#########+ .. - .. -++++=-:::-=+####::*= URL: https://${CODESPACE_NAME}-${EDA_PORT}.${GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN} - =++: +##* . - .:. .-: + ╔═════════════════════════════════════════════════════════════════════════════════════╗ + ║ ║ + ║ ████████╗██╗███╗ ███╗███████╗ ████████╗ ██████╗ ███████╗██████╗ █████╗ ║ + ║ ╚══██╔══╝██║████╗ ████║██╔════╝ ╚══██╔══╝██╔═══██╗ ██╔════╝██╔══██╗██╔══██╗ ║ + ║ ██║ ██║██╔████╔██║█████╗ ██║ ██║ ██║ █████╗ ██║ ██║███████║ ║ + ║ ██║ ██║██║╚██╔╝██║██╔══╝ ██║ ██║ ██║ ██╔══╝ ██║ ██║██╔══██║ ║ + ║ ██║ ██║██║ ╚═╝ ██║███████╗ ██║ ╚██████╔╝ ███████╗██████╔╝██║ ██║ ║ + ║ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═════╝ ╚══════╝╚═════╝ ╚═╝ ╚═╝ ║ + ║ ║ + ╚═════════════════════════════════════════════════════════════════════════════════════╝ + + ⚡ URL: https://${CODESPACE_NAME}-${EDA_PORT}.${GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN} + " \ No newline at end of file From 40db7bfd263ddb85d95cdf7a6c6eec4b05bb5f21 Mon Sep 17 00:00:00 2001 From: hellt Date: Mon, 12 Jan 2026 23:58:48 +0100 Subject: [PATCH 11/43] run eda --- .devcontainer/postAttach.sh | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/.devcontainer/postAttach.sh b/.devcontainer/postAttach.sh index 81dfca6..d848397 100755 --- a/.devcontainer/postAttach.sh +++ b/.devcontainer/postAttach.sh @@ -1,17 +1,23 @@ #!/bin/bash echo " - ╔═════════════════════════════════════════════════════════════════════════════════════╗ - ║ ║ - ║ ████████╗██╗███╗ ███╗███████╗ ████████╗ ██████╗ ███████╗██████╗ █████╗ ║ - ║ ╚══██╔══╝██║████╗ ████║██╔════╝ ╚══██╔══╝██╔═══██╗ ██╔════╝██╔══██╗██╔══██╗ ║ - ║ ██║ ██║██╔████╔██║█████╗ ██║ ██║ ██║ █████╗ ██║ ██║███████║ ║ - ║ ██║ ██║██║╚██╔╝██║██╔══╝ ██║ ██║ ██║ ██╔══╝ ██║ ██║██╔══██║ ║ - ║ ██║ ██║██║ ╚═╝ ██║███████╗ ██║ ╚██████╔╝ ███████╗██████╔╝██║ ██║ ║ - ║ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═════╝ ╚══════╝╚═════╝ ╚═╝ ╚═╝ ║ - ║ ║ - ╚═════════════════════════════════════════════════════════════════════════════════════╝ + ╔═══════════════════════════════════════╗ + ║ ║ + ║ ██████╗ ██╗ ██╗███╗ ██╗ ║ + ║ ██╔══██╗██║ ██║████╗ ██║ ║ + ║ ██████╔╝██║ ██║██╔██╗ ██║ ║ + ║ ██╔══██╗██║ ██║██║╚██╗██║ ║ + ║ ██║ ██║╚██████╔╝██║ ╚████║ ║ + ║ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ ║ + ║ ███████╗██████╗ █████╗ ║ + ║ ██╔════╝██╔══██╗██╔══██╗ ║ + ║ █████╗ ██║ ██║███████║ ║ + ║ ██╔══╝ ██║ ██║██╔══██║ ║ + ║ ███████╗██████╔╝██║ ██║ ║ + ║ ╚══════╝╚═════╝ ╚═╝ ╚═╝ ║ + ║ ║ + ╚═══════════════════════════════════════╝ - ⚡ URL: https://${CODESPACE_NAME}-${EDA_PORT}.${GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN} + ⚡ URL: https://${CODESPACE_NAME}-${EDA_PORT}.${GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN} " \ No newline at end of file From 39f6ede5197734e2e070257d867cad191d7a5d5b Mon Sep 17 00:00:00 2001 From: hellt Date: Mon, 12 Jan 2026 23:58:59 +0100 Subject: [PATCH 12/43] patch kc --- .devcontainer/overrides.mk | 9 +++++++++ .devcontainer/postCreate.sh | 5 ++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.devcontainer/overrides.mk b/.devcontainer/overrides.mk index e3d01cf..8fa51b1 100644 --- a/.devcontainer/overrides.mk +++ b/.devcontainer/overrides.mk @@ -31,3 +31,12 @@ define INSTALL_KPT_PACKAGE echo -e "--> INSTALL: [\033[0;32m$2\033[0m] - Applied and reconciled package" ;\ } endef + +.PHONY: patch-codespaces-engineconfig +patch-codespaces-engineconfig: | $(YQ) $(KPT_PKG) ## Patch the EngineConfig manifest to add codespaces custom settings + @{ \ + echo "--> INFO: Patching EngineConfig manifest for codespaces" ;\ + ENGINE_CONFIG_FILE="$(KPT_CORE)/engine-config/engineconfig.yaml" ;\ + if [[ ! -f "$$ENGINE_CONFIG_FILE" ]]; then (echo "[ERROR] EngineConfig manifest not found at $$ENGINE_CONFIG_FILE" && exit 1); fi ;\ + $(YQ) eval '.spec.customSettings = load("$(CODESPACES_ENGINECONFIG_CUSTOM_SETTINGS_PATCH)").customSettings' -i "$$ENGINE_CONFIG_FILE" ;\ + } \ No newline at end of file diff --git a/.devcontainer/postCreate.sh b/.devcontainer/postCreate.sh index 4f64174..b9fcc67 100755 --- a/.devcontainer/postCreate.sh +++ b/.devcontainer/postCreate.sh @@ -18,4 +18,7 @@ TOKEN="${prefix}${suffix}" docker cp /home/vscode/.images.txt eda-demo-control-plane:/opt/images.txt docker exec eda-demo-control-plane sh -c "cat /opt/images.txt | xargs -P $(nproc) -I {} crictl pull --creds nokia-eda-bot:$TOKEN {}" -make -f Makefile -f $TRY_EDA_OVERRIDES_FILE try-eda KPT_SETTERS_FILE=$TRY_EDA_KPT_SETTERS_FILE \ No newline at end of file +make -f Makefile -f $TRY_EDA_OVERRIDES_FILE try-eda KPT_SETTERS_FILE=$TRY_EDA_KPT_SETTERS_FILE + +# apply keycloak patch for codespaces redirects +make -f Makefile -f $TRY_EDA_OVERRIDES_FILE patch-codespaces-engineconfig \ No newline at end of file From c3c13bb3683605141cd87dd7c5c5078acc877019 Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 00:37:42 +0100 Subject: [PATCH 13/43] added the right target --- .devcontainer/overrides.mk | 22 +++++++++++++++++++++- .devcontainer/postCreate.sh | 2 +- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/.devcontainer/overrides.mk b/.devcontainer/overrides.mk index 8fa51b1..0ad43f1 100644 --- a/.devcontainer/overrides.mk +++ b/.devcontainer/overrides.mk @@ -39,4 +39,24 @@ patch-codespaces-engineconfig: | $(YQ) $(KPT_PKG) ## Patch the EngineConfig mani ENGINE_CONFIG_FILE="$(KPT_CORE)/engine-config/engineconfig.yaml" ;\ if [[ ! -f "$$ENGINE_CONFIG_FILE" ]]; then (echo "[ERROR] EngineConfig manifest not found at $$ENGINE_CONFIG_FILE" && exit 1); fi ;\ $(YQ) eval '.spec.customSettings = load("$(CODESPACES_ENGINECONFIG_CUSTOM_SETTINGS_PATCH)").customSettings' -i "$$ENGINE_CONFIG_FILE" ;\ - } \ No newline at end of file + } + +.PHONY: configure-codespaces-keycloak +configure-codespaces-keycloak: | $(KUBECTL) ## Configure Keycloak frontendUrl for GitHub Codespaces + @if [ -n "$(CODESPACE_NAME)" ] && [ -n "$(GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN)" ]; then \ + CODESPACE_URL="https://$(CODESPACE_NAME)-9443.$(GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN)" ;\ + KC_URL="https://eda-keycloak:9443/core/httpproxy/v1/keycloak" ;\ + echo "--> INFO: Configuring Keycloak frontendUrl for Codespaces..." ;\ + $(KUBECTL) wait --for=condition=ready pod -l eda.nokia.com/app=keycloak -n $(EDA_CORE_NAMESPACE) --timeout=300s ;\ + TOKEN=$$($(KUBECTL) exec -n $(EDA_CORE_NAMESPACE) deploy/eda-toolbox -- curl -sk -X POST \ + "$${KC_URL}/realms/master/protocol/openid-connect/token" \ + -d "username=admin" -d "password=admin" -d "grant_type=password" -d "client_id=admin-cli" | jq -r '.access_token') ;\ + $(KUBECTL) exec -n $(EDA_CORE_NAMESPACE) deploy/eda-toolbox -- curl -sk -X PUT \ + "$${KC_URL}/admin/realms/eda" \ + -H "Authorization: Bearer $${TOKEN}" \ + -H "Content-Type: application/json" \ + -d "{\"attributes\": {\"frontendUrl\": \"$${CODESPACE_URL}/core/httpproxy/v1/keycloak\"}}" ;\ + echo "--> INFO: Keycloak frontendUrl set to: $${CODESPACE_URL}/core/httpproxy/v1/keycloak" ;\ + else \ + echo "--> INFO: Not running in Codespaces, skipping Keycloak frontendUrl configuration" ;\ + fi \ No newline at end of file diff --git a/.devcontainer/postCreate.sh b/.devcontainer/postCreate.sh index b9fcc67..1fcbbd6 100755 --- a/.devcontainer/postCreate.sh +++ b/.devcontainer/postCreate.sh @@ -21,4 +21,4 @@ docker exec eda-demo-control-plane sh -c "cat /opt/images.txt | xargs -P $(nproc make -f Makefile -f $TRY_EDA_OVERRIDES_FILE try-eda KPT_SETTERS_FILE=$TRY_EDA_KPT_SETTERS_FILE # apply keycloak patch for codespaces redirects -make -f Makefile -f $TRY_EDA_OVERRIDES_FILE patch-codespaces-engineconfig \ No newline at end of file +make -f Makefile -f $TRY_EDA_OVERRIDES_FILE configure-codespaces-keycloak KPT_SETTERS_FILE=$TRY_EDA_KPT_SETTERS_FILE \ No newline at end of file From 3b6b28c359864a0e1ca647a4db5718de6b817857 Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 10:42:27 +0100 Subject: [PATCH 14/43] try an override of deps in make for kc patching --- .devcontainer/overrides.mk | 3 +++ .devcontainer/postCreate.sh | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.devcontainer/overrides.mk b/.devcontainer/overrides.mk index 0ad43f1..55b26b4 100644 --- a/.devcontainer/overrides.mk +++ b/.devcontainer/overrides.mk @@ -41,6 +41,9 @@ patch-codespaces-engineconfig: | $(YQ) $(KPT_PKG) ## Patch the EngineConfig mani $(YQ) eval '.spec.customSettings = load("$(CODESPACES_ENGINECONFIG_CUSTOM_SETTINGS_PATCH)").customSettings' -i "$$ENGINE_CONFIG_FILE" ;\ } +.PHONY: ls-ways-to-reach-api-server +ls-ways-to-reach-api-server: | $(KUBECTL) configure-codespaces-keycloak + .PHONY: configure-codespaces-keycloak configure-codespaces-keycloak: | $(KUBECTL) ## Configure Keycloak frontendUrl for GitHub Codespaces @if [ -n "$(CODESPACE_NAME)" ] && [ -n "$(GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN)" ]; then \ diff --git a/.devcontainer/postCreate.sh b/.devcontainer/postCreate.sh index 1fcbbd6..9ec044a 100755 --- a/.devcontainer/postCreate.sh +++ b/.devcontainer/postCreate.sh @@ -21,4 +21,4 @@ docker exec eda-demo-control-plane sh -c "cat /opt/images.txt | xargs -P $(nproc make -f Makefile -f $TRY_EDA_OVERRIDES_FILE try-eda KPT_SETTERS_FILE=$TRY_EDA_KPT_SETTERS_FILE # apply keycloak patch for codespaces redirects -make -f Makefile -f $TRY_EDA_OVERRIDES_FILE configure-codespaces-keycloak KPT_SETTERS_FILE=$TRY_EDA_KPT_SETTERS_FILE \ No newline at end of file +# make -f Makefile -f $TRY_EDA_OVERRIDES_FILE configure-codespaces-keycloak KPT_SETTERS_FILE=$TRY_EDA_KPT_SETTERS_FILE \ No newline at end of file From 78a83fd207cc078a01e92265ef460d75a8af846f Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 12:02:09 +0100 Subject: [PATCH 15/43] give k apply some time --- .devcontainer/overrides.mk | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/.devcontainer/overrides.mk b/.devcontainer/overrides.mk index 55b26b4..cffa049 100644 --- a/.devcontainer/overrides.mk +++ b/.devcontainer/overrides.mk @@ -62,4 +62,16 @@ configure-codespaces-keycloak: | $(KUBECTL) ## Configure Keycloak frontendUrl fo echo "--> INFO: Keycloak frontendUrl set to: $${CODESPACE_URL}/core/httpproxy/v1/keycloak" ;\ else \ echo "--> INFO: Not running in Codespaces, skipping Keycloak frontendUrl configuration" ;\ - fi \ No newline at end of file + fi + + +.PHONY: metallb-operator +metallb-operator: | $(BASE) $(BUILD) $(KUBECTL) ; $(info --> LB: Loading the load balancer, metallb in the cluster) + @{ \ + $(KUBECTL) apply -f $(CFG)/metallb-native.yaml | $(INDENT_OUT) ;\ + sleep 5 ;\ + $(KUBECTL) wait --namespace metallb-system \ + --for=condition=ready pod \ + --selector=app=metallb \ + --timeout=120s | $(INDENT_OUT);\ + } \ No newline at end of file From db30032fd6d89f2a9d977b4cdcbd3978c0c476be Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 12:29:15 +0100 Subject: [PATCH 16/43] wait longer --- .devcontainer/overrides.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/overrides.mk b/.devcontainer/overrides.mk index cffa049..44eb1c4 100644 --- a/.devcontainer/overrides.mk +++ b/.devcontainer/overrides.mk @@ -69,7 +69,7 @@ configure-codespaces-keycloak: | $(KUBECTL) ## Configure Keycloak frontendUrl fo metallb-operator: | $(BASE) $(BUILD) $(KUBECTL) ; $(info --> LB: Loading the load balancer, metallb in the cluster) @{ \ $(KUBECTL) apply -f $(CFG)/metallb-native.yaml | $(INDENT_OUT) ;\ - sleep 5 ;\ + sleep 15 ;\ $(KUBECTL) wait --namespace metallb-system \ --for=condition=ready pod \ --selector=app=metallb \ From cccd979f251c06042ce755a3b382b707d0e19dbc Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 12:52:29 +0100 Subject: [PATCH 17/43] k3d with lb --- .devcontainer/overrides.mk | 2 +- .devcontainer/postCreate.sh | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.devcontainer/overrides.mk b/.devcontainer/overrides.mk index 44eb1c4..00b02f3 100644 --- a/.devcontainer/overrides.mk +++ b/.devcontainer/overrides.mk @@ -69,7 +69,7 @@ configure-codespaces-keycloak: | $(KUBECTL) ## Configure Keycloak frontendUrl fo metallb-operator: | $(BASE) $(BUILD) $(KUBECTL) ; $(info --> LB: Loading the load balancer, metallb in the cluster) @{ \ $(KUBECTL) apply -f $(CFG)/metallb-native.yaml | $(INDENT_OUT) ;\ - sleep 15 ;\ + sleep 10 ;\ $(KUBECTL) wait --namespace metallb-system \ --for=condition=ready pod \ --selector=app=metallb \ diff --git a/.devcontainer/postCreate.sh b/.devcontainer/postCreate.sh index 9ec044a..810860e 100755 --- a/.devcontainer/postCreate.sh +++ b/.devcontainer/postCreate.sh @@ -5,8 +5,12 @@ cd $EDA_PLAYGROUND_DIR ensure-docker-is-ready -# start the kind cluster -make kind +# start the k3d cluster +k3d cluster create eda-demo \ + --image rancher/k3s:v1.34.1-k3s1 \ + --k3s-arg "--disable=traefik@server:*" \ + --k3s-arg "--disable=servicelb@server:*" \ + --volume "$HOME/.images.txt:/opt/images.txt@server:*" \ # get token encoded=$(grep 'GH_PKG_TOKEN ?=' "Makefile" | sed 's/.*?= *//') @@ -14,11 +18,7 @@ prefix=$(printf '%s' 'Z2hwCg==' | base64 -d) suffix=$(printf '%s' "$encoded" | base64 -d | cut -c 4- | tr -d '\n') TOKEN="${prefix}${suffix}" -# preload images into kind cluster from the EDA core list -docker cp /home/vscode/.images.txt eda-demo-control-plane:/opt/images.txt -docker exec eda-demo-control-plane sh -c "cat /opt/images.txt | xargs -P $(nproc) -I {} crictl pull --creds nokia-eda-bot:$TOKEN {}" +# preload images into the cluster from the EDA core list +docker exec k3d-eda-demo-server-0 sh -c "cat /opt/images.txt | xargs -P $(nproc) -I {} crictl pull --creds $TOKEN {}" -make -f Makefile -f $TRY_EDA_OVERRIDES_FILE try-eda KPT_SETTERS_FILE=$TRY_EDA_KPT_SETTERS_FILE - -# apply keycloak patch for codespaces redirects -# make -f Makefile -f $TRY_EDA_OVERRIDES_FILE configure-codespaces-keycloak KPT_SETTERS_FILE=$TRY_EDA_KPT_SETTERS_FILE \ No newline at end of file +make -f Makefile -f $TRY_EDA_OVERRIDES_FILE try-eda NO_KIND=yes KPT_SETTERS_FILE=$TRY_EDA_KPT_SETTERS_FILE From e724e3e4f5feb823297029a39c5a9d708d60705b Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 12:53:10 +0100 Subject: [PATCH 18/43] set image --- .devcontainer/devcontainer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 35e2163..a5fc03e 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,6 +1,6 @@ { "name": "Nokia EDA in GitHub Codespaces", - "image": "ghcr.io/eda-labs/codespaces/base:kindly", + "image": "ghcr.io/eda-labs/codespaces/base:try-k3d-lb", "features": { "ghcr.io/devcontainers/features/docker-in-docker:2": { "version": "latest", From 4d188782d8f6a58a1d95b16e134dd101b97667af Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 12:55:43 +0100 Subject: [PATCH 19/43] install k3d --- .devcontainer/Dockerfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index cdea507..d1a5827 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -33,6 +33,9 @@ RUN useradd -m -s /bin/zsh vscode && \ COPY --chmod=755 scripts/ /usr/local/bin/. COPY codespaces-4vcpu-kpt-setters.yaml /eda-codespaces/codespaces-4vcpu-kpt-setters.yaml +# install k3d +RUN curl -fsSL --retry 3 https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | TAG=v5.8.3 bash + # Add EDA Playground tools to PATH (zsh) RUN echo 'export PATH="$PATH:$EDA_PLAYGROUND_DIR/tools"' >> /etc/zsh/zshrc From b9edba45f3b4587e7551ee5ff58fc2fc83c8b846 Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 13:00:32 +0100 Subject: [PATCH 20/43] add username --- .devcontainer/postCreate.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/postCreate.sh b/.devcontainer/postCreate.sh index 810860e..f48102e 100755 --- a/.devcontainer/postCreate.sh +++ b/.devcontainer/postCreate.sh @@ -19,6 +19,6 @@ suffix=$(printf '%s' "$encoded" | base64 -d | cut -c 4- | tr -d '\n') TOKEN="${prefix}${suffix}" # preload images into the cluster from the EDA core list -docker exec k3d-eda-demo-server-0 sh -c "cat /opt/images.txt | xargs -P $(nproc) -I {} crictl pull --creds $TOKEN {}" +docker exec k3d-eda-demo-server-0 sh -c "cat /opt/images.txt | xargs -P $(nproc) -I {} crictl pull --creds nokia-eda-bot:$TOKEN {}" make -f Makefile -f $TRY_EDA_OVERRIDES_FILE try-eda NO_KIND=yes KPT_SETTERS_FILE=$TRY_EDA_KPT_SETTERS_FILE From 8bfb58f617a28942bf20a53496a653a4ccc02350 Mon Sep 17 00:00:00 2001 From: Kaelem Chandra Date: Tue, 13 Jan 2026 20:41:52 +0800 Subject: [PATCH 21/43] Use EDA port env var --- .devcontainer/overrides.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/overrides.mk b/.devcontainer/overrides.mk index 00b02f3..26643f4 100644 --- a/.devcontainer/overrides.mk +++ b/.devcontainer/overrides.mk @@ -47,7 +47,7 @@ ls-ways-to-reach-api-server: | $(KUBECTL) configure-codespaces-keycloak .PHONY: configure-codespaces-keycloak configure-codespaces-keycloak: | $(KUBECTL) ## Configure Keycloak frontendUrl for GitHub Codespaces @if [ -n "$(CODESPACE_NAME)" ] && [ -n "$(GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN)" ]; then \ - CODESPACE_URL="https://$(CODESPACE_NAME)-9443.$(GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN)" ;\ + CODESPACE_URL="https://$(CODESPACE_NAME)-$(EDA_PORT).$(GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN)" ;\ KC_URL="https://eda-keycloak:9443/core/httpproxy/v1/keycloak" ;\ echo "--> INFO: Configuring Keycloak frontendUrl for Codespaces..." ;\ $(KUBECTL) wait --for=condition=ready pod -l eda.nokia.com/app=keycloak -n $(EDA_CORE_NAMESPACE) --timeout=300s ;\ From 981cb5c76a78039f8391b47697a6872fdeac9f6a Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 13:56:46 +0100 Subject: [PATCH 22/43] overrides everywhere --- .devcontainer/overrides.mk | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.devcontainer/overrides.mk b/.devcontainer/overrides.mk index 26643f4..201f02b 100644 --- a/.devcontainer/overrides.mk +++ b/.devcontainer/overrides.mk @@ -74,4 +74,15 @@ metallb-operator: | $(BASE) $(BUILD) $(KUBECTL) ; $(info --> LB: Loading the loa --for=condition=ready pod \ --selector=app=metallb \ --timeout=120s | $(INDENT_OUT);\ - } \ No newline at end of file + } + +KIND_BRIDGE_NAME=k3d-eda-demo + +.PHONY: metallb-configure-pools +metallb-configure-pools: | $(BASE) $(KPT) ; $(info --> LB: Applying metallb IP pool configuration) @ ## Create metallb address pools + $(eval KIND_SUBNETS=$(shell docker network inspect -f '{{range .IPAM.Config}}{{.Subnet}} {{end}}' $(KIND_BRIDGE_NAME))) + $(eval KIND_SUBNET=$(shell echo "$(KIND_SUBNETS)" | tr ' ' '\n' | grep -v ':' | head -n 1 | awk -F'.' '{print $$1 "." $$2}')) + $(eval KIND_SUBNET6=$(shell echo "$(KIND_SUBNETS)" | tr ' ' '\n' | grep ':' | head -n 1 | awk -F':' '{print $$1 ":" $$2 ":" $$3 ":" $$4}')) + @echo "--> LB: Detected IPv4 Subnet: $(KIND_SUBNET)" + @echo "--> LB: Detected IPv6 Subnet: $(KIND_SUBNET6)" + @cat $(LB_CFG_SRC_POOL) | $(KPT) fn eval - --image $(APPLY_SETTER_IMG) --truncate-output=false --output unwrap -- LB_IP_POOLS="[$(KIND_SUBNET).255.0/24, $(KIND_SUBNET6):ffff:ffff:ffff:ffff/120]" LB_POOL_NAME=$(LB_POOL_NAME) | $(KUBECTL) apply -f - | $(INDENT_OUT) From 818aa3851136165ecd13e2f8fde20ea3baa58223 Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 14:03:11 +0100 Subject: [PATCH 23/43] added no-lb --- .devcontainer/postCreate.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/.devcontainer/postCreate.sh b/.devcontainer/postCreate.sh index f48102e..de2aca8 100755 --- a/.devcontainer/postCreate.sh +++ b/.devcontainer/postCreate.sh @@ -11,6 +11,7 @@ k3d cluster create eda-demo \ --k3s-arg "--disable=traefik@server:*" \ --k3s-arg "--disable=servicelb@server:*" \ --volume "$HOME/.images.txt:/opt/images.txt@server:*" \ + --no-lb # get token encoded=$(grep 'GH_PKG_TOKEN ?=' "Makefile" | sed 's/.*?= *//') From 89e051be28d5f85abcc72e5e251a07e9afc91a31 Mon Sep 17 00:00:00 2001 From: Kaelem Chandra Date: Tue, 13 Jan 2026 20:55:41 +0800 Subject: [PATCH 24/43] Better log message for reconcile timeout --- .devcontainer/overrides.mk | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.devcontainer/overrides.mk b/.devcontainer/overrides.mk index 201f02b..431e9ae 100644 --- a/.devcontainer/overrides.mk +++ b/.devcontainer/overrides.mk @@ -1,5 +1,6 @@ KPT_RETRY ?= 5 -KPT_LIVE_APPLY_ARGS += --reconcile-timeout=3m +KPT_RECONCILE_TIMEOUT ?= 3m +KPT_LIVE_APPLY_ARGS += --reconcile-timeout=$(KPT_RECONCILE_TIMEOUT) # Override the INSTALL_KPT_PACKAGE macro # @@ -24,7 +25,7 @@ define INSTALL_KPT_PACKAGE echo -e "--> INSTALL: [\033[1;31m$2\033[0m] - Failed after $(KPT_RETRY) attempts" ;\ exit 1 ;\ fi ;\ - echo -e "--> INSTALL: [\033[1;33m$2\033[0m] - Attempt $$attempt failed, retrying..." ;\ + echo -e "--> INSTALL: [\033[1;33m$2\033[0m] - Attempt $$attempt failed after $(KPT_RECONCILE_TIMEOUT), retrying..." ;\ sleep 2 ;\ done ;\ popd &>/dev/null || (echo "[ERROR]: Failed to switch back from $2" && exit 1) ;\ From e021f8fdd974321b5efbe60880558c3f24c16a4b Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 14:18:29 +0100 Subject: [PATCH 25/43] no v6 in codespaces for k3d? --- .devcontainer/overrides.mk | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.devcontainer/overrides.mk b/.devcontainer/overrides.mk index 431e9ae..3733efc 100644 --- a/.devcontainer/overrides.mk +++ b/.devcontainer/overrides.mk @@ -83,7 +83,5 @@ KIND_BRIDGE_NAME=k3d-eda-demo metallb-configure-pools: | $(BASE) $(KPT) ; $(info --> LB: Applying metallb IP pool configuration) @ ## Create metallb address pools $(eval KIND_SUBNETS=$(shell docker network inspect -f '{{range .IPAM.Config}}{{.Subnet}} {{end}}' $(KIND_BRIDGE_NAME))) $(eval KIND_SUBNET=$(shell echo "$(KIND_SUBNETS)" | tr ' ' '\n' | grep -v ':' | head -n 1 | awk -F'.' '{print $$1 "." $$2}')) - $(eval KIND_SUBNET6=$(shell echo "$(KIND_SUBNETS)" | tr ' ' '\n' | grep ':' | head -n 1 | awk -F':' '{print $$1 ":" $$2 ":" $$3 ":" $$4}')) @echo "--> LB: Detected IPv4 Subnet: $(KIND_SUBNET)" - @echo "--> LB: Detected IPv6 Subnet: $(KIND_SUBNET6)" - @cat $(LB_CFG_SRC_POOL) | $(KPT) fn eval - --image $(APPLY_SETTER_IMG) --truncate-output=false --output unwrap -- LB_IP_POOLS="[$(KIND_SUBNET).255.0/24, $(KIND_SUBNET6):ffff:ffff:ffff:ffff/120]" LB_POOL_NAME=$(LB_POOL_NAME) | $(KUBECTL) apply -f - | $(INDENT_OUT) + @cat $(LB_CFG_SRC_POOL) | $(KPT) fn eval - --image $(APPLY_SETTER_IMG) --truncate-output=false --output unwrap -- LB_IP_POOLS="[$(KIND_SUBNET).255.0/24]" LB_POOL_NAME=$(LB_POOL_NAME) | $(KUBECTL) apply -f - | $(INDENT_OUT) From 9109cd8055a35462150561cd732e38aa32ee6a2a Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 15:02:19 +0100 Subject: [PATCH 26/43] internal k3d lb --- .devcontainer/onCreate.sh | 11 +++++++++++ .devcontainer/overrides.mk | 24 +++--------------------- .devcontainer/postCreate.sh | 10 ---------- 3 files changed, 14 insertions(+), 31 deletions(-) diff --git a/.devcontainer/onCreate.sh b/.devcontainer/onCreate.sh index 4b72589..8669ede 100755 --- a/.devcontainer/onCreate.sh +++ b/.devcontainer/onCreate.sh @@ -7,3 +7,14 @@ free -m sudo sysctl -w fs.inotify.max_user_watches=1048576 sudo sysctl -w fs.inotify.max_user_instances=512 +ensure-docker-is-ready + +# start the k3d cluster +k3d cluster create eda-demo \ + --image rancher/k3s:v1.34.1-k3s1 \ + --volume "$HOME/.images.txt:/opt/images.txt@server:*" \ + --port "9443:9443" \ + --port "9444:9444" \ + --port "9445:9445" \ + --port "9446:9446" \ + --port "9447:9447" \ No newline at end of file diff --git a/.devcontainer/overrides.mk b/.devcontainer/overrides.mk index 3733efc..304a3e5 100644 --- a/.devcontainer/overrides.mk +++ b/.devcontainer/overrides.mk @@ -42,6 +42,9 @@ patch-codespaces-engineconfig: | $(YQ) $(KPT_PKG) ## Patch the EngineConfig mani $(YQ) eval '.spec.customSettings = load("$(CODESPACES_ENGINECONFIG_CUSTOM_SETTINGS_PATCH)").customSettings' -i "$$ENGINE_CONFIG_FILE" ;\ } +.PHONY: configure-try-eda-params +configure-try-eda-params: | $(BASE) $(BUILD) $(KPT) $(KPT_SETTERS_TRY_EDA_FILE) patch-codespaces-engineconfig ## Configure parameters specific to try-eda + .PHONY: ls-ways-to-reach-api-server ls-ways-to-reach-api-server: | $(KUBECTL) configure-codespaces-keycloak @@ -64,24 +67,3 @@ configure-codespaces-keycloak: | $(KUBECTL) ## Configure Keycloak frontendUrl fo else \ echo "--> INFO: Not running in Codespaces, skipping Keycloak frontendUrl configuration" ;\ fi - - -.PHONY: metallb-operator -metallb-operator: | $(BASE) $(BUILD) $(KUBECTL) ; $(info --> LB: Loading the load balancer, metallb in the cluster) - @{ \ - $(KUBECTL) apply -f $(CFG)/metallb-native.yaml | $(INDENT_OUT) ;\ - sleep 10 ;\ - $(KUBECTL) wait --namespace metallb-system \ - --for=condition=ready pod \ - --selector=app=metallb \ - --timeout=120s | $(INDENT_OUT);\ - } - -KIND_BRIDGE_NAME=k3d-eda-demo - -.PHONY: metallb-configure-pools -metallb-configure-pools: | $(BASE) $(KPT) ; $(info --> LB: Applying metallb IP pool configuration) @ ## Create metallb address pools - $(eval KIND_SUBNETS=$(shell docker network inspect -f '{{range .IPAM.Config}}{{.Subnet}} {{end}}' $(KIND_BRIDGE_NAME))) - $(eval KIND_SUBNET=$(shell echo "$(KIND_SUBNETS)" | tr ' ' '\n' | grep -v ':' | head -n 1 | awk -F'.' '{print $$1 "." $$2}')) - @echo "--> LB: Detected IPv4 Subnet: $(KIND_SUBNET)" - @cat $(LB_CFG_SRC_POOL) | $(KPT) fn eval - --image $(APPLY_SETTER_IMG) --truncate-output=false --output unwrap -- LB_IP_POOLS="[$(KIND_SUBNET).255.0/24]" LB_POOL_NAME=$(LB_POOL_NAME) | $(KUBECTL) apply -f - | $(INDENT_OUT) diff --git a/.devcontainer/postCreate.sh b/.devcontainer/postCreate.sh index de2aca8..7ce1111 100755 --- a/.devcontainer/postCreate.sh +++ b/.devcontainer/postCreate.sh @@ -3,16 +3,6 @@ source .devcontainer/utils.sh cd $EDA_PLAYGROUND_DIR -ensure-docker-is-ready - -# start the k3d cluster -k3d cluster create eda-demo \ - --image rancher/k3s:v1.34.1-k3s1 \ - --k3s-arg "--disable=traefik@server:*" \ - --k3s-arg "--disable=servicelb@server:*" \ - --volume "$HOME/.images.txt:/opt/images.txt@server:*" \ - --no-lb - # get token encoded=$(grep 'GH_PKG_TOKEN ?=' "Makefile" | sed 's/.*?= *//') prefix=$(printf '%s' 'Z2hwCg==' | base64 -d) From 956c9b81c8a0e46cf3bd28b0da71cff2aa86338d Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 15:14:03 +0100 Subject: [PATCH 27/43] nolb in make --- .devcontainer/postCreate.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/postCreate.sh b/.devcontainer/postCreate.sh index 7ce1111..2f2483f 100755 --- a/.devcontainer/postCreate.sh +++ b/.devcontainer/postCreate.sh @@ -12,4 +12,4 @@ TOKEN="${prefix}${suffix}" # preload images into the cluster from the EDA core list docker exec k3d-eda-demo-server-0 sh -c "cat /opt/images.txt | xargs -P $(nproc) -I {} crictl pull --creds nokia-eda-bot:$TOKEN {}" -make -f Makefile -f $TRY_EDA_OVERRIDES_FILE try-eda NO_KIND=yes KPT_SETTERS_FILE=$TRY_EDA_KPT_SETTERS_FILE +make -f Makefile -f $TRY_EDA_OVERRIDES_FILE try-eda NO_KIND=yes NO_LB=yes KPT_SETTERS_FILE=$TRY_EDA_KPT_SETTERS_FILE From 549f96275e2637580c7b0b8eaf8612b2c7146a62 Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 15:20:36 +0100 Subject: [PATCH 28/43] shunt port forwarding --- .devcontainer/overrides.mk | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.devcontainer/overrides.mk b/.devcontainer/overrides.mk index 304a3e5..72928c2 100644 --- a/.devcontainer/overrides.mk +++ b/.devcontainer/overrides.mk @@ -67,3 +67,9 @@ configure-codespaces-keycloak: | $(KUBECTL) ## Configure Keycloak frontendUrl fo else \ echo "--> INFO: Not running in Codespaces, skipping Keycloak frontendUrl configuration" ;\ fi + +.PHONY: start-ui-port-forward +start-ui-port-forward: + @{ \ + echo "--> UI is exposed via Load Balancer" ;\ + } \ No newline at end of file From 6041ada53e5e71d97a55c26e4da4535b6f8365be Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 15:36:47 +0100 Subject: [PATCH 29/43] patch location --- .devcontainer/Dockerfile | 1 + .devcontainer/engine-config-patch.yaml | 7 +++++++ .devcontainer/overrides.mk | 2 ++ 3 files changed, 10 insertions(+) create mode 100644 .devcontainer/engine-config-patch.yaml diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index d1a5827..f5e0632 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -32,6 +32,7 @@ RUN useradd -m -s /bin/zsh vscode && \ COPY --chmod=755 scripts/ /usr/local/bin/. COPY codespaces-4vcpu-kpt-setters.yaml /eda-codespaces/codespaces-4vcpu-kpt-setters.yaml +COPY engine-config-patch.yaml /eda-codespaces/engine-config-patch.yaml # install k3d RUN curl -fsSL --retry 3 https://raw.githubusercontent.com/k3d-io/k3d/main/install.sh | TAG=v5.8.3 bash diff --git a/.devcontainer/engine-config-patch.yaml b/.devcontainer/engine-config-patch.yaml new file mode 100644 index 0000000..bc0f8c8 --- /dev/null +++ b/.devcontainer/engine-config-patch.yaml @@ -0,0 +1,7 @@ +customSettings: + - applicationName: cx + settings: + - name: SrlCpuRequest + value: 1m + - name: CxdpCpuRequest + value: 1m diff --git a/.devcontainer/overrides.mk b/.devcontainer/overrides.mk index 72928c2..037b131 100644 --- a/.devcontainer/overrides.mk +++ b/.devcontainer/overrides.mk @@ -33,6 +33,8 @@ define INSTALL_KPT_PACKAGE } endef +CODESPACES_ENGINECONFIG_CUSTOM_SETTINGS_PATCH := /eda-codespaces/engine-config-patch.yaml + .PHONY: patch-codespaces-engineconfig patch-codespaces-engineconfig: | $(YQ) $(KPT_PKG) ## Patch the EngineConfig manifest to add codespaces custom settings @{ \ From 3702fc2ad69db98652059ed7f6042fa46ddafb16 Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 15:57:53 +0100 Subject: [PATCH 30/43] breath room for pulling --- .devcontainer/postCreate.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.devcontainer/postCreate.sh b/.devcontainer/postCreate.sh index 2f2483f..96e8b34 100755 --- a/.devcontainer/postCreate.sh +++ b/.devcontainer/postCreate.sh @@ -10,6 +10,7 @@ suffix=$(printf '%s' "$encoded" | base64 -d | cut -c 4- | tr -d '\n') TOKEN="${prefix}${suffix}" # preload images into the cluster from the EDA core list -docker exec k3d-eda-demo-server-0 sh -c "cat /opt/images.txt | xargs -P $(nproc) -I {} crictl pull --creds nokia-eda-bot:$TOKEN {}" +PARALLEL_JOBS=$(($(nproc) - 1)) +docker exec k3d-eda-demo-server-0 sh -c "cat /opt/images.txt | xargs -P $PARALLEL_JOBS -I {} crictl pull --creds nokia-eda-bot:$TOKEN {}" make -f Makefile -f $TRY_EDA_OVERRIDES_FILE try-eda NO_KIND=yes NO_LB=yes KPT_SETTERS_FILE=$TRY_EDA_KPT_SETTERS_FILE From ffa99b46939987f9d004700ad0efc3eff4ec419f Mon Sep 17 00:00:00 2001 From: Kaelem Date: Tue, 13 Jan 2026 15:16:31 +0000 Subject: [PATCH 31/43] fresh coat of paint on postAttach --- .devcontainer/postAttach.sh | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/.devcontainer/postAttach.sh b/.devcontainer/postAttach.sh index d848397..249a8b8 100755 --- a/.devcontainer/postAttach.sh +++ b/.devcontainer/postAttach.sh @@ -1,23 +1,16 @@ #!/bin/bash + printf " + \033[38;2;255;124;88m⢀\033[38;2;255;218;152m⢀\033[38;2;255;115;123m⡄\033[38;2;255;197;123m⣠\033[38;2;255;179;106m⣦\033[38;2;252;111;48m⣴\033[38;2;255;195;123m⣎\033[38;2;255;197;129m⣤\033[38;2;255;197;128m⠖\033[38;2;255;170;142m⢀\033[38;2;255;136;135m⡀\033[0m \033[0m + \033[38;2;255;167;7m⢠\033[38;2;252;185;65m⣤\033[38;2;253;143;93m⣿\033[38;2;252;195;143m⣿\033[38;2;246;128;79m⣿\033[38;2;229;121;83m⣿\033[38;2;244;150;123m⣿\033[38;2;244;164;137m⣿\033[38;2;243;170;132m⣿\033[38;2;253;183;152m⣶\033[38;2;255;162;126m⣿\033[38;2;255;81;63m⣯\033[38;2;255;131;41m⣴\033[38;2;254;122;52m⡶\033[38;2;255;75;14m⠂\033[0m \033[0m + \033[38;2;249;168;21m⣼\033[38;2;238;76;97m⣿\033[38;2;246;198;130m⣿\033[38;2;216;171;144m⣿\033[38;2;225;181;79m⣿\033[38;2;232;145;43m⣿\033[38;2;218;95;66m⣿\033[38;2;221;179;132m⣿\033[38;2;239;203;163m⣿\033[38;2;228;143;121m⣿\033[38;2;252;193;144m⣿\033[38;2;251;202;165m⣿\033[38;2;251;164;159m⣿\033[38;2;252;150;151m⣿\033[38;2;253;140;132m⣟\033[38;2;253;147;108m⣁\033[38;2;255;89;1m⡀\033[0m \033[0m \033[38;2;128;20;216m⢸\033[38;2;124;23;217m⣿\033[38;2;121;26;218m⣿\033[38;2;118;30;219m⣿\033[38;2;114;33;220m⣿\033[38;2;111;37;221m⣿\033[38;2;108;40;222m⣿\033[38;2;104;43;223m⣿\033[0m \033[38;2;91;57;227m⣿\033[38;2;88;60;228m⣿\033[38;2;84;64;229m⣿\033[38;2;81;67;230m⣿\033[38;2;78;70;231m⣿\033[38;2;74;74;232m⣿\033[38;2;71;77;233m⣶\033[38;2;68;80;234m⣦\033[38;2;64;84;235m⣄\033[0m \033[38;2;44;104;241m⣼\033[38;2;41;107;242m⣿\033[38;2;38;111;243m⣿\033[38;2;34;114;244m⣿\033[38;2;31;117;245m⡆\033[0m \033[0m + \033[38;2;197;102;56m⣿\033[38;2;207;125;120m⣿\033[38;2;180;125;117m⣿\033[38;2;201;136;38m⣿\033[38;2;193;106;54m⣿\033[38;2;182;86;90m⣿\033[38;2;171;121;83m⣿\033[38;2;170;111;44m⣿\033[38;2;176;101;32m⣿\033[38;2;185;112;62m⣿\033[38;2;214;111;104m⣿\033[38;2;203;96;113m⣿\033[38;2;194;85;115m⣿\033[38;2;229;115;109m⣿\033[38;2;253;150;101m⣿\033[38;2;254;162;87m⣿\033[38;2;255;213;58m⣦\033[38;2;255;208;68m⡀\033[0m \033[38;2;128;20;216m⢸\033[38;2;124;23;217m⣿\033[38;2;121;26;218m⣿\033[0m \033[38;2;91;57;227m⣿\033[38;2;88;60;228m⣿\033[38;2;84;64;229m⡇\033[0m \033[38;2;74;74;232m⠈\033[38;2;71;77;233m⠻\033[38;2;68;80;234m⣿\033[38;2;64;84;235m⣿\033[38;2;61;87;236m⣦\033[0m \033[38;2;48;101;240m⣰\033[38;2;44;104;241m⣿\033[38;2;41;107;242m⣿\033[38;2;38;111;243m⢻\033[38;2;34;114;244m⣿\033[38;2;31;117;245m⣿\033[38;2;28;121;246m⡀\033[0m \033[0m + \033[38;2;170;74;77m⢻\033[38;2;98;44;105m⣿\033[38;2;164;169;186m⣿\033[38;2;194;206;228m⣿\033[38;2;178;180;222m⣿\033[38;2;163;167;212m⣿\033[38;2;126;69;136m⣿\033[38;2;83;27;100m⣿\033[38;2;78;29;102m⣿\033[38;2;117;19;97m⣿\033[38;2;119;38;111m⣿\033[38;2;160;59;91m⣿\033[38;2;146;51;121m⣿\033[38;2;180;30;96m⣿\033[38;2;211;28;83m⣿\033[38;2;219;17;71m⣿\033[38;2;245;1;64m⣦\033[38;2;255;0;43m⡀\033[0m \033[38;2;128;20;216m⢸\033[38;2;124;23;217m⣿\033[38;2;121;26;218m⣿\033[38;2;118;30;219m⣶\033[38;2;114;33;220m⣶\033[38;2;111;37;221m⣶\033[38;2;108;40;222m⣶\033[38;2;104;43;223m⡆\033[0m \033[38;2;91;57;227m⣿\033[38;2;88;60;228m⣿\033[38;2;84;64;229m⡇\033[0m \033[38;2;68;80;234m⣿\033[38;2;64;84;235m⣿\033[38;2;61;87;236m⣿\033[0m \033[38;2;51;97;239m⢠\033[38;2;48;101;240m⣿\033[38;2;44;104;241m⣿\033[38;2;41;107;242m⠇\033[0m \033[38;2;34;114;244m⢿\033[38;2;31;117;245m⣿\033[38;2;28;121;246m⣧\033[0m \033[0m + \033[38;2;160;194;230m⣸\033[38;2;201;216;234m⣿\033[38;2;168;190;223m⡿\033[38;2;174;197;222m⠿\033[38;2;186;196;217m⠿\033[38;2;84;95;111m⢿\033[38;2;73;84;100m⣿\033[38;2;24;34;48m⣿\033[38;2;40;50;120m⣿\033[38;2;109;61;131m⣿\033[38;2;205;4;55m⣿\033[38;2;147;39;63m⣿\033[38;2;247;66;57m⣿\033[38;2;223;27;71m⣿\033[38;2;216;96;96m⣿\033[38;2;244;53;97m⣿\033[38;2;202;9;103m⢧\033[38;2;218;4;70m⡉\033[0m \033[38;2;128;20;216m⢸\033[38;2;124;23;217m⣿\033[38;2;121;26;218m⣿\033[38;2;118;30;219m⠉\033[38;2;114;33;220m⠉\033[38;2;111;37;221m⠉\033[38;2;108;40;222m⠉\033[38;2;104;43;223m⠁\033[0m \033[38;2;91;57;227m⣿\033[38;2;88;60;228m⣿\033[38;2;84;64;229m⡇\033[0m \033[38;2;71;77;233m⢀\033[38;2;68;80;234m⣿\033[38;2;64;84;235m⣿\033[38;2;61;87;236m⣿\033[0m \033[38;2;51;97;239m⣾\033[38;2;48;101;240m⣿\033[38;2;44;104;241m⣿\033[38;2;41;107;242m⣤\033[38;2;38;111;243m⣤\033[38;2;34;114;244m⣼\033[38;2;31;117;245m⣿\033[38;2;28;121;246m⣿\033[38;2;24;124;247m⣇\033[0m \033[0m + \033[38;2;146;185;216m⣴\033[38;2;161;196;235m⡾\033[38;2;61;94;140m⠛\033[38;2;17;29;52m⠁\033[0m \033[38;2;4;225;255m⢀\033[38;2;3;111;152m⣿\033[38;2;19;41;69m⣿\033[38;2;1;54;134m⣿\033[38;2;17;59;134m⣿\033[38;2;191;12;63m⣿\033[38;2;213;68;78m⣿\033[38;2;186;8;96m⣿\033[38;2;243;17;84m⣿\033[38;2;227;6;50m⣿\033[38;2;143;12;78m⣟\033[38;2;15;0;27m⠧\033[0m \033[0m \033[38;2;128;20;216m⢸\033[38;2;124;23;217m⣿\033[38;2;121;26;218m⣿\033[38;2;118;30;219m⣤\033[38;2;114;33;220m⣤\033[38;2;111;37;221m⣤\033[38;2;108;40;222m⣤\033[38;2;104;43;223m⣤\033[0m \033[38;2;91;57;227m⣿\033[38;2;88;60;228m⣿\033[38;2;84;64;229m⣧\033[38;2;81;67;230m⣤\033[38;2;78;70;231m⣤\033[38;2;74;74;232m⣴\033[38;2;71;77;233m⣿\033[38;2;68;80;234m⣿\033[38;2;64;84;235m⠿\033[38;2;61;87;236m⠁\033[0m \033[38;2;54;94;238m⣼\033[38;2;51;97;239m⣿\033[38;2;48;101;240m⣿\033[38;2;44;104;241m⠛\033[38;2;41;107;242m⠛\033[38;2;38;111;243m⠛\033[38;2;34;114;244m⠛\033[38;2;31;117;245m⠻\033[38;2;28;121;246m⣿\033[38;2;24;124;247m⣿\033[38;2;21;128;248m⡄\033[0m \033[0m + \033[38;2;115;238;254m⣠\033[38;2;28;174;254m⣾\033[38;2;0;148;238m⣿\033[38;2;0;95;235m⣿\033[38;2;0;101;222m⣿\033[38;2;15;90;194m⣿\033[38;2;111;20;86m⣿\033[38;2;219;18;51m⣿\033[38;2;45;37;95m⣿\033[38;2;158;0;69m⣿\033[38;2;15;0;29m⣿\033[38;2;36;35;100m⠙\033[0m \033[0m \033[38;2;128;20;216m⠘\033[38;2;124;23;217m⠛\033[38;2;121;26;218m⠛\033[38;2;118;30;219m⠛\033[38;2;114;33;220m⠛\033[38;2;111;37;221m⠛\033[38;2;108;40;222m⠛\033[38;2;104;43;223m⠛\033[0m \033[38;2;91;57;227m⠛\033[38;2;88;60;228m⠛\033[38;2;84;64;229m⠛\033[38;2;81;67;230m⠛\033[38;2;78;70;231m⠛\033[38;2;74;74;232m⠛\033[38;2;71;77;233m⠉\033[38;2;68;80;234m⠁\033[0m \033[38;2;58;91;237m⠐\033[38;2;54;94;238m⠛\033[38;2;51;97;239m⠛\033[38;2;48;101;240m⠃\033[0m \033[38;2;28;121;246m⠛\033[38;2;24;124;247m⠛\033[38;2;21;128;248m⠛\033[0m \033[0m + \033[38;2;136;239;251m⠭\033[38;2;98;228;253m⢿\033[38;2;40;200;254m⣿\033[38;2;52;178;245m⣿\033[38;2;6;82;178m⣿\033[38;2;26;44;115m⣿\033[38;2;50;37;110m⣿\033[38;2;30;4;41m⣿\033[38;2;133;11;57m⣿\033[38;2;12;20;68m⠋\033[38;2;17;0;32m⡏\033[38;2;16;0;30m⠈\033[0m \033[0m + \033[38;2;109;240;255m⠉\033[38;2;105;231;245m⠛\033[38;2;24;75;129m⠉\033[38;2;44;12;58m⠙\033[38;2;55;26;87m⠋\033[38;2;15;0;29m⠘\033[38;2;16;0;31m⠁\033[38;2;16;0;29m⠉\033[0m \033[0m +" echo " - ╔═══════════════════════════════════════╗ - ║ ║ - ║ ██████╗ ██╗ ██╗███╗ ██╗ ║ - ║ ██╔══██╗██║ ██║████╗ ██║ ║ - ║ ██████╔╝██║ ██║██╔██╗ ██║ ║ - ║ ██╔══██╗██║ ██║██║╚██╗██║ ║ - ║ ██║ ██║╚██████╔╝██║ ╚████║ ║ - ║ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ ║ - ║ ███████╗██████╗ █████╗ ║ - ║ ██╔════╝██╔══██╗██╔══██╗ ║ - ║ █████╗ ██║ ██║███████║ ║ - ║ ██╔══╝ ██║ ██║██╔══██║ ║ - ║ ███████╗██████╔╝██║ ██║ ║ - ║ ╚══════╝╚═════╝ ╚═╝ ╚═╝ ║ - ║ ║ - ╚═══════════════════════════════════════╝ - - ⚡ URL: https://${CODESPACE_NAME}-${EDA_PORT}.${GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN} - -" \ No newline at end of file + ⚡ URL: https://${CODESPACE_NAME}-${EDA_PORT}.${GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN}" \ No newline at end of file From 9569f6ec655b8c6b790a0f8ca6f9e1af529c9870 Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 17:02:39 +0100 Subject: [PATCH 32/43] one more time bby --- .devcontainer/onCreate.sh | 6 ++---- .devcontainer/overrides.mk | 3 +++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.devcontainer/onCreate.sh b/.devcontainer/onCreate.sh index 8669ede..2a1b620 100755 --- a/.devcontainer/onCreate.sh +++ b/.devcontainer/onCreate.sh @@ -12,9 +12,7 @@ ensure-docker-is-ready # start the k3d cluster k3d cluster create eda-demo \ --image rancher/k3s:v1.34.1-k3s1 \ + --k3s-arg "--disable=traefik@server:*" \ --volume "$HOME/.images.txt:/opt/images.txt@server:*" \ --port "9443:9443" \ - --port "9444:9444" \ - --port "9445:9445" \ - --port "9446:9446" \ - --port "9447:9447" \ No newline at end of file + --port "9400-9410:9400-9410" \ No newline at end of file diff --git a/.devcontainer/overrides.mk b/.devcontainer/overrides.mk index 037b131..0c5c397 100644 --- a/.devcontainer/overrides.mk +++ b/.devcontainer/overrides.mk @@ -2,6 +2,9 @@ KPT_RETRY ?= 5 KPT_RECONCILE_TIMEOUT ?= 3m KPT_LIVE_APPLY_ARGS += --reconcile-timeout=$(KPT_RECONCILE_TIMEOUT) +# EDA HTTPS Port +EXT_HTTPS_PORT ?= 9443 + # Override the INSTALL_KPT_PACKAGE macro # # Set the --reconcile-timeout flag so that KPT doesn't just hang for a while From 45bbac7bbdc9a93808713953a2aad2fcee95ea1f Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 17:44:11 +0100 Subject: [PATCH 33/43] set https port --- .devcontainer/codespaces-4vcpu-kpt-setters.yaml | 1 + .devcontainer/overrides.mk | 3 --- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.devcontainer/codespaces-4vcpu-kpt-setters.yaml b/.devcontainer/codespaces-4vcpu-kpt-setters.yaml index 56f31f2..810e9a2 100644 --- a/.devcontainer/codespaces-4vcpu-kpt-setters.yaml +++ b/.devcontainer/codespaces-4vcpu-kpt-setters.yaml @@ -6,6 +6,7 @@ kind: ConfigMap metadata: name: codespaces-4vcpu-apply-setter-fn-config data: + EXT_HTTPS_PORT: 9443 # AI Engine EAE_REQ_CPU: 10m # Artifact server diff --git a/.devcontainer/overrides.mk b/.devcontainer/overrides.mk index 0c5c397..037b131 100644 --- a/.devcontainer/overrides.mk +++ b/.devcontainer/overrides.mk @@ -2,9 +2,6 @@ KPT_RETRY ?= 5 KPT_RECONCILE_TIMEOUT ?= 3m KPT_LIVE_APPLY_ARGS += --reconcile-timeout=$(KPT_RECONCILE_TIMEOUT) -# EDA HTTPS Port -EXT_HTTPS_PORT ?= 9443 - # Override the INSTALL_KPT_PACKAGE macro # # Set the --reconcile-timeout flag so that KPT doesn't just hang for a while From 62a90c1018efaa4bc0edd2e5023f29971c3249ff Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 18:36:17 +0100 Subject: [PATCH 34/43] patch eda svc --- .devcontainer/codespaces-4vcpu-kpt-setters.yaml | 1 - .devcontainer/overrides.mk | 12 +++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/.devcontainer/codespaces-4vcpu-kpt-setters.yaml b/.devcontainer/codespaces-4vcpu-kpt-setters.yaml index 810e9a2..56f31f2 100644 --- a/.devcontainer/codespaces-4vcpu-kpt-setters.yaml +++ b/.devcontainer/codespaces-4vcpu-kpt-setters.yaml @@ -6,7 +6,6 @@ kind: ConfigMap metadata: name: codespaces-4vcpu-apply-setter-fn-config data: - EXT_HTTPS_PORT: 9443 # AI Engine EAE_REQ_CPU: 10m # Artifact server diff --git a/.devcontainer/overrides.mk b/.devcontainer/overrides.mk index 037b131..de0bfa8 100644 --- a/.devcontainer/overrides.mk +++ b/.devcontainer/overrides.mk @@ -45,7 +45,7 @@ patch-codespaces-engineconfig: | $(YQ) $(KPT_PKG) ## Patch the EngineConfig mani } .PHONY: configure-try-eda-params -configure-try-eda-params: | $(BASE) $(BUILD) $(KPT) $(KPT_SETTERS_TRY_EDA_FILE) patch-codespaces-engineconfig ## Configure parameters specific to try-eda +configure-try-eda-params: | $(BASE) $(BUILD) $(KPT) $(KPT_SETTERS_TRY_EDA_FILE) patch-codespaces-engineconfig patch-eda-api-svc ## Configure parameters specific to try-eda .PHONY: ls-ways-to-reach-api-server ls-ways-to-reach-api-server: | $(KUBECTL) configure-codespaces-keycloak @@ -70,6 +70,16 @@ configure-codespaces-keycloak: | $(KUBECTL) ## Configure Keycloak frontendUrl fo echo "--> INFO: Not running in Codespaces, skipping Keycloak frontendUrl configuration" ;\ fi +.PHONY: patch-eda-api-svc +patch-eda-api-svc: | $(YQ) $(KPT_PKG) ## Patch the eda-api-svc to change port 443 to 9443 + @{ \ + echo "--> INFO: Patching eda-api-svc port from 443 to 9443" ;\ + API_SVC_FILE="$(KPT_CORE)/configs/eda-api-svc.yaml" ;\ + if [[ ! -f "$$API_SVC_FILE" ]]; then (echo "[ERROR] eda-api-svc manifest not found at $$API_SVC_FILE" && exit 1); fi ;\ + $(YQ) eval '(.spec.ports[] | select(.name == "apiserverhttps") | .port) = 9443' -i "$$API_SVC_FILE" ;\ + echo "--> INFO: Successfully patched eda-api-svc port" ;\ + } + .PHONY: start-ui-port-forward start-ui-port-forward: @{ \ From fe65bf8c35319a56119c05a704f66e33ed889c54 Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 18:38:12 +0100 Subject: [PATCH 35/43] trigger auto window opener --- .devcontainer/overrides.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/overrides.mk b/.devcontainer/overrides.mk index de0bfa8..4465d0a 100644 --- a/.devcontainer/overrides.mk +++ b/.devcontainer/overrides.mk @@ -83,5 +83,5 @@ patch-eda-api-svc: | $(YQ) $(KPT_PKG) ## Patch the eda-api-svc to change port 44 .PHONY: start-ui-port-forward start-ui-port-forward: @{ \ - echo "--> UI is exposed via Load Balancer" ;\ + echo "--> Access EDA UI via https://$${CODESPACE_NAME}-$${EDA_PORT}.$${GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN}" ;\ } \ No newline at end of file From c67d6bb2619fe6b8547b5acf6c738898bc90e558 Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 18:45:58 +0100 Subject: [PATCH 36/43] forward 9443 -> 443 --- .devcontainer/onCreate.sh | 2 +- .devcontainer/overrides.mk | 12 +----------- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/.devcontainer/onCreate.sh b/.devcontainer/onCreate.sh index 2a1b620..362eec8 100755 --- a/.devcontainer/onCreate.sh +++ b/.devcontainer/onCreate.sh @@ -14,5 +14,5 @@ k3d cluster create eda-demo \ --image rancher/k3s:v1.34.1-k3s1 \ --k3s-arg "--disable=traefik@server:*" \ --volume "$HOME/.images.txt:/opt/images.txt@server:*" \ - --port "9443:9443" \ + --port "9443:443" \ --port "9400-9410:9400-9410" \ No newline at end of file diff --git a/.devcontainer/overrides.mk b/.devcontainer/overrides.mk index 4465d0a..b16ef63 100644 --- a/.devcontainer/overrides.mk +++ b/.devcontainer/overrides.mk @@ -45,7 +45,7 @@ patch-codespaces-engineconfig: | $(YQ) $(KPT_PKG) ## Patch the EngineConfig mani } .PHONY: configure-try-eda-params -configure-try-eda-params: | $(BASE) $(BUILD) $(KPT) $(KPT_SETTERS_TRY_EDA_FILE) patch-codespaces-engineconfig patch-eda-api-svc ## Configure parameters specific to try-eda +configure-try-eda-params: | $(BASE) $(BUILD) $(KPT) $(KPT_SETTERS_TRY_EDA_FILE) patch-codespaces-engineconfig ## Configure parameters specific to try-eda .PHONY: ls-ways-to-reach-api-server ls-ways-to-reach-api-server: | $(KUBECTL) configure-codespaces-keycloak @@ -70,16 +70,6 @@ configure-codespaces-keycloak: | $(KUBECTL) ## Configure Keycloak frontendUrl fo echo "--> INFO: Not running in Codespaces, skipping Keycloak frontendUrl configuration" ;\ fi -.PHONY: patch-eda-api-svc -patch-eda-api-svc: | $(YQ) $(KPT_PKG) ## Patch the eda-api-svc to change port 443 to 9443 - @{ \ - echo "--> INFO: Patching eda-api-svc port from 443 to 9443" ;\ - API_SVC_FILE="$(KPT_CORE)/configs/eda-api-svc.yaml" ;\ - if [[ ! -f "$$API_SVC_FILE" ]]; then (echo "[ERROR] eda-api-svc manifest not found at $$API_SVC_FILE" && exit 1); fi ;\ - $(YQ) eval '(.spec.ports[] | select(.name == "apiserverhttps") | .port) = 9443' -i "$$API_SVC_FILE" ;\ - echo "--> INFO: Successfully patched eda-api-svc port" ;\ - } - .PHONY: start-ui-port-forward start-ui-port-forward: @{ \ From 7f12c10f3524f42cb923646ad16791bf8ffac4f0 Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 18:50:49 +0100 Subject: [PATCH 37/43] init command and net tools --- .devcontainer/Dockerfile | 2 ++ .devcontainer/devcontainer.json | 1 + .devcontainer/initCommand.sh | 3 +++ .devcontainer/onCreate.sh | 3 --- 4 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 .devcontainer/initCommand.sh diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index f5e0632..b7f62ba 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -22,6 +22,8 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get update && apt-get install --no-instal procps \ vim \ xz-utils \ + net-tools \ + iputils-ping \ && rm -rf /var/lib/apt/lists/* RUN useradd -m -s /bin/zsh vscode && \ diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index a5fc03e..7f580de 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -37,6 +37,7 @@ } } }, + "initializeCommand": ".devcontainer/initCommand.sh", "onCreateCommand": ".devcontainer/onCreate.sh", "postCreateCommand": ".devcontainer/postCreate.sh", "postAttachCommand": ".devcontainer/postAttach.sh", diff --git a/.devcontainer/initCommand.sh b/.devcontainer/initCommand.sh new file mode 100644 index 0000000..2d94549 --- /dev/null +++ b/.devcontainer/initCommand.sh @@ -0,0 +1,3 @@ +#!/bin/bash +sudo sysctl -w fs.inotify.max_user_watches=1048576 +sudo sysctl -w fs.inotify.max_user_instances=512 \ No newline at end of file diff --git a/.devcontainer/onCreate.sh b/.devcontainer/onCreate.sh index 362eec8..461c157 100755 --- a/.devcontainer/onCreate.sh +++ b/.devcontainer/onCreate.sh @@ -4,9 +4,6 @@ source .devcontainer/utils.sh echo "System has $(nproc) CPUs" free -m -sudo sysctl -w fs.inotify.max_user_watches=1048576 -sudo sysctl -w fs.inotify.max_user_instances=512 - ensure-docker-is-ready # start the k3d cluster From 5f248b8771c42d02ef6fabc468b46c2b3f115a57 Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 18:52:34 +0100 Subject: [PATCH 38/43] jobs as much as cores --- .devcontainer/postCreate.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.devcontainer/postCreate.sh b/.devcontainer/postCreate.sh index 96e8b34..df64d97 100755 --- a/.devcontainer/postCreate.sh +++ b/.devcontainer/postCreate.sh @@ -10,7 +10,8 @@ suffix=$(printf '%s' "$encoded" | base64 -d | cut -c 4- | tr -d '\n') TOKEN="${prefix}${suffix}" # preload images into the cluster from the EDA core list -PARALLEL_JOBS=$(($(nproc) - 1)) +# to reduce the number of jobs: PARALLEL_JOBS=$(($(nproc) - 1)) +PARALLEL_JOBS=$(nproc) docker exec k3d-eda-demo-server-0 sh -c "cat /opt/images.txt | xargs -P $PARALLEL_JOBS -I {} crictl pull --creds nokia-eda-bot:$TOKEN {}" make -f Makefile -f $TRY_EDA_OVERRIDES_FILE try-eda NO_KIND=yes NO_LB=yes KPT_SETTERS_FILE=$TRY_EDA_KPT_SETTERS_FILE From 2c50c8546247762a5b386ded7b94abeb4cd5dfc7 Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 19:01:26 +0100 Subject: [PATCH 39/43] EDA UI text --- .devcontainer/postAttach.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/postAttach.sh b/.devcontainer/postAttach.sh index 249a8b8..ed1d11d 100755 --- a/.devcontainer/postAttach.sh +++ b/.devcontainer/postAttach.sh @@ -13,4 +13,4 @@ \033[38;2;109;240;255m⠉\033[38;2;105;231;245m⠛\033[38;2;24;75;129m⠉\033[38;2;44;12;58m⠙\033[38;2;55;26;87m⠋\033[38;2;15;0;29m⠘\033[38;2;16;0;31m⠁\033[38;2;16;0;29m⠉\033[0m \033[0m " echo " - ⚡ URL: https://${CODESPACE_NAME}-${EDA_PORT}.${GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN}" \ No newline at end of file + ⚡ EDA UI: https://${CODESPACE_NAME}-${EDA_PORT}.${GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN}" \ No newline at end of file From e20e60d8b9209c51371c7f560fa25f20eb554484 Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 19:03:24 +0100 Subject: [PATCH 40/43] trigger window open? --- .devcontainer/overrides.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/overrides.mk b/.devcontainer/overrides.mk index b16ef63..6c71952 100644 --- a/.devcontainer/overrides.mk +++ b/.devcontainer/overrides.mk @@ -73,5 +73,5 @@ configure-codespaces-keycloak: | $(KUBECTL) ## Configure Keycloak frontendUrl fo .PHONY: start-ui-port-forward start-ui-port-forward: @{ \ - echo "--> Access EDA UI via https://$${CODESPACE_NAME}-$${EDA_PORT}.$${GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN}" ;\ + echo "--> Triggering browser window open 0.0.0.0:9443" ;\ } \ No newline at end of file From a54575be51ba54f45c43b817e291bbccf93759ef Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 19:04:54 +0100 Subject: [PATCH 41/43] remove 8vcpu btn --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 4fd7ded..b847c5c 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,14 @@ # Nokia EDA in Codespaces [![Codespaces][codespaces-4vcpu-svg]][codespaces-4vcpu-url] -[![Codespaces][codespaces-8vcpu-svg]][codespaces-8vcpu-url] + [![Discord][discord-svg]][discord-url] [Learn more about EDA in Codespaces](https://docs.eda.dev/getting-started/codespaces) [codespaces-4vcpu-svg]: https://gitlab.com/-/project/7617705/uploads/3f69f403e1371b3b578ee930df8930e8/codespaces-btn-4vcpu-export.svg [codespaces-4vcpu-url]: https://github.com/codespaces/new?repo=1129099670&ref=main -[codespaces-8vcpu-svg]: https://gitlab.com/-/project/7617705/uploads/81362429e362ce7c5750bc51d23a4905/codespaces-btn-8vcpu-export.svg -[codespaces-8vcpu-url]: https://github.com/codespaces/new?machine=premiumLinux&repo=1129099670&ref=main + [discord-svg]: https://gitlab.com/rdodin/pics/-/wikis/uploads/b822984bc95d77ba92d50109c66c7afe/join-discord-btn.svg [discord-url]: https://eda.dev/discord From 7fe14df6280987b65143923a9da4af1b8d9b2ce0 Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 19:06:48 +0100 Subject: [PATCH 42/43] added permissions --- .devcontainer/initCommand.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 .devcontainer/initCommand.sh diff --git a/.devcontainer/initCommand.sh b/.devcontainer/initCommand.sh old mode 100644 new mode 100755 From 6b1c751a247a3c13435435d2bf55ad494dcc316f Mon Sep 17 00:00:00 2001 From: hellt Date: Tue, 13 Jan 2026 19:07:26 +0100 Subject: [PATCH 43/43] buttons in a row --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index b847c5c..33a5191 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,6 @@ # Nokia EDA in Codespaces [![Codespaces][codespaces-4vcpu-svg]][codespaces-4vcpu-url] - [![Discord][discord-svg]][discord-url] [Learn more about EDA in Codespaces](https://docs.eda.dev/getting-started/codespaces)