Deploying from AWS Code Commit

Applications can be deployed from a variety fo locations. Developer commonly storing application code and configurations within a source code repository such as GIT. With customers adopting more and more AWS native services it is not unusual to see code being stored in AWS code commit. In this module we will explore creating an AWS code commit repo, interacting with it using GIT tools as well as deploying workloads from it to OpenShift

Step 1

Deploy a code commit repo

We are going to infrastructure as code to create the code commit repo. The template can be found within the resources folder of the workshop you cloned in the getting started step. We will deploy this CloudFormation stack using the AWS CLI. Please update the --stack-name with your Student or attendee number for the workshop.

cd ~/environment/openshift-on-aws/resources/

aws cloudformation create-stack --stack-name student<YOURSTUDENTNUMER>codecommit --template-body file://CodeCommitCFN.yaml --capabilities CAPABILITY_NAMED_IAM --parameters ParameterKey=RepositoryName,ParameterValue=student<YOURSTUDENTNUMER>repo

until [[ `aws cloudformation describe-stacks --stack-name "student<YOURSTUDENTNUMER>codecommit" --query "Stacks[0].[StackStatus]" --output text` == "CREATE_COMPLETE" ]]; do  echo "The stack is NOT in a state of CREATE_COMPLETE at `date`";   sleep 30; done && echo "The Stack is built at `date` - Please proceed"
Step 2

Get the code repo clone URL

We will query the above CloudFormation stack to get the outputs which contain the HTTP and SSH clone URLs which will be used later.

aws cloudformation describe-stacks --stack-name student<YOURSTUDENTNUMER>codecommit
project
Step 3

Clone the repo

Use the CloneUrlHttp in the above output to clone your repo.

cd ~/environment/

git clone https://git-codecommit.us-west-2.amazonaws.com/v1/repos/student0jun11

The first time you connect, you will be prompted for the username and password for the repository. Enter the username and password generated for git credentials in IAM

project
Step 4

Clone an application to use

cd ~/environment/

git clone https://github.com/RedHatGov/openshift-workshops.git
Step 5

copy the code to your local code commit repo

cd openshift-workshops

mv *.* ../<YOUR REPONAME IN STEP 3>

cd ../<YOUR REPO NAME IN STEP 3>.

git add .

git commit -m "added app"

git push origin
Step 7

Log into the OpenShift web console

This is the same process covered in the getting started module:
Step 8

Create a project

Under the *developer* context
expland advanced on the left
expand projects
click on create project
create a project called *myproject*
Step 9

Deploy application from AWS Code commit

We are going to deploy an application from GIT and add the details for the AWS code commit repo

click on '+Add' in the left menu.
Select from GIT
Add the CloneUrlHttps address you collected in Step 2
Under **GIT TYPE** select **other**
Select Show advanced and enter the subdirectory in the Context dir for your source code to build and deploy
Select Create new Secret from the Source Secret drop-down.
Enter a name for Secret Name and choose Basic Authentication  for Authentication Type from the drop-down.
Enter AWS CodeCommit Git credential username and password  in the respective fields, choose Create.

OCPWORKSHOPCODECOMMITUSER-at-755152575036
wJT4uKR06mzLnrpFJpv/Jyk5W5QBzZDhAwUtosAcq8E=

THIS CREDENCIAL MAY NOT BE THE ACTUAL ONE BEING USED PLEASE CONFIRM WITH THE PRESENTER.

The following docs dicsuss how to provide HTTP git credentials for IAM users, Should the credentail in Step 9 not exist you can go to the IAM console and create them. https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html

Select node js from the builder options
project
Step 10

View application deployment

Under Resources, select DeploymentConfig, and select Create.
This will automatically start building the application.
After a successful build, the S2I tool will automatically deploy the container application into the project you selected.
Select the application that was just deployed and click on the application to open the details page as shown below.