This commit is contained in:
2025-08-23 05:46:18 -07:00
parent 476f319acc
commit 73c0de1f67
8 changed files with 11 additions and 181 deletions

View File

@@ -1,23 +0,0 @@
#!/bin/bash
# Simple backup script for your personal cloud
# This is a placeholder for future implementation
SCRIPT_PATH="$(realpath "${BASH_SOURCE[0]}")"
SCRIPT_DIR="$(dirname "$SCRIPT_PATH")"
cd "$SCRIPT_DIR"
if [[ -f "../load-env.sh" ]]; then
source ../load-env.sh
fi
BACKUP_DIR="${PROJECT_DIR}/backups/$(date +%Y-%m-%d)"
mkdir -p "$BACKUP_DIR"
# Back up Kubernetes resources
kubectl get all -A -o yaml > "$BACKUP_DIR/all-resources.yaml"
kubectl get secrets -A -o yaml > "$BACKUP_DIR/secrets.yaml"
kubectl get configmaps -A -o yaml > "$BACKUP_DIR/configmaps.yaml"
# Back up persistent volumes
# TODO: Add logic to back up persistent volume data
echo "Backup completed: $BACKUP_DIR"

View File

@@ -1,85 +0,0 @@
#!/usr/bin/env bash
# This script generates config.env and secrets.env files for an app
# by evaluating variables in the app's .env file and splitting them
# into regular config and secret variables based on the "# Secrets" marker
#
# Usage: bin/generate-config [app-name]
set -e
# Source environment variables from load-env.sh
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_DIR="$(dirname "$SCRIPT_DIR")"
if [ -f "$REPO_DIR/load-env.sh" ]; then
source "$REPO_DIR/load-env.sh"
fi
# Function to process a single app
process_app() {
local APP_NAME="$1"
local APP_DIR="$APPS_DIR/$APP_NAME"
local ENV_FILE="$APP_DIR/config/.env"
local CONFIG_FILE="$APP_DIR/config/config.env"
local SECRETS_FILE="$APP_DIR/config/secrets.env"
# Check if the app exists
if [ ! -d "$APP_DIR" ]; then
echo "Error: App '$APP_NAME' not found"
return 1
fi
# Check if the .env file exists
if [ ! -f "$ENV_FILE" ]; then
echo "Warning: Environment file not found: $ENV_FILE"
return 0
fi
# Process the .env file
echo "Generating config files for $APP_NAME..."
# Create temporary files for processed content
local TMP_FILE="$APP_DIR/config/processed.env"
# Process the file with envsubst to expand variables
envsubst < "$ENV_FILE" > $TMP_FILE
# Initialize header for output files
echo "# Generated by \`generate-config\` on $(date)" > "$CONFIG_FILE"
echo "# Generated by \`generate-config\` on $(date)" > "$SECRETS_FILE"
# Find the line number of the "# Secrets" marker
local SECRETS_LINE=$(grep -n "^# Secrets" $TMP_FILE | cut -d':' -f1)
if [ -n "$SECRETS_LINE" ]; then
# Extract non-comment lines with "=" before the "# Secrets" marker
head -n $((SECRETS_LINE - 1)) $TMP_FILE | grep -v "^#" | grep "=" >> "$CONFIG_FILE"
# Extract non-comment lines with "=" after the "# Secrets" marker
tail -n +$((SECRETS_LINE + 1)) $TMP_FILE | grep -v "^#" | grep "=" >> "$SECRETS_FILE"
else
# No secrets marker found, put everything in config
grep -v "^#" $TMP_FILE | grep "=" >> "$CONFIG_FILE"
fi
# Clean up
rm -f "$TMP_FILE"
echo "Generated:"
echo " - $CONFIG_FILE"
echo " - $SECRETS_FILE"
}
# Process all apps or specific app
if [ $# -lt 1 ]; then
# No app name provided - process all apps
for app_dir in "$APPS_DIR"/*; do
if [ -d "$app_dir" ]; then
APP_NAME="$(basename "$app_dir")"
process_app "$APP_NAME"
fi
done
exit 0
fi
APP_NAME="$1"
process_app "$APP_NAME"

View File

@@ -1,67 +0,0 @@
#!/bin/bash
# This script installs the local CA certificate on Ubuntu systems to avoid
# certificate warnings in browsers when accessing internal cloud services.
# Set up error handling
set -e
# Define colors for better readability
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
RED='\033[0;31m'
NC='\033[0m' # No Color
CA_DIR="/home/payne/repos/cloud.payne.io-setup/ca"
CA_FILE="$CA_DIR/ca.crt"
TARGET_DIR="/usr/local/share/ca-certificates"
TARGET_FILE="cloud-payne-local-ca.crt"
echo -e "${BLUE}=== Installing Local CA Certificate on Ubuntu ===${NC}"
echo
# Check if CA file exists
if [ ! -f "$CA_FILE" ]; then
echo -e "${RED}CA certificate not found at $CA_FILE${NC}"
echo -e "${YELLOW}Please run the create-local-ca script first:${NC}"
echo -e "${BLUE}./bin/create-local-ca${NC}"
exit 1
fi
# Copy to the system certificate directory
echo -e "${YELLOW}Copying CA certificate to $TARGET_DIR/$TARGET_FILE...${NC}"
sudo cp "$CA_FILE" "$TARGET_DIR/$TARGET_FILE"
# Update the CA certificates
echo -e "${YELLOW}Updating system CA certificates...${NC}"
sudo update-ca-certificates
# Update browsers' CA store (optional, for Firefox)
if [ -d "$HOME/.mozilla" ]; then
echo -e "${YELLOW}You may need to manually import the certificate in Firefox:${NC}"
echo -e "1. Open Firefox"
echo -e "2. Go to Preferences > Privacy & Security > Certificates"
echo -e "3. Click 'View Certificates' > 'Authorities' tab"
echo -e "4. Click 'Import' and select $CA_FILE"
echo -e "5. Check 'Trust this CA to identify websites' and click OK"
fi
# Check popular browsers
if command -v google-chrome &> /dev/null; then
echo -e "${YELLOW}For Chrome, the system-wide certificate should now be recognized${NC}"
echo -e "${YELLOW}You may need to restart the browser${NC}"
fi
echo
echo -e "${GREEN}=== CA Certificate Installation Complete ===${NC}"
echo
echo -e "${YELLOW}System-wide CA certificate has been installed.${NC}"
echo -e "${YELLOW}You should now be able to access the Kubernetes Dashboard without certificate warnings:${NC}"
echo -e "${BLUE}https://kubernetes-dashboard.in.cloud.payne.io${NC}"
echo
echo -e "${YELLOW}If you still see certificate warnings, try:${NC}"
echo "1. Restart your browser"
echo "2. Clear your browser's cache and cookies"
echo "3. If using a non-standard browser, you may need to import the certificate manually"
echo

View File

@@ -1,39 +0,0 @@
#!/bin/bash
set -e
# First, ensure netdebug pod is installed
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_DIR="$(dirname "$SCRIPT_DIR")"
# Source environment variables
if [ -f "$REPO_DIR/load-env.sh" ]; then
source "$REPO_DIR/load-env.sh"
fi
# Check if netdebug is installed, if not deploy it
if ! kubectl get namespace debug >/dev/null 2>&1; then
echo "Setting up netdebug pod..."
kubectl apply -f "$REPO_DIR/infrastructure_setup/utils/netdebug.yaml"
echo "Waiting for netdebug pod to be ready..."
sleep 5
fi
# Get the netdebug pod name
NETDEBUG_POD=$(kubectl get pods -n debug -l app=netdebug -o jsonpath='{.items[0].metadata.name}' 2>/dev/null)
if [ -z "$NETDEBUG_POD" ]; then
echo "Waiting for netdebug pod to start..."
kubectl get pods -n debug
exit 1
fi
# If arguments provided, run them as a command on the container
if [ $# -gt 0 ]; then
kubectl exec -it -n debug "$NETDEBUG_POD" -- "$@"
else
# Otherwise attach to the container with a shell
echo "Attaching to netdebug pod ($NETDEBUG_POD)..."
echo "Type 'exit' to detach"
echo ""
kubectl exec -it -n debug "$NETDEBUG_POD" -- /bin/bash
fi

View File

@@ -1,62 +0,0 @@
#!/bin/bash
set -e
# Load environment variables
source "$(dirname "$0")/../load-env.sh" 2>/dev/null || true
# Display usage information
usage() {
echo "Usage: $(basename "$0") <container-name> [version]"
echo
echo "Build and push a container image to the local registry from Dockerfile in containers/<container-name>"
echo
echo "Arguments:"
echo " container-name The name of the container (must exist in containers/ directory)"
echo " version Version tag for the image (default: latest)"
echo
echo "Example:"
echo " $(basename "$0") nextcloud"
echo " $(basename "$0") nextcloud 25.0.4-custom"
exit 1
}
# Check if required arguments are provided
if [ $# -lt 1 ]; then
usage
fi
CONTAINER_NAME="$1"
VERSION="${2:-latest}"
REGISTRY=$DOCKER_REGISTRY_HOST
CONTAINER_DIR="/data/repos/wild-cloud/containers/${CONTAINER_NAME}"
IMAGE_NAME="${REGISTRY}/${CONTAINER_NAME}:${VERSION}"
# Check if container directory exists
if [ ! -d "$CONTAINER_DIR" ]; then
echo "Error: Container directory not found: $CONTAINER_DIR"
echo "Available containers:"
ls -1 /data/repos/wild-cloud/containers/
exit 1
fi
# Check if Dockerfile exists
if [ ! -f "${CONTAINER_DIR}/Dockerfile" ]; then
echo "Error: Dockerfile not found in ${CONTAINER_DIR}"
exit 1
fi
echo "Building container: ${CONTAINER_NAME}"
echo "Dockerfile path: ${CONTAINER_DIR}/Dockerfile"
echo "Target image: ${IMAGE_NAME}"
echo
# Build the Docker image
echo "Building image..."
docker build -t "${IMAGE_NAME}" -f "${CONTAINER_DIR}/Dockerfile" "${CONTAINER_DIR}"
# Push the image to the registry
echo "Pushing image to registry: ${REGISTRY}..."
docker push "${IMAGE_NAME}"
echo
echo "Successfully built and pushed: ${IMAGE_NAME}"