191 lines
5.8 KiB
Plaintext
191 lines
5.8 KiB
Plaintext
|
|
# Azure Kubernetes Node Addition Configuration Template
|
||
|
|
# Copy this file to node_config.env and update the values
|
||
|
|
|
||
|
|
# =============================================================================
|
||
|
|
# VM Configuration
|
||
|
|
# =============================================================================
|
||
|
|
|
||
|
|
# VM Name (as it appears in Azure)
|
||
|
|
VM_NAME="prod-usw2-k8s-freeleaps-worker-nodes-06"
|
||
|
|
|
||
|
|
# Azure Resource Group containing the VM
|
||
|
|
RESOURCE_GROUP="k8s"
|
||
|
|
|
||
|
|
# Node Type: worker or master
|
||
|
|
NODE_TYPE="worker"
|
||
|
|
|
||
|
|
# =============================================================================
|
||
|
|
# Authentication Configuration
|
||
|
|
# =============================================================================
|
||
|
|
|
||
|
|
# Ansible user for SSH connections
|
||
|
|
# Note: This should be wwwadmin@mathmast.com for your environment
|
||
|
|
ANSIBLE_USER="wwwadmin@mathmast.com"
|
||
|
|
|
||
|
|
# SSH Password (will be prompted during execution)
|
||
|
|
# Leave empty to be prompted during script execution
|
||
|
|
SSH_PASSWORD=""
|
||
|
|
|
||
|
|
# Sudo Password (will be prompted during execution)
|
||
|
|
# Leave empty to be prompted during script execution
|
||
|
|
SUDO_PASSWORD=""
|
||
|
|
|
||
|
|
# =============================================================================
|
||
|
|
# Network Configuration
|
||
|
|
# =============================================================================
|
||
|
|
|
||
|
|
# VM Private IP Address (will be auto-detected if left empty)
|
||
|
|
# Leave empty to auto-detect from Azure
|
||
|
|
VM_PRIVATE_IP=""
|
||
|
|
|
||
|
|
# Network Security Group name (for troubleshooting)
|
||
|
|
NSG_NAME="k8s-nsg"
|
||
|
|
|
||
|
|
# Subnet name (for troubleshooting)
|
||
|
|
SUBNET_NAME="k8s-subnet"
|
||
|
|
|
||
|
|
# =============================================================================
|
||
|
|
# Kubernetes Configuration
|
||
|
|
# =============================================================================
|
||
|
|
|
||
|
|
# Kubernetes cluster name
|
||
|
|
CLUSTER_NAME="freeleaps"
|
||
|
|
|
||
|
|
# Kubernetes version (should match existing cluster)
|
||
|
|
KUBERNETES_VERSION="1.31.4"
|
||
|
|
|
||
|
|
# Container runtime (should match existing cluster)
|
||
|
|
CONTAINER_RUNTIME="docker"
|
||
|
|
|
||
|
|
# =============================================================================
|
||
|
|
# Paths and Directories
|
||
|
|
# =============================================================================
|
||
|
|
|
||
|
|
# Path to inventory file
|
||
|
|
INVENTORY_FILE="freeleaps-ops/cluster/ansible/manifests/inventory.ini"
|
||
|
|
|
||
|
|
# Path to kubespray directory
|
||
|
|
KUBESPRAY_DIR="freeleaps-ops/3rd/kubespray"
|
||
|
|
|
||
|
|
# Path to group_vars directory
|
||
|
|
GROUP_VARS_DIR="freeleaps-ops/cluster/ansible/manifests/group_vars"
|
||
|
|
|
||
|
|
# =============================================================================
|
||
|
|
# Script Behavior Configuration
|
||
|
|
# =============================================================================
|
||
|
|
|
||
|
|
# Enable verbose output (true/false)
|
||
|
|
VERBOSE="false"
|
||
|
|
|
||
|
|
# Enable dry run mode (true/false)
|
||
|
|
# When enabled, script will show what it would do without making changes
|
||
|
|
DRY_RUN="false"
|
||
|
|
|
||
|
|
# Maximum wait time for node to appear (seconds)
|
||
|
|
MAX_WAIT_TIME="300"
|
||
|
|
|
||
|
|
# Maximum wait time for node to be ready (seconds)
|
||
|
|
MAX_READY_WAIT_TIME="600"
|
||
|
|
|
||
|
|
# =============================================================================
|
||
|
|
# Backup and Recovery Configuration
|
||
|
|
# =============================================================================
|
||
|
|
|
||
|
|
# Enable automatic backup of inventory file (true/false)
|
||
|
|
ENABLE_BACKUP="true"
|
||
|
|
|
||
|
|
# Number of backup files to keep
|
||
|
|
BACKUP_RETENTION="5"
|
||
|
|
|
||
|
|
# Backup directory
|
||
|
|
BACKUP_DIR="./backups"
|
||
|
|
|
||
|
|
# =============================================================================
|
||
|
|
# Monitoring and Alerting Configuration
|
||
|
|
# =============================================================================
|
||
|
|
|
||
|
|
# Enable post-addition health checks (true/false)
|
||
|
|
ENABLE_HEALTH_CHECKS="true"
|
||
|
|
|
||
|
|
# Enable pod scheduling test (true/false)
|
||
|
|
ENABLE_POD_TEST="true"
|
||
|
|
|
||
|
|
# Test pod image
|
||
|
|
TEST_POD_IMAGE="nginx:latest"
|
||
|
|
|
||
|
|
# =============================================================================
|
||
|
|
# Troubleshooting Configuration
|
||
|
|
# =============================================================================
|
||
|
|
|
||
|
|
# Enable detailed logging (true/false)
|
||
|
|
ENABLE_LOGGING="true"
|
||
|
|
|
||
|
|
# Log file path
|
||
|
|
LOG_FILE="./node_addition.log"
|
||
|
|
|
||
|
|
# Enable SSH connection testing (true/false)
|
||
|
|
ENABLE_SSH_TEST="true"
|
||
|
|
|
||
|
|
# SSH timeout (seconds)
|
||
|
|
SSH_TIMEOUT="10"
|
||
|
|
|
||
|
|
# =============================================================================
|
||
|
|
# Advanced Configuration
|
||
|
|
# =============================================================================
|
||
|
|
|
||
|
|
# Ansible playbook timeout (seconds)
|
||
|
|
ANSIBLE_TIMEOUT="3600"
|
||
|
|
|
||
|
|
# Kubectl timeout (seconds)
|
||
|
|
KUBECTL_TIMEOUT="300"
|
||
|
|
|
||
|
|
# Azure CLI timeout (seconds)
|
||
|
|
AZURE_TIMEOUT="300"
|
||
|
|
|
||
|
|
# =============================================================================
|
||
|
|
# Validation Rules
|
||
|
|
# =============================================================================
|
||
|
|
|
||
|
|
# Allowed node types
|
||
|
|
ALLOWED_NODE_TYPES="worker,master"
|
||
|
|
|
||
|
|
# Required VM name pattern
|
||
|
|
VM_NAME_PATTERN="^[a-zA-Z0-9-]+$"
|
||
|
|
|
||
|
|
# Required resource group pattern
|
||
|
|
RESOURCE_GROUP_PATTERN="^[a-zA-Z0-9-]+$"
|
||
|
|
|
||
|
|
# =============================================================================
|
||
|
|
# Notes and Instructions
|
||
|
|
# =============================================================================
|
||
|
|
|
||
|
|
# IMPORTANT NOTES:
|
||
|
|
# 1. This template should be copied to node_config.env before use
|
||
|
|
# 2. Update the values according to your environment
|
||
|
|
# 3. Passwords will be prompted during execution for security
|
||
|
|
# 4. The script will create backups automatically
|
||
|
|
# 5. All paths are relative to the script execution directory
|
||
|
|
|
||
|
|
# USAGE:
|
||
|
|
# 1. Copy this template: cp node_config.env.template node_config.env
|
||
|
|
# 2. Edit the configuration: vim node_config.env
|
||
|
|
# 3. Run the script: ./add_k8s_node.sh
|
||
|
|
|
||
|
|
# SECURITY NOTES:
|
||
|
|
# - Never commit passwords to version control
|
||
|
|
# - Use SSH keys when possible
|
||
|
|
# - Regularly rotate passwords
|
||
|
|
# - Monitor access logs
|
||
|
|
|
||
|
|
# TROUBLESHOOTING:
|
||
|
|
# - Check VM power state in Azure
|
||
|
|
# - Verify network security group rules
|
||
|
|
# - Ensure SSH service is running on VM
|
||
|
|
# - Check firewall rules if applicable
|
||
|
|
# - Verify DNS resolution
|
||
|
|
|
||
|
|
# SUPPORT:
|
||
|
|
# - Infrastructure Team: [Contact Information]
|
||
|
|
# - Kubernetes Administrators: [Contact Information]
|
||
|
|
# - Azure Support: [Contact Information]
|