auth key
All checks were successful
Test and Publish Templates / test-and-publish (push) Successful in 39s

This commit is contained in:
Your Name
2025-09-20 09:16:27 +12:00
parent 47a51ec176
commit 9d8088a156
7 changed files with 243 additions and 66 deletions

View File

@@ -3,36 +3,20 @@ source "${AGENT_PATH}/common.sh"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# Check required environment variables
_check_required_env_vars "CONTAINER_NAME" "IMAGE_REGISTRY" "IMAGE_REPO" "IMAGE_TAG" "LOGSERVER_HOST" "LOGSERVER_PORT" "AUTH_MODE"
_check_required_env_vars "CONTAINER_NAME" "IMAGE_REGISTRY" "IMAGE_REPO" "IMAGE_TAG" "LOGSERVER_HOST" "LOGSERVER_PORT" "API_KEY"
# Validate authentication configuration
case "$AUTH_MODE" in
mtls)
_check_required_env_vars "CLIENT_CERT_PATH" "CLIENT_KEY_PATH" "CA_CERT_PATH"
if [ ! -f "$CLIENT_CERT_PATH" ]; then
_die "Client certificate not found at $CLIENT_CERT_PATH"
fi
if [ ! -f "$CLIENT_KEY_PATH" ]; then
_die "Client key not found at $CLIENT_KEY_PATH"
fi
if [ ! -f "$CA_CERT_PATH" ]; then
_die "CA certificate not found at $CA_CERT_PATH"
fi
;;
apikey)
_check_required_env_vars "API_KEY"
if [ -z "$API_KEY" ]; then
_die "API_KEY is empty. Please get an API key from the logserver administrator"
fi
;;
basic)
_check_required_env_vars "USERNAME" "PASSWORD"
echo "WARNING: Basic authentication is not recommended for production"
;;
*)
_die "Invalid AUTH_MODE: $AUTH_MODE. Must be one of: mtls, apikey, basic"
;;
esac
# Validate API key
if [ -z "$API_KEY" ]; then
echo ""
echo "ERROR: API_KEY is not configured"
echo ""
echo "To get an API key:"
echo "1. On the logserver, run: ./generate-api-key.sh"
echo "2. Enter this client's hostname when prompted"
echo "3. Copy the generated API_KEY to this client's service.env"
echo ""
_die "Missing API_KEY configuration"
fi
# Check Docker is available
_check_docker_installed || _die "Docker test failed"
@@ -59,4 +43,4 @@ bash ./start.sh || _die "Failed to start Filebeat"
echo "Installation of ${CONTAINER_NAME} complete"
echo "Collecting logs from Docker API and shipping to ${LOGSERVER_HOST}:${LOGSERVER_PORT}"
echo "Authentication mode: ${AUTH_MODE}"
echo "Using API key authentication"