diff --git a/Dockers/remote-react-container/entrypoint.sh b/Dockers/remote-react-container/entrypoint.sh index 3560954..0b4c05b 100644 --- a/Dockers/remote-react-container/entrypoint.sh +++ b/Dockers/remote-react-container/entrypoint.sh @@ -76,6 +76,86 @@ else exit 1 fi +# Function to add labels to teleport.yaml +# Function to add labels to teleport.yaml +add_teleport_labels() { + if [ -n "$TELEPORT_LABELS" ]; then + echo "Adding Teleport labels from TELEPORT_LABELS environment variable..." + + # Check if ssh_service section exists + if ! grep -q "ssh_service:" "$CONFIG_FILE"; then + echo "Error: ssh_service section not found in teleport.yaml" + return 1 + fi + + # Create a backup + cp "$CONFIG_FILE" "$CONFIG_FILE.backup" + + # Build the new ssh_service section + NEW_SSH_SECTION="ssh_service:" + NEW_SSH_SECTION="$NEW_SSH_SECTION"$'\n'" labels:" + + # Parse TELEPORT_LABELS and add each label + IFS=',' read -ra LABELS <<< "$TELEPORT_LABELS" + for label in "${LABELS[@]}"; do + # Trim whitespace + label=$(echo "$label" | xargs) + + # Check if label contains colon + if [[ "$label" == *":"* ]]; then + key=$(echo "$label" | cut -d':' -f1 | xargs) + value=$(echo "$label" | cut -d':' -f2- | xargs) + + if [ -n "$key" ] && [ -n "$value" ]; then + NEW_SSH_SECTION="$NEW_SSH_SECTION"$'\n'" $key: $value" + echo "Added label: $key = $value" + else + echo "Warning: Invalid label format '$label'. Expected format: key:value" + fi + else + echo "Warning: Label '$label' does not contain colon separator. Expected format: key:value" + fi + done + + NEW_SSH_SECTION="$NEW_SSH_SECTION"$'\n'" enabled: \"yes\"" + + # Replace the ssh_service section + awk -v new_section="$NEW_SSH_SECTION" ' + BEGIN { + in_ssh_service = 0 + section_replaced = 0 + } + /^ssh_service:/ { + in_ssh_service = 1 + if (!section_replaced) { + print new_section + section_replaced = 1 + } + next + } + in_ssh_service && /^[a-zA-Z_][a-zA-Z0-9_]*:/ { + in_ssh_service = 0 + } + in_ssh_service { + next + } + { + print $0 + } + ' "$CONFIG_FILE" > "$CONFIG_FILE.tmp" + + # Replace the original file + mv "$CONFIG_FILE.tmp" "$CONFIG_FILE" + + echo "Teleport labels added successfully" + else + echo "No TELEPORT_LABELS environment variable set, skipping label configuration" + fi +} + +# Add labels to teleport configuration +add_teleport_labels + # Change to the repository directory cd /workspace diff --git a/Dockers/remote-react-container/version b/Dockers/remote-react-container/version index 389f774..8a36cd1 100644 --- a/Dockers/remote-react-container/version +++ b/Dockers/remote-react-container/version @@ -1 +1 @@ -4.0 \ No newline at end of file +4.1 \ No newline at end of file