update
This commit is contained in:
@@ -1,65 +0,0 @@
|
||||
#!/bin/bash
|
||||
# Script pour créer manuellement les Endpoints pour les équipements externes
|
||||
|
||||
set -e
|
||||
|
||||
NAMESPACE="${1:-traefik-dev}"
|
||||
SERVICE_NAME="${2:-omv-backend}"
|
||||
IP="${3:-10.78.20.107}"
|
||||
PORT="${4:-80}"
|
||||
|
||||
if [ -z "$SERVICE_NAME" ] || [ -z "$IP" ]; then
|
||||
echo "Usage: $0 [namespace] <service-name> <ip> [port]"
|
||||
echo ""
|
||||
echo "Exemple:"
|
||||
echo " $0 traefik-dev omv-backend 10.78.20.107 80"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "=== Création des Endpoints ==="
|
||||
echo "Namespace: $NAMESPACE"
|
||||
echo "Service: $SERVICE_NAME"
|
||||
echo "IP: $IP"
|
||||
echo "Port: $PORT"
|
||||
echo ""
|
||||
|
||||
# Vérifier que le service existe
|
||||
if ! kubectl get service "$SERVICE_NAME" -n "$NAMESPACE" &>/dev/null; then
|
||||
echo "❌ Erreur: Le service '$SERVICE_NAME' n'existe pas dans '$NAMESPACE'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Vérifier si les Endpoints existent déjà
|
||||
if kubectl get endpoints "$SERVICE_NAME" -n "$NAMESPACE" &>/dev/null; then
|
||||
echo "⚠️ Les Endpoints existent déjà. Voulez-vous les mettre à jour ? (o/N)"
|
||||
read -r REPLY
|
||||
if [[ ! $REPLY =~ ^[OoYy]$ ]]; then
|
||||
echo "Opération annulée"
|
||||
exit 0
|
||||
fi
|
||||
echo "Suppression des anciens Endpoints..."
|
||||
kubectl delete endpoints "$SERVICE_NAME" -n "$NAMESPACE"
|
||||
fi
|
||||
|
||||
# Créer les Endpoints
|
||||
echo "Création des Endpoints..."
|
||||
kubectl create -f - <<EOF
|
||||
apiVersion: v1
|
||||
kind: Endpoints
|
||||
metadata:
|
||||
name: $SERVICE_NAME
|
||||
namespace: $NAMESPACE
|
||||
subsets:
|
||||
- addresses:
|
||||
- ip: $IP
|
||||
ports:
|
||||
- port: $PORT
|
||||
protocol: TCP
|
||||
EOF
|
||||
|
||||
echo ""
|
||||
echo "✅ Endpoints créés avec succès !"
|
||||
echo ""
|
||||
echo "Vérification:"
|
||||
kubectl get endpoints "$SERVICE_NAME" -n "$NAMESPACE" -o yaml
|
||||
|
||||
@@ -1,127 +0,0 @@
|
||||
#!/bin/bash
|
||||
# Script pour exporter un certificat TLS depuis Kubernetes vers un format utilisable par des équipements externes
|
||||
|
||||
set -e
|
||||
|
||||
SECRET_NAME="${1}"
|
||||
NAMESPACE="${2:-certificates-ops}"
|
||||
CONTEXT="${3:-cluster-ops}"
|
||||
OUTPUT_DIR="${4:-./certificates-export}"
|
||||
FORMAT="${5:-pem}" # pem, pkcs12, pfx
|
||||
|
||||
if [ -z "$SECRET_NAME" ]; then
|
||||
echo "Usage: $0 <secret-name> [namespace] [context] [output-dir] [format]"
|
||||
echo ""
|
||||
echo "Exemples:"
|
||||
echo " $0 wildcard-prd-tls certificates-ops cluster-ops ./certs pem"
|
||||
echo " $0 wildcard-prd-tls certificates-ops cluster-ops ./certs pkcs12"
|
||||
echo ""
|
||||
echo "Formats disponibles:"
|
||||
echo " - pem: Certificat et clé en format PEM (par défaut)"
|
||||
echo " - pkcs12: Format PKCS12 (.p12) pour pfSense, etc."
|
||||
echo " - pfx: Format PFX (identique à PKCS12)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "=== Export du certificat TLS ==="
|
||||
echo "Secret: $SECRET_NAME"
|
||||
echo "Namespace: $NAMESPACE"
|
||||
echo "Context: $CONTEXT"
|
||||
echo "Format: $FORMAT"
|
||||
echo ""
|
||||
|
||||
# Créer le répertoire de sortie
|
||||
mkdir -p "$OUTPUT_DIR"
|
||||
|
||||
# Vérifier que le secret existe
|
||||
if ! kubectl get secret "$SECRET_NAME" -n "$NAMESPACE" --context="$CONTEXT" &>/dev/null; then
|
||||
echo "❌ Erreur: Le secret '$SECRET_NAME' n'existe pas dans '$NAMESPACE'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Extraire le certificat et la clé
|
||||
echo "📥 Extraction du certificat depuis Kubernetes..."
|
||||
kubectl get secret "$SECRET_NAME" -n "$NAMESPACE" --context="$CONTEXT" -o jsonpath='{.data.tls\.crt}' | base64 -d > "$OUTPUT_DIR/$SECRET_NAME.crt"
|
||||
kubectl get secret "$SECRET_NAME" -n "$NAMESPACE" --context="$CONTEXT" -o jsonpath='{.data.tls\.key}' | base64 -d > "$OUTPUT_DIR/$SECRET_NAME.key"
|
||||
|
||||
# Extraire la chaîne de certificats complète (certificat + CA)
|
||||
kubectl get secret "$SECRET_NAME" -n "$NAMESPACE" --context="$CONTEXT" -o jsonpath='{.data.ca\.crt}' | base64 -d > "$OUTPUT_DIR/$SECRET_NAME-ca.crt" 2>/dev/null || true
|
||||
|
||||
echo "✅ Certificat et clé extraits"
|
||||
echo ""
|
||||
|
||||
# Convertir selon le format demandé
|
||||
case "$FORMAT" in
|
||||
pem)
|
||||
echo "📄 Format PEM (déjà généré)"
|
||||
echo " Certificat: $OUTPUT_DIR/$SECRET_NAME.crt"
|
||||
echo " Clé privée: $OUTPUT_DIR/$SECRET_NAME.key"
|
||||
if [ -f "$OUTPUT_DIR/$SECRET_NAME-ca.crt" ]; then
|
||||
echo " CA: $OUTPUT_DIR/$SECRET_NAME-ca.crt"
|
||||
fi
|
||||
;;
|
||||
pkcs12|pfx)
|
||||
echo "📦 Conversion en format PKCS12..."
|
||||
|
||||
# Demander un mot de passe pour le fichier PKCS12
|
||||
read -sp "Mot de passe pour le fichier PKCS12 (laissez vide pour aucun): " PASSWORD
|
||||
echo ""
|
||||
|
||||
# Créer le fichier PKCS12
|
||||
if [ -z "$PASSWORD" ]; then
|
||||
openssl pkcs12 -export \
|
||||
-out "$OUTPUT_DIR/$SECRET_NAME.p12" \
|
||||
-inkey "$OUTPUT_DIR/$SECRET_NAME.key" \
|
||||
-in "$OUTPUT_DIR/$SECRET_NAME.crt" \
|
||||
-name "$SECRET_NAME" \
|
||||
-passout pass:
|
||||
else
|
||||
openssl pkcs12 -export \
|
||||
-out "$OUTPUT_DIR/$SECRET_NAME.p12" \
|
||||
-inkey "$OUTPUT_DIR/$SECRET_NAME.key" \
|
||||
-in "$OUTPUT_DIR/$SECRET_NAME.crt" \
|
||||
-name "$SECRET_NAME" \
|
||||
-passout pass:"$PASSWORD"
|
||||
fi
|
||||
|
||||
echo "✅ Fichier PKCS12 créé: $OUTPUT_DIR/$SECRET_NAME.p12"
|
||||
;;
|
||||
*)
|
||||
echo "❌ Format '$FORMAT' non supporté"
|
||||
echo " Formats disponibles: pem, pkcs12, pfx"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# Afficher les informations du certificat
|
||||
echo ""
|
||||
echo "📋 Informations du certificat:"
|
||||
openssl x509 -in "$OUTPUT_DIR/$SECRET_NAME.crt" -noout -subject -issuer -dates 2>/dev/null || echo " (openssl non disponible pour afficher les détails)"
|
||||
|
||||
echo ""
|
||||
echo "✅ Export terminé dans: $OUTPUT_DIR"
|
||||
echo ""
|
||||
echo "📝 Prochaines étapes:"
|
||||
echo ""
|
||||
case "$FORMAT" in
|
||||
pem)
|
||||
echo "Pour pfSense:"
|
||||
echo " 1. Allez dans System > Certificates"
|
||||
echo " 2. Cliquez sur 'Import'"
|
||||
echo " 3. Importez le certificat ($SECRET_NAME.crt)"
|
||||
echo " 4. Importez la clé privée ($SECRET_NAME.key)"
|
||||
echo ""
|
||||
echo "Pour OpenMediaVault:"
|
||||
echo " 1. Allez dans System > Certificates > SSL"
|
||||
echo " 2. Cliquez sur 'Import'"
|
||||
echo " 3. Sélectionnez le certificat et la clé"
|
||||
;;
|
||||
pkcs12|pfx)
|
||||
echo "Pour pfSense:"
|
||||
echo " 1. Allez dans System > Certificates"
|
||||
echo " 2. Cliquez sur 'Import'"
|
||||
echo " 3. Sélectionnez le fichier PKCS12 ($SECRET_NAME.p12)"
|
||||
echo " 4. Entrez le mot de passe si vous en avez défini un"
|
||||
;;
|
||||
esac
|
||||
|
||||
Reference in New Issue
Block a user