#!/bin/bash # Default values, can be overridden with environment variables or command-line args KIND_CLUSTER_NAME="${KIND_CLUSTER_NAME:-k8sgpt-cluster}" HELM_RELEASE_NAME="${HELM_RELEASE_NAME:-k8sgpt}" NAMESPACE="${NAMESPACE:-k8sgpt}" # Function to check if a command is installed check_command() { if ! command -v "$1" &>/dev/null; then echo "$1 is not installed. Please install $1 and try again." exit 1 fi } # Check for required tools check_tools() { check_command kind check_command helm check_command kubectl } # Function to check for AWS credentials check_aws_credentials() { if [[ -z "$AWS_SECRET_ACCESS_KEY" || -z "$AWS_ACCESS_KEY_ID" ]]; then echo "AWS_SECRET_ACCESS_KEY and/or AWS_ACCESS_KEY_ID are not set. Please set them as environment variables." exit 1 fi } # Function to get the model and region from YAML get_model_region() { echo "anthropic.claude-3-5-sonnet-20240620-v1:0 eu-central-1" } # Function to confirm AWS model and region configuration (Non-interactive) confirm_aws_config() { local model_region model_region=$(get_model_region) echo "Using model: $model_region" } # Function to check if k8sgpt is already deployed check_k8sgpt_deployed() { if kubectl get deployment -n "$NAMESPACE" -l app.kubernetes.io/name=k8sgpt-operator &>/dev/null; then echo "k8sgpt-operator is already deployed in namespace $NAMESPACE. Skipping deployment." return 0 # Indicate success else return 1 # Indicate failure fi } # Function to apply Kubernetes resources apply_k8s_resources() { cat </dev/null; then echo "k8sgpt-operator is already installed. Skipping installation." else helm install "$HELM_RELEASE_NAME" k8sgpt/k8sgpt-operator -n "$NAMESPACE" --create-namespace --set interplex.enabled=true fi echo "Creating secret..." if kubectl get secret bedrock-sample-secret -n "$NAMESPACE" &>/dev/null; then echo "Secret already exists. Skipping creation." else kubectl create secret generic bedrock-sample-secret \ --from-literal=AWS_ACCESS_KEY_ID="$AWS_ACCESS_KEY_ID" \ --from-literal=AWS_SECRET_ACCESS_KEY="$AWS_SECRET_ACCESS_KEY" \ -n "$NAMESPACE" fi apply_k8s_resources echo "k8sgpt local setup complete." } # Execute the main function main "$@"