From bcc393b0f934924128148d7eef187ccab83f640e Mon Sep 17 00:00:00 2001
From: Sheogorath <sheogorath@shivering-isles.com>
Date: Fri, 15 Jul 2022 03:11:40 +0200
Subject: [PATCH] chore(cli): Move CLI to koolbox image

This patch moves the CLI directory to the koolbox image directory,
bringing it in line with other container images, helping to utilise
standardised workflows.
---
 Makefile                              | 16 ++------------
 cli/Makefile                          | 31 ---------------------------
 images/.utils/gitlab-ci.yaml          |  1 +
 images/koolbox/.release               |  1 +
 {cli => images/koolbox}/Dockerfile    |  0
 images/koolbox/Makefile               | 21 ++++++++++++++++++
 {cli => images/koolbox}/README.md     |  0
 {cli => images/koolbox}/koolbox       |  2 +-
 {cli => images/koolbox}/koolbox.dummy |  0
 9 files changed, 26 insertions(+), 46 deletions(-)
 delete mode 100644 cli/Makefile
 create mode 100644 images/koolbox/.release
 rename {cli => images/koolbox}/Dockerfile (100%)
 create mode 100644 images/koolbox/Makefile
 rename {cli => images/koolbox}/README.md (100%)
 rename {cli => images/koolbox}/koolbox (96%)
 rename {cli => images/koolbox}/koolbox.dummy (100%)

diff --git a/Makefile b/Makefile
index 9ef41ea5a..c044e1c0b 100644
--- a/Makefile
+++ b/Makefile
@@ -14,11 +14,11 @@ check-machine: ## Check your local machine setup to be prepared for the installa
 
 .PHONY: cli
 cli: ## Install koolbox CLI (Contains all tools used in this project)
-	cd ./cli && make install
+	cd ./images/koolbox && make install
 
 .PHONY: cli-config
 cli-config: ## Configure koolbox CLI (To setup terraform values as well was tokens)
-	cd ./cli && make config
+	cd ./images/koolbox && make config
 
 .PHONY: docs
 docs: cli ## Build and render docs locally
@@ -27,15 +27,3 @@ docs: cli ## Build and render docs locally
 .PHONY: validate
 validate:
 	./scripts/validate.sh
-
-.PHONY: deploy
-deploy: check-machine ## Deploy infrastructure on Hetzner Cloud
-	cd ./terraform && make apply
-	date
-	sleep 300
-	make kubernetes-install
-
-.PHONY: destroy
-destroy: check-machine ## Destroy infrastructure on Hetzner Cloud
-	cd ./terraform && make destroy
-	for i in cp0{1..3}.$(TF_VAR_dns_domain); do ssh-keygen -R "$$i"; done
diff --git a/cli/Makefile b/cli/Makefile
deleted file mode 100644
index 3d84b6274..000000000
--- a/cli/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-.DEFAULT_GOAL := help
-
-XDG_CONFIG_HOME ?= $(HOME)/.config
-EDITOR ?= "vi"
-
-# Do not adjust.
-KOOLBOX_IMAGE = "quay.io/sheogorath/koolbox:latest"
-
-include ../utils/help.mk
-
-.PHONY: preflight
-preflight:
-	# Check for required tools
-	command -v podman > /dev/null
-
-.PHONY: install
-install: preflight build-if-not-exists ## Install koolbox, the Kubernetes Toolbox for SI-Infrastructure
-	install -m 755 ./koolbox ~/bin/koolbox
-
-.PHONY: build
-build: preflight ## Build container locally instead of using one from upstream
-	podman build -t $(KOOLBOX_IMAGE) .
-
-.PHONY: build-if-not-exists
-build-if-not-exists: preflight
-	podman image exists $(KOOLBOX_IMAGE) || make build
-
-.PHONY: config
-config: ## Edit your koolbox environment config
-	mkdir -p "${XDG_CONFIG_HOME}/koolbox/"
-	${EDITOR} "${XDG_CONFIG_HOME}/koolbox/env"
diff --git a/images/.utils/gitlab-ci.yaml b/images/.utils/gitlab-ci.yaml
index 6c0537c39..1063877c0 100644
--- a/images/.utils/gitlab-ci.yaml
+++ b/images/.utils/gitlab-ci.yaml
@@ -4,6 +4,7 @@
       - IMAGE:
           - dovecot
           - postfix
+          - koolbox
 
 
 container-build:
diff --git a/images/koolbox/.release b/images/koolbox/.release
new file mode 100644
index 000000000..85f180f38
--- /dev/null
+++ b/images/koolbox/.release
@@ -0,0 +1 @@
+release=0.1.0
diff --git a/cli/Dockerfile b/images/koolbox/Dockerfile
similarity index 100%
rename from cli/Dockerfile
rename to images/koolbox/Dockerfile
diff --git a/images/koolbox/Makefile b/images/koolbox/Makefile
new file mode 100644
index 000000000..b3ce0f424
--- /dev/null
+++ b/images/koolbox/Makefile
@@ -0,0 +1,21 @@
+.DEFAULT_GOAL := help
+
+XDG_CONFIG_HOME ?= $(HOME)/.config
+EDITOR ?= "vi"
+
+include ../.utils/container-build.mk
+include ../../utils/help.mk
+
+.PHONY: preflight
+preflight:
+	# Check for required tools
+	command -v podman > /dev/null
+
+.PHONY: install
+install: preflight build ## Install koolbox, the Kubernetes Toolbox for SI-Infrastructure
+	install -m 755 ./koolbox ~/bin/koolbox
+
+.PHONY: config
+config: ## Edit your koolbox environment config
+	mkdir -p "${XDG_CONFIG_HOME}/koolbox/"
+	${EDITOR} "${XDG_CONFIG_HOME}/koolbox/env"
diff --git a/cli/README.md b/images/koolbox/README.md
similarity index 100%
rename from cli/README.md
rename to images/koolbox/README.md
diff --git a/cli/koolbox b/images/koolbox/koolbox
similarity index 96%
rename from cli/koolbox
rename to images/koolbox/koolbox
index 8b49d2adf..784bb22d7 100755
--- a/cli/koolbox
+++ b/images/koolbox/koolbox
@@ -31,4 +31,4 @@ podman run --rm -it \
     -v "$CONFIG_DIR/helm:/root/.cache/helm:z" \
     -v "$DATA_DIR/helm:/root/.local/share/helm:z" \
     -v "$(pwd):/workspace:z" -w /workspace \
-    quay.io/sheogorath/koolbox:latest $@
+    quay.io/shivering-isles/koolbox:latest $@
diff --git a/cli/koolbox.dummy b/images/koolbox/koolbox.dummy
similarity index 100%
rename from cli/koolbox.dummy
rename to images/koolbox/koolbox.dummy
-- 
GitLab