GithubHelp home page GithubHelp logo

isabella232 / aws-account-operator Goto Github PK

View Code? Open in Web Editor NEW

This project forked from openshift/aws-account-operator

0.0 0.0 0.0 30.22 MB

Operator to manage pool of AWS accounts for Hive

License: Apache License 2.0

Dockerfile 0.13% Shell 16.78% Go 76.31% Python 1.51% Makefile 5.28%

aws-account-operator's Introduction

AWS Account Operator

codecov

General Overview

The operator is responsible for creating and maintaining a pool of AWS accounts and assigning accounts to AccountClaims. The operator creates the account in AWS, does initial setup and configuration of the those accounts, creates IAM resources and expose credentials for a IAM user with enough permissions to provision an OpenShift 4.x cluster.

The operator is deployed to an OpenShift cluster in the aws-account-operator namespace.

Quick Start

This Quick Start assumes that you are working on a team that already has AWS Accounts set up for development/testing. For first time setup, see the prerequisites documentation page.

First, set up your required environment variables:

export AWS_PAGER= # This is set so that it doesn't page out to less and block integration testing
export FORCE_DEV_MODE=local # This flags the operator for local development for some code paths
export OSD_STAGING_1_AWS_ACCOUNT_ID= # Your assigned osd-staging-1 account ID
export OSD_STAGING_2_AWS_ACCOUNT_ID= # Your assigned osd-staging-2 account ID
export OSD_STAGING_1_OU_ROOT_ID= # Your assigned osd-staging-1 OU Root ID
export OSD_STAGING_1_OU_BASE_ID= # Your assigned osd-staging-1 OU Base ID
export STS_ROLE_ARN= # A role you create in your osd-staging-2 account with minimal STS permissions

direnv is what some team members use, and you can add the above block (with variables filled in) into a .envrc file (make sure .envrc is in your global git ignore as well) and upon entry to the aws-account-operator folder the env vars inside the file will be loaded automatically, and unset when you leave the folder.

Next, get your AWS Credentials for the payer account you will be using and export the access key and secret using the following environment variables:

OPERATOR_ACCESS_KEY_ID
OPERATOR_SECRET_ACCESS_KEY

These only need to be set the first time you deploy the operator locally. Then, run make predeploy.

Then, you should be able to run operator-sdk run --local --namespace aws-account-operator, and you're up and running.

Testing

To test that everything's working correctly, we have a set of "acceptance" tests that we've compiled into a single make target:

make test-all

If the everything is set up correctly this should verify that.

Further Reading

To dive deeper into the documentation, visit our docs folder.

aws-account-operator's People

Contributors

2uasimojo avatar bmeng avatar clcollins avatar dofinn avatar drpaneas avatar dustman9000 avatar fahlmant avatar iamkirkbater avatar igoihman avatar jewzaam avatar jharrington22 avatar jhernand avatar jmelis avatar lisa avatar maorfr avatar nautilux avatar nimrodshn avatar ninataneja avatar openshift-merge-robot avatar rafael-azevedo avatar rogbas avatar sam-nguyen7 avatar thrasher-redhat avatar vkareh avatar wshearn avatar yeya24 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.