-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathMakefile
88 lines (71 loc) · 3.01 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
all:
@echo 'Available make targets:'
@grep '^[^#[:space:]^\.PHONY.*].*:' Makefile
.PHONY: create-task-role
create-task-role:
aws cloudformation create-stack --stack-name SSMTaskRole \
--template-body file://cloudformation/base/task-iam.yml \
--capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM
.PHONY: create-ssm-role
create-ssm-role:
aws cloudformation create-stack --stack-name SSMAssumeRole \
--template-body file://cloudformation/ssm/ssm-iam.yml \
--capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM
.PHONY: delete-task-role
delete-task-role:
aws cloudformation delete-stack --stack-name SSMTaskRole
.PHONY: delete-ssm-role
delete-ssm-role:
aws cloudformation delete-stack --stack-name SSMAssumeRole
.PHONY: ecr-login
ecr-login:
aws ecr get-login --no-include-email | bash
.PHONY: build-redis
build-redis:
cd examples/redis && docker build . -t ssm-agent:latest
.PHONY: build-nginx
build-nginx:
cd examples/nginx && docker build . -t ssm-agent:latest
.PHONY: push
push: ecr-login
docker tag ssm-agent:latest \
$(shell aws ecr describe-repositories --repository-names ssm-agent \
| jq '.repositories[0].repositoryUri' | tr -d '"'):latest
docker push \
$(shell aws ecr describe-repositories --repository-names ssm-agent \
| jq '.repositories[0].repositoryUri' | tr -d '"'):latest
.PHONY: setup
setup:
aws cloudformation create-stack --stack-name ContainerRepository \
--template-body file://cloudformation/base/repository.yml
.PHONY: stack-status
stack-status:
aws cloudformation describe-stacks --stack-name ContainerRepository
.PHONY: create-activation
create-activation:
aws ssm create-activation --default-instance-name FargateContainers --iam-role AutomationServiceRole --registration-limit 100 --region us-west-2 --tags "Key=App,Value=FargateDemo"
.PHONY: render-task-parameters
render-task-parameters:
echo ParameterKey=TaskRoleArn,ParameterValue=\
$(shell aws cloudformation describe-stacks --stack-name SSMTaskRole | \
jq '.Stacks[0].Outputs[1].OutputValue' | tr -d '"') \
ParameterKey=ExecutionRoleArn,ParameterValue=$(shell aws cloudformation describe-stacks --stack-name SSMTaskRole | \
jq '.Stacks[0].Outputs[0].OutputValue' | tr -d '"') \
ParameterKey=ServiceName,ParameterValue=FargateSSMAgentDemo \
ParameterKey=ImageUrl,ParameterValue=$(shell aws ecr describe-repositories \
--repository-names ssm-agent | jq '.repositories[0].repositoryUri' | tr -d '"'):latest > \
cloudformation/task/parameters.txt
.PHONY: create-task
create-task:
aws cloudformation create-stack --stack-name FargateSSMAgentDemo \
--template-body file://cloudformation/task/simple-container.yml \
--parameters $(shell cat cloudformation/task/parameters.txt)
.PHONY: delete-task
delete-task:
aws cloudformation delete-stack --stack-name FargateSSMAgentDemo
.PHONY: teardown
teardown:
aws cloudformation delete-stack --stack-name ContainerRepository
aws cloudformation delete-stack --stack-name SSMTaskRole
aws cloudformation delete-stack --stack-name FargateSSMAgentDemo