#!/bin/bash #************************* # Deploy KEDA #************************* echo "${GREEN}==========================" echo "${GREEN}Deploy KEDA" echo "${GREEN}==========================" source ./deployment/environmentVariables.sh echo "${RED} Keda will be deployed on cluster $(kubectl config current-context) \n ${RED}Casesenstive ${BLUE}Press Y = Proceed or N = Cancel (change context and run script)" read user_input Entry='Y' if [[ "$user_input" == *"$Entry"* ]]; then OIDC_PROVIDER=$(aws eks describe-cluster --name ${CLUSTER_NAME} --region ${AWS_REGION} --query "cluster.identity.oidc.issuer" --output text | sed -e "s/^https:\/\///") echo "${CYAN}This deployment will target AWS SQS trigger for keda" if [ -z $CLUSTER_NAME ] || [ -z $AWS_REGION ] || [ -z $IAM_KEDA_SQS_POLICY ] || [ -z $IAM_KEDA_DYNAMO_POLICY ] || [ -z $ACCOUNT_ID ] || [ -z $TEMPOUT ] || [ -z $OIDC_PROVIDER ] || [ -z $IAM_KEDA_ROLE ] || [ -z $SERVICE_ACCOUNT ] || [ -z $NAMESPACE ] || [ -z $SQS_TARGET_NAMESPACE ] || [ -z $SQS_TARGET_DEPLOYMENT ] || [ -z $SQS_QUEUE_URL ];then echo "${RED}Update values & Run environmentVariables.sh file" exit 1; else echo "====Installing keda=====" #Deploy SQS access policy echo "${CYAN}Deploy SQS access policy" SQS_POLICY=$(aws iam create-policy --policy-name ${IAM_KEDA_SQS_POLICY} --policy-document file://deployment/keda/sqsPolicy.json --output text --query Policy.Arn) echo "${GREEN}ARN : ${SQS_POLICY}" #Deploy Dynamo access policy # This is needed in context to our sample application, its not a KEDA requirement echo "${CYAN}Deploy Dynamo access policy. !!This is needed in context to our sample application, its not a KEDA requirement!!" DYNAMO_POLICY=$(aws iam create-policy --policy-name ${IAM_KEDA_DYNAMO_POLICY} --policy-document file://deployment/keda/dynamoPolicy.json --output text --query Policy.Arn) echo "${GREEN}ARN : ${DYNAMO_POLICY}" OIDC_PROVIDER=$(aws eks describe-cluster --name ${CLUSTER_NAME} --region ${AWS_REGION} --query "cluster.identity.oidc.issuer" --output text | sed -e "s/^https:\/\///") echo "${CYAN}Create a trusted relation in role for STS" #Create Role Trusted Relation cat >./deployment/keda/trust-relationship.json <