-
Notifications
You must be signed in to change notification settings - Fork 42
Expand file tree
/
Copy pathapikey.create-sample-cfn-request.sh
More file actions
executable file
·77 lines (66 loc) · 2.69 KB
/
apikey.create-sample-cfn-request.sh
File metadata and controls
executable file
·77 lines (66 loc) · 2.69 KB
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
#!/usr/bin/env bash
# Copyright 2023 MongoDB Inc
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# project.create-sample-cfn-request.sh
#
# This tool generates text for a `cfn invoke` request json message.
#
set -o errexit
set -o nounset
set -o pipefail
profile="default"
orgId="${MONGODB_ATLAS_ORG_ID}"
projectName="cfn-bot-apikey-dev"
# create ProjectId
if [ ${#projectName} -gt 22 ];then
projectName=${projectName:0:21}
fi
project1="${projectName}-1"
project2="${projectName}-2"
projectId1=$(atlas projects list --output json | jq --arg NAME "${project1}" -r '.results[] | select(.name==$NAME) | .id')
if [ -z "$projectId1" ]; then
projectId1=$(atlas projects create "${project1}" --output=json | jq -r '.id')
echo -e "Created project \"${project1}\" with id: ${projectId1}\n"
else
echo -e "FOUND project \"${project1}\" with id: ${projectId1}\n"
fi
projectId2=$(atlas projects list --output json | jq --arg NAME "${project2}" -r '.results[] | select(.name==$NAME) | .id')
if [ -z "$projectId2" ]; then
projectId2=$(atlas projects create "${project2}" --output=json | jq -r '.id')
echo -e "Created project \"${project2}\" with id: ${projectId2}\n"
else
echo -e "FOUND project \"${project2}\" with id: ${projectId2}\n"
fi
# create aws secret key
awsSecretName="mongodb/atlas/apikey/${projectName}"
if aws secretsmanager create-secret --name "${awsSecretName}" --secret-string "atlas api-keys goes here";then
echo "aws secret created with name : ${awsSecretName}"
else
echo "aws secret create failed with name : ${awsSecretName}"
exit 1
fi
## TEST-1
# Create assigns 2 projects
jq --arg orgId "$orgId" \
--arg profile "$profile" \
--arg awsSecretName "$awsSecretName" \
--arg projectId1 "$projectId1" \
--arg projectId2 "$projectId2" \
'.desiredResourceState.OrgId?|=$orgId |
.desiredResourceState.Profile?|=$profile |
.desiredResourceState.AwsSecretName?|=$awsSecretName |
.desiredResourceState.ProjectAssignments[0].ProjectId?|=$projectId1 |
.desiredResourceState.ProjectAssignments[1].ProjectId?|=$projectId2' \
"$(dirname "$0")/apikey.sample-cfn-request.json" > sample.temp && mv sample.temp apikey.sample-cfn-request.json
echo " NOTE: Delete the projects once tested using apikey.delete-sample-cfn-request.sh."