Refactor Docker Compose examples and plugins, add pytest tests
- Adjusted Compose files to build images locally instead of pulling. - Simplified examples by removing `/etc/hosts` entry instructions. - Enhanced `cloudflare.py` plugin with a configurable log format. - Improved `generate-keys.sh` for portability using `$SCRIPT_DIR`. - Added end-to-end tests for Compose examples using pytest.
This commit is contained in:
parent
343987ab58
commit
5767e55dea
19 changed files with 1162 additions and 89 deletions
|
|
@ -7,26 +7,29 @@ set -e
|
|||
echo "Generating SSL certificates and JWT keys for EasyHAProxy examples..."
|
||||
echo ""
|
||||
|
||||
# Get the directory where this script is located
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
|
||||
# Create necessary directories
|
||||
mkdir -p examples/static
|
||||
mkdir -p examples/docker
|
||||
mkdir -p examples/docker/certs/haproxy
|
||||
mkdir -p examples/swarm/certs
|
||||
mkdir -p "$SCRIPT_DIR/static"
|
||||
mkdir -p "$SCRIPT_DIR/docker"
|
||||
mkdir -p "$SCRIPT_DIR/docker/certs/haproxy"
|
||||
mkdir -p "$SCRIPT_DIR/swarm/certs"
|
||||
|
||||
# ============================================================================
|
||||
# Generate SSL Certificate for host1.local (4096-bit RSA, 10-year validity)
|
||||
# ============================================================================
|
||||
echo "Generating host1.local certificate (4096-bit RSA, 10-year validity)..."
|
||||
openssl req -x509 -nodes -days 3650 -newkey rsa:4096 \
|
||||
-keyout examples/static/host1.local.pem \
|
||||
-out examples/static/host1.local.pem \
|
||||
-keyout "$SCRIPT_DIR/static/host1.local.pem" \
|
||||
-out "$SCRIPT_DIR/static/host1.local.pem" \
|
||||
-subj "/C=US/ST=State/L=City/O=Organization/CN=host1.local"
|
||||
|
||||
# Copy to swarm directory
|
||||
cp examples/static/host1.local.pem examples/swarm/certs/host1.local.pem
|
||||
echo " Created host1.local.pem (4096-bit, 10 years)"
|
||||
echo " - examples/static/host1.local.pem"
|
||||
echo " - examples/swarm/certs/host1.local.pem"
|
||||
cp "$SCRIPT_DIR/static/host1.local.pem" "$SCRIPT_DIR/swarm/certs/host1.local.pem"
|
||||
echo "✓ Created host1.local.pem (4096-bit, 10 years)"
|
||||
echo " - $SCRIPT_DIR/static/host1.local.pem"
|
||||
echo " - $SCRIPT_DIR/swarm/certs/host1.local.pem"
|
||||
echo ""
|
||||
|
||||
# ============================================================================
|
||||
|
|
@ -34,15 +37,15 @@ echo ""
|
|||
# ============================================================================
|
||||
echo "Generating host2.local certificate (2048-bit RSA, 1-year validity)..."
|
||||
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
|
||||
-keyout examples/docker/host2.local.pem \
|
||||
-out examples/docker/host2.local.pem \
|
||||
-keyout "$SCRIPT_DIR/docker/host2.local.pem" \
|
||||
-out "$SCRIPT_DIR/docker/host2.local.pem" \
|
||||
-subj "/C=US/ST=State/L=City/O=Organization/CN=host2.local"
|
||||
|
||||
# Copy to swarm directory
|
||||
cp examples/docker/host2.local.pem examples/swarm/certs/host2.local.pem
|
||||
echo " Created host2.local.pem (2048-bit, 1 year)"
|
||||
echo " - examples/docker/host2.local.pem"
|
||||
echo " - examples/swarm/certs/host2.local.pem"
|
||||
cp "$SCRIPT_DIR/docker/host2.local.pem" "$SCRIPT_DIR/swarm/certs/host2.local.pem"
|
||||
echo "✓ Created host2.local.pem (2048-bit, 1 year)"
|
||||
echo " - $SCRIPT_DIR/docker/host2.local.pem"
|
||||
echo " - $SCRIPT_DIR/swarm/certs/host2.local.pem"
|
||||
echo ""
|
||||
|
||||
# ============================================================================
|
||||
|
|
@ -51,14 +54,14 @@ echo ""
|
|||
echo "Generating JWT RSA key pair (2048-bit)..."
|
||||
|
||||
# Generate private key
|
||||
openssl genrsa -out examples/docker/jwt_private.pem 2048
|
||||
openssl genrsa -out "$SCRIPT_DIR/docker/jwt_private.pem" 2048
|
||||
|
||||
# Extract public key
|
||||
openssl rsa -in examples/docker/jwt_private.pem -pubout -out examples/docker/jwt_pubkey.pem
|
||||
openssl rsa -in "$SCRIPT_DIR/docker/jwt_private.pem" -pubout -out "$SCRIPT_DIR/docker/jwt_pubkey.pem"
|
||||
|
||||
echo " Created JWT key pair (2048-bit)"
|
||||
echo " - examples/docker/jwt_private.pem (private key)"
|
||||
echo " - examples/docker/jwt_pubkey.pem (public key)"
|
||||
echo "✓ Created JWT key pair (2048-bit)"
|
||||
echo " - $SCRIPT_DIR/docker/jwt_private.pem (private key)"
|
||||
echo " - $SCRIPT_DIR/docker/jwt_pubkey.pem (public key)"
|
||||
echo ""
|
||||
|
||||
# ============================================================================
|
||||
|
|
@ -66,12 +69,12 @@ echo ""
|
|||
# ============================================================================
|
||||
echo "Generating placeholder certificate..."
|
||||
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
|
||||
-keyout examples/docker/certs/haproxy/.place_holder_cert.pem \
|
||||
-out examples/docker/certs/haproxy/.place_holder_cert.pem \
|
||||
-keyout "$SCRIPT_DIR/docker/certs/haproxy/.place_holder_cert.pem" \
|
||||
-out "$SCRIPT_DIR/docker/certs/haproxy/.place_holder_cert.pem" \
|
||||
-subj "/C=US/ST=State/L=City/O=Organization/CN=placeholder"
|
||||
|
||||
echo " Created placeholder certificate"
|
||||
echo " - examples/docker/certs/haproxy/.place_holder_cert.pem"
|
||||
echo "✓ Created placeholder certificate"
|
||||
echo " - $SCRIPT_DIR/docker/certs/haproxy/.place_holder_cert.pem"
|
||||
echo ""
|
||||
|
||||
# ============================================================================
|
||||
|
|
@ -94,4 +97,4 @@ echo " - These are self-signed certificates for TESTING ONLY"
|
|||
echo " - DO NOT use these certificates in production"
|
||||
echo " - Browsers will show security warnings for self-signed certificates"
|
||||
echo " - JWT keys should be kept secure and rotated regularly"
|
||||
echo ""
|
||||
echo ""
|
||||
Loading…
Add table
Add a link
Reference in a new issue