feat: update actions container

- cleanup TAGS/PUSH make targets
- update actionsdind to include consul, packer, terraform, terragrunt and vault
- add script to build only images that changed, or all if build/ scripts are changed
This commit is contained in:
2025-01-12 13:05:03 +11:00
parent 980d2c495b
commit f497194dda
4 changed files with 57 additions and 32 deletions
+12 -30
View File
@@ -12,11 +12,19 @@ BRANCH=$(shell git branch --show-current)
# Find all subdirectories under the IMAGES_PATH
DIRS := $(shell find $(IMAGES_PATH) -mindepth 3 -maxdepth 3 -type d | sed 's|$(IMAGES_PATH)/||')
TAGS := $(shell find $(IMAGES_PATH) -mindepth 3 -maxdepth 3 -type d | sed 's|$(IMAGES_PATH)/|tag-|')
PUSH := $(shell find $(IMAGES_PATH) -mindepth 3 -maxdepth 3 -type d | sed 's|$(IMAGES_PATH)/|push-|')
.PHONY: list $(DIRS)
.DEFAULT_GOAL := default
default:
./ci/build.sh
# Make all images
all:
@for dir in $(DIRS); do \
$(MAKE) $$dir; \
done
# List all directories
list:
@echo "Images:"
@@ -30,6 +38,8 @@ $(DIRS):
@echo "Building for $@"
# Export environment
export VAULT_TOKEN=$$(vault write -field=token auth/approle/login role_id=$$VAULT_ROLEID)
export VAULT_ADDR=https://vault.service.consul:8200
@for kv in $$(vault kv get -format=json kv/service/packer/builder/env | jq -r '.data.data | to_entries[] | "\(.key)=\(.value)"'); do \
export "$kv"; \
done
@@ -77,34 +87,6 @@ $(DIRS):
consul kv put infra/packer/$@/date "$$READABLE_DATE"; \
fi
.PHONY: $(DIRS) $(TAGS) $(PUSH)
# Tag Docker images
$(TAGS):
@echo "Tagging Docker image for $$(echo $@ | sed 's|tag-||')"
@OS_NAME=$$(echo "$@" | sed 's|tag-||' | cut -d'/' -f1); \
OS_VERSION_FULL=$$(echo "$@" | sed 's|tag-||' | cut -d'/' -f2); \
OS_IMAGE=$$(echo "$@" | sed 's|tag-||' | cut -d'/' -f3); \
OS_VERSION_MAJOR=$$(echo $$OS_VERSION_FULL | cut -d'.' -f1); \
IMAGE_NAME="$(REGISTRY)/$(OWNER)/$$OS_NAME$$OS_VERSION_MAJOR-$$OS_IMAGE"; \
echo "Tagging Image Name: $$IMAGE_NAME:$(DATE_TAG)"; \
docker tag $$IMAGE_NAME $$IMAGE_NAME:$(DATE_TAG); \
echo "Tagging Image Name: $$IMAGE_NAME:latest"; \
docker tag $$IMAGE_NAME $$IMAGE_NAME:latest
# Push Docker images
$(PUSH):
@echo "Pushing Docker image for $$(echo $@ | sed 's|push-||')"
@OS_NAME=$$(echo "$@" | sed 's|push-||' | cut -d'/' -f1); \
OS_VERSION_FULL=$$(echo "$@" | sed 's|push-||' | cut -d'/' -f2); \
OS_IMAGE=$$(echo "$@" | sed 's|push-||' | cut -d'/' -f3); \
OS_VERSION_MAJOR=$$(echo $$OS_VERSION_FULL | cut -d'.' -f1); \
IMAGE_NAME="$(REGISTRY)/$(OWNER)/$$OS_NAME$$OS_VERSION_MAJOR-$$OS_IMAGE"; \
echo "Pushing Image Name: $$IMAGE_NAME:$(DATE_TAG)"; \
docker push $$IMAGE_NAME:$(DATE_TAG); \
echo "Pushing Image Name: $$IMAGE_NAME:latest"; \
docker push $$IMAGE_NAME:latest
# Clean all symlinks
clean:
@echo "Cleaning up symlinks..."