Skip to content
Merged
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
6 changes: 6 additions & 0 deletions .terraform.lock.hcl

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions example/.terraform.lock.hcl

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 2 additions & 3 deletions example/Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
SHELL = bash
.ONESHELL:

ENV ?= dev
K3S_CHANNEL ?= stable
Expand All @@ -20,11 +19,11 @@ up: .terraform env.auto.tfvars
$(MAKE) port-forward

down: .terraform env.auto.tfvars
files/registry-port-forward.sh down
tofu destroy -auto-approve

port-forward:
source files/env.sh
bash files/registry-port-forward.sh
source files/env.sh && files/registry-port-forward.sh up

clean:
rm -Rf files/ .terraform/ terraform.tfstate* env.auto.tfvars
58 changes: 53 additions & 5 deletions registry-port-forward.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,67 @@

set -ue -o pipefail

run() {
unit="k8s-registry-port-forward.service"
service="k8s-registry-port-forward"

run_systemd() {
description="Port Forward for Container Registry of k8s dev environment"

systemctl --user stop "$unit" 2> /dev/null || true
cleanup_systemd

systemd-run --user \
--unit="$unit" \
--unit="$service.service" \
--description="$description" \
--same-dir \
--setenv="KUBECONFIG=$KUBECONFIG" \
--collect \
kubectl port-forward -n kube-system svc/docker-registry 30666:5000
}

run
cleanup_systemd() {
systemctl --user stop "$service.service" 2> /dev/null || true
}

run_launchd() {
cleanup_launchd

launchctl submit \
-l "$service" \
-p "$(command -v kubectl)" \
-- kubectl --kubeconfig="$KUBECONFIG" port-forward -n kube-system svc/docker-registry 30666:5000
}

cleanup_launchd() {
launchctl remove "$service" 2> /dev/null || true
}

if command -v systemctl > /dev/null; then
run="run_systemd"
cleanup="cleanup_systemd"
elif command -v launchctl > /dev/null; then
run="run_launchd"
cleanup="cleanup_launchd"
else
echo "No supported init system found"
exit 1
fi

help() {
cat << EOF >&2
Usage:
$0 up
$0 down
EOF
exit 1
}

case "${1:-}" in
"up")
$run
;;
"down")
$cleanup
;;
*)
help
;;
esac