Mina Fawzy
Mina Fawzy

Reputation: 21452

whitelist AWS RDS on CircleCI

I have a circleCI configuration to run my tests before merge to the master, I start my server to do my tests and the I should connect to my RDS database and its protected with security groups I tried to whitelist circleci ip to allow this happen but with no luck

version: 2.1

orbs:
  aws-white-list-circleci-ip: configure/[email protected]
  aws-cli: circleci/[email protected]

jobs:
  aws_setup:
    docker:
      - image: cimg/python:3.11.0
    steps:
      - aws-cli/install
      - aws-white-list-circleci-ip/add
  build:
    docker:
      - image: cimg/node:18.4

    steps:
      - checkout
      - run: node --version
      - restore_cache:
          name: Restore Npm Package Cache
          keys:
            # Find a cache corresponding to this specific package-lock.json checksum
            # when this file is changed, this key will fail
            - v1-npm-deps-{{ checksum "package-lock.json" }}
            # Find the most recently generated cache used from any branch
            - v1-npm-deps-
      - run: npm install
      - run:
          name: start the server
          command: npm start
          background: true
      - save_cache:
          name: Save Npm Package Cache
          key: v1-npm-deps-{{ checksum "package-lock.json" }}
          paths:
            - ./node_modules
      - run:
          name: run tests
          command: npm run test
      - aws-white-list-circleci-ip/remove

workflows:
  build-workflow:
    jobs:
      - aws_setup:
          context: aws_context
      - build:
          requires:
            - aws_setup
          context: aws_context

my context environment

AWS_ACCESS_KEY_ID   
AWS_DEFAULT_REGION
AWS_SECRET_ACCESS_KEY
GROUPID

the error

enter image description here

the orbs I am using https://circleci.com/developer/orbs/orb/configure/aws-white-list-circleci-ip

Upvotes: -1

Views: 276

Answers (1)

Mina Fawzy
Mina Fawzy

Reputation: 21452

I figure it out

version: 2.1

orbs:
  aws-cli: circleci/[email protected]

jobs:
  build:
    docker:
      - image: cimg/python:3.11.0-node
    steps:
      - checkout
      - run: node --version
      - restore_cache:
          name: Restore Npm Package Cache
          keys:
            # Find a cache corresponding to this specific package-lock.json checksum
            # when this file is changed, this key will fail
            - v1-npm-deps-{{ checksum "package-lock.json" }}
            # Find the most recently generated cache used from any branch
            - v1-npm-deps-
      - run: npm install
      - aws-cli/install
      - run:
          command: |
            public_ip_address=$(wget -qO- http://checkip.amazonaws.com)
            echo "this computers public ip address is $public_ip_address"
            aws ec2 authorize-security-group-ingress --region $AWS_DEFAULT_REGION --group-id $GROUPID --ip-permissions "[{\"IpProtocol\": \"tcp\", \"FromPort\": 22, \"ToPort\": 7000, \"IpRanges\": [{\"CidrIp\": \"${public_ip_address}/32\",\"Description\":\"CircleCi\"}]}]"
      - save_cache:
          name: Save Npm Package Cache
          key: v1-npm-deps-{{ checksum "package-lock.json" }}
          paths:
            - ./node_modules
      - run:
          name: run tests
          command: npm run test

# Invoke jobs via workflows
# See: https://circleci.com/docs/2.0/configuration-reference/#workflows
workflows:
  build-workflow:
    jobs:
      - build:
          context: aws_context

Upvotes: 0

Related Questions