diff --git a/bindata.go b/bindata.go index 51597ee..4e9a71e 100644 --- a/bindata.go +++ b/bindata.go @@ -82,14 +82,15 @@ func (fi bindataFileInfo) Sys() interface{} { } var _bindataTemplatesAwsrolestfDeploysh = []byte( - "\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x84\x8d\xcd\x6a\xc2\x40\x14\x85\xf7\xf3\x14\xb7\xe8\x76\xe2\x33\x88\x64" + - "\xd7\x4a\x49\x5a\xba\xbe\x4e\x4f\xea\xe0\xfc\x31\x73\x63\x12\x62\xde\xbd\x14\x8a\xb8\x08\xb8\x3c\xf0\x7d\xe7\xdb" + - "\xbc\xec\x4e\x36\xec\xca\x59\xa9\x0d\x61\xb4\x42\xc3\x19\x81\x38\x4c\x64\xa2\xf7\x1c\xbe\xa9\x63\xeb\x8a\x2a\x10" + - "\xd2\x50\x4a\x90\x33\x77\x31\x7b\xb2\xc1\xca\xc3\x1c\x62\xbe\x94\xc4\x06\x54\xe0\x60\x84\xe6\x99\xaa\x7a\x94\xcc" + - "\x0d\x4a\xec\xb3\x41\xa9\xbe\xee\xcc\xb2\xd0\xed\x46\x6b\x76\xc0\xf0\x4c\x7d\xa8\x72\x4a\x6e\x22\xcd\xbd\x44\xcd" + - "\x29\xe5\x78\x85\x52\x97\xfe\x04\x23\x8e\x4c\x0c\x9d\xfd\xa1\xbe\x40\x9b\x18\x04\xa3\xd0\x76\x3e\xbc\x7e\xb6\x1f" + - "\x75\xb3\xdc\xa9\xff\x8b\x6e\xad\xda\x22\x5f\xad\x41\x13\x1d\xaa\x23\xfb\xbf\x78\x35\xb1\x77\xa4\x03\x6d\xe7\xe3" + - "\xfe\xad\x6e\xdf\xf7\x87\x7a\x51\xbf\x01\x00\x00\xff\xff\xbe\xdc\x5b\x53\x48\x01\x00\x00") + "\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x84\x8d\xc1\x4a\x03\x31\x10\x86\xef\x79\x8a\x91\xf6\x9a\xed\x33\x94\xba" + + "\x37\x2d\xd2\x55\x3c\x4f\xe3\xc4\x86\x26\x93\x90\x4c\xdc\x5d\xb6\x79\x77\x51\xa4\xf4\x50\xf0\x38\xc3\xf7\xfd\xdf" + + "\xea\x61\x73\x74\xbc\x29\x27\xa5\x56\x40\x93\x13\x18\x4f\xc4\x80\x3c\x83\x89\x21\x20\x7f\x80\x45\xe7\x8b\x2a\x24" + + "\xa0\x49\x29\xa1\x9c\xd1\xc6\x1c\xc0\xb1\x93\x9b\x73\x8c\xf9\x5c\x12\x1a\x82\x42\x9e\x8c\xc0\xb2\x40\xd7\x4f\x92" + + "\xf1\x40\x25\xd6\x6c\xa8\x74\xef\x57\xa6\x35\xb8\x5c\xe0\x9e\xcd\x34\xfe\xa7\xde\x54\x31\x25\x3f\x83\xc6\x2a\x51" + + "\x63\x4a\x39\x7e\x91\x52\xe7\x7a\x24\x23\x1e\x4c\x64\xeb\x3e\xa1\x16\xd2\x26\xb2\xd0\x24\xb0\x5e\x76\x4f\x6f\xc3" + + "\x6b\x7f\x68\x57\xea\x6f\xc2\xfe\x56\x1f\x29\xf9\x38\x07\x62\xe9\xf6\x18\x7e\x62\xfa\xce\x7b\xa8\xd6\xba\x09\x5a" + + "\xeb\x66\x0c\x1e\x34\xc3\x7a\xd9\x6f\x9f\xfb\xe1\x65\xbb\xeb\x9b\xfa\x0e\x00\x00\xff\xff\x39\x0c\x8a\xef\x55\x01" + + "\x00\x00") func bindataTemplatesAwsrolestfDeployshBytes() ([]byte, error) { return bindataRead( @@ -108,10 +109,10 @@ func bindataTemplatesAwsrolestfDeploysh() (*asset, error) { info := bindataFileInfo{ name: "templates/aws-roles-tf/deploy.sh", - size: 328, + size: 341, md5checksum: "", mode: os.FileMode(420), - modTime: time.Unix(1582718514, 0), + modTime: time.Unix(1582726085, 0), } a := &asset{bytes: bytes, info: info} @@ -120,18 +121,19 @@ func bindataTemplatesAwsrolestfDeploysh() (*asset, error) { } var _bindataTemplatesAwsrolestfMaintf = []byte( - "\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x84\x91\xbf\xce\xdb\x30\x0c\xc4\x77\x3f\x05\xe1\x5d\x36\x8a\x6e\x01\x3e" + - "\xa0\x4b\x96\x0e\x1d\xd2\xee\x81\x2c\xd3\xb6\x60\x49\x74\x29\x2a\x7f\x90\xf8\xdd\x0b\x59\x68\x90\x22\x41\x3f\x6e" + - "\x36\x8e\x77\xc7\x9f\x04\x99\xf5\x40\xec\xe1\x56\x01\x74\xda\xcc\x18\x7a\xa8\xe3\xd7\x7a\xfb\x01\xd0\x25\x33\xa3" + - "\xc0\xbf\xf3\x01\x75\xd0\x27\xab\x3a\x1d\x66\xf5\xb0\x50\x86\xbc\xd7\xa1\x57\x51\xb4\x60\xbd\xad\x33\x8e\x96\xc2" + - "\xeb\xba\x5e\x54\xa4\x24\x93\xfa\x52\x74\x33\x5e\xe1\x65\x3e\xa0\x8e\xc8\x27\x6b\x50\x59\xed\x15\x93\xc3\x58\xe4" + - "\x67\xe2\x39\x2e\xda\xe0\x71\xc6\xeb\x71\x61\x1c\xec\x25\xcb\xad\xf6\x9b\xaa\xbd\xdd\xa0\xd9\x5f\x84\xf5\x01\x23" + - "\x25\x36\x18\x9b\x7d\x38\x59\xa6\xe0\x31\x08\xac\xeb\x3b\xc5\xcf\x12\x76\x20\x87\xcd\x0f\xed\x11\xd6\xb5\xc4\x2d" + - "\x4c\x83\x75\xf8\xd2\xce\xf8\xbe\x08\xb4\x71\x6f\xeb\x17\x7a\x8a\xce\x01\x59\x0d\xc9\x39\x65\x28\x08\x93\xcb\x6b" + - "\x6b\xb5\x56\x95\xa7\x3e\x39\xdc\x9a\x6f\x07\x16\xee\xa5\xd1\x93\xd1\x68\x65\xb7\x8b\x71\xda\xb5\xed\x68\xe5\xdb" + - "\x68\x65\x4a\x5d\x63\x7c\xdf\x6c\x0f\x21\x68\xa6\xc6\x86\x76\xfb\xb0\x61\x60\xdd\x3e\x88\x35\xa3\x95\x1c\x87\x4f" + - "\xf7\x67\xcf\x4f\x10\xdd\xe1\x77\x22\xc9\x0c\x72\x9f\x42\xe6\x98\x0d\xff\x76\xfa\x3f\x40\xb8\x83\x4f\x51\x7e\xd1" + - "\xf7\x48\x21\x9b\xac\xd5\x9f\x00\x00\x00\xff\xff\x7a\x00\x8b\x07\x6c\x02\x00\x00") + "\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x9c\x91\x3f\x8f\xe3\x20\x10\xc5\x7b\x7f\x0a\xe4\x1e\x5b\xa7\xeb\x22\x45" + + "\xba\xe2\xd2\x5c\x71\x45\x72\xbd\x85\xf1\xd8\x46\x06\xc6\x07\x43\xfe\x28\xe1\xbb\xaf\x80\x55\x94\x55\xb2\x5a\x69" + + "\xe9\x18\xfd\xde\x83\xf7\x86\xc0\x39\x31\xa2\x33\xec\x5a\x31\xd6\x0b\xb9\x80\x1d\x58\xed\x7f\xd6\x79\xc0\x58\x1f" + + "\xe4\x02\xc4\x3e\x9e\x2d\xab\xad\x38\x2a\xde\x0b\xbb\xf0\xbb\x05\x97\x68\x8c\xb0\x03\xf7\x24\x08\xea\x2c\x77\x30" + + "\x29\xb4\xcf\x72\xb1\x72\x8f\x81\x66\xfe\xa3\x70\x0b\x5c\xd8\xd3\xd9\xb2\xda\x83\x3b\x2a\x09\x5c\x09\xc3\x1d\x6a" + + "\xf0\x05\x3f\xa1\x5b\xfc\x2a\x24\x74\x0b\x5c\xba\xd5\xc1\xa8\xce\x09\x57\xc2\x64\xaa\xbd\x5e\x59\xb3\x3b\x93\x13" + + "\x7b\xf0\x18\x9c\x04\xdf\xec\xec\x51\x39\xb4\x06\x2c\xb1\x18\x33\xf1\x1b\x56\x8d\x97\x34\x69\xfe\x0a\x03\x2c\x46" + + "\xfe\x62\x7c\x08\x63\xb2\x8f\xb1\xbc\xbd\x3a\x1c\x95\x86\xa7\xaf\x4a\x33\x14\x40\x48\xfd\x32\x4b\xa9\x92\xe3\xc9" + + "\x82\xe3\x63\xd0\x9a\x4b\xb4\xe4\x50\x27\x59\xac\x62\x55\x19\x1c\x82\x86\x1c\x23\xa7\x2d\x4b\x28\x01\x1e\x8c\x26" + + "\x45\x9b\x8d\xf7\xf3\xa6\x6d\x27\x45\xbf\x26\x45\x73\xe8\x1b\x69\x86\x26\x6f\x85\x40\xce\x8d\xb2\x6d\xbe\x28\x3b" + + "\x3a\xd1\xde\xeb\x6b\x26\x45\xe9\x39\x78\x28\x23\x79\x7e\xd1\xd7\x8d\xfd\x0f\x48\xa9\xa0\xf4\x9f\xb2\x93\x2e\x19" + + "\x7e\xa2\x3d\x14\x64\x9f\x88\x1b\x33\xc1\xd3\x3f\xfc\xe3\xd1\x16\x83\x24\xec\x6c\x2a\xfc\x3d\xd0\xb7\x76\x11\xab" + + "\xb7\x00\x00\x00\xff\xff\x9e\x05\xfd\x70\xbd\x02\x00\x00") func bindataTemplatesAwsrolestfMaintfBytes() ([]byte, error) { return bindataRead( @@ -150,10 +152,10 @@ func bindataTemplatesAwsrolestfMaintf() (*asset, error) { info := bindataFileInfo{ name: "templates/aws-roles-tf/main.tf", - size: 620, + size: 701, md5checksum: "", mode: os.FileMode(420), - modTime: time.Unix(1582718551, 0), + modTime: time.Unix(1582727097, 0), } a := &asset{bytes: bytes, info: info} diff --git a/main.go b/main.go index d7e6e38..613a2d4 100644 --- a/main.go +++ b/main.go @@ -34,6 +34,7 @@ func parseManifest(manifestPath string) (*Manifest, error) { return nil, err } manifest.ExtraResources.Workspace = workspaceMap[manifest.ExtraResources.Environment] + manifest.Deployment.NameSuffix = DEPLOYMENT_NAME_SUFFIX return &manifest, nil } diff --git a/sample_infra_manifest.json b/sample_infra_manifest.json index d932826..12efedf 100644 --- a/sample_infra_manifest.json +++ b/sample_infra_manifest.json @@ -28,5 +28,8 @@ }, "team": { "name": "LoanOrigination" + }, + "deployment": { + "name": "auth" } } diff --git a/templates/aws-roles-tf/deploy.sh b/templates/aws-roles-tf/deploy.sh index 2dfe164..1174f3e 100644 --- a/templates/aws-roles-tf/deploy.sh +++ b/templates/aws-roles-tf/deploy.sh @@ -8,4 +8,4 @@ terraform workspace select {{ .ExtraResources.Workspace }} || terraform workspac terraform apply -auto-approve kubectl config use-context ${CLUSTER} -kubectl apply -f {{ .ExtraResources.ServiceRole.Name }}.yaml -n ${NAMESPACE} +kubectl apply -f {{ .Deployment.Name }}-{{ .Deployment.NameSuffix }}.yaml -n ${NAMESPACE} diff --git a/templates/aws-roles-tf/main.tf b/templates/aws-roles-tf/main.tf index 55f43a9..c08c62b 100644 --- a/templates/aws-roles-tf/main.tf +++ b/templates/aws-roles-tf/main.tf @@ -3,7 +3,7 @@ terraform { bucket = "navi-bank-terraform-command-state" region = "ap-south-1" key = "service-iam-roles" - workspace_key_prefix = "iamroles/{{ .ExtraResources.Environment }}/{{ .ExtraResources.ServiceRole.Name }}" + workspace_key_prefix = "iamroles/{{ .ExtraResources.Environment }}/{{ .Deployment.Name }}-{{ .Deployment.NameSuffix }}" profile = "cmd" acl = "bucket-owner-full-control" } @@ -12,5 +12,6 @@ terraform { module "iam-role" { source = "git::ssh://git@github.cmd.navi-tech.in/navi-infra/iam-roles.git" environment = {{ .ExtraResources.Environment | quote }} - service_role = {{ .ExtraResources.ServiceRole | mustToJson }} + service_role = {{ .ExtraResources.ServiceRole | mustToJson }} + role_name = "{{ .Deployment.Name }}-{{ .Deployment.NameSuffix }}" } diff --git a/types.go b/types.go index dd21e21..b666437 100644 --- a/types.go +++ b/types.go @@ -7,9 +7,17 @@ var workspaceMap = map[string]string{ "spike": "spike.np.navi-tech.in", } +const DEPLOYMENT_NAME_SUFFIX = "navi-service" + +type Deployment struct { + Name string `json:"name"` + NameSuffix string +} + type Manifest struct { ExtraResources ExtraResources `json:"extraResources"` Team Team `json:"team"` + Deployment Deployment `json:"deployment"` } type ExtraResources struct { @@ -41,6 +49,5 @@ type Policies struct { } type ServiceRole struct { - Name string `json:"name"` Policies []Policies `json:"policies"` } diff --git a/util.go b/util.go index 88cfe1e..82115e9 100644 --- a/util.go +++ b/util.go @@ -21,4 +21,4 @@ func createFile(dir, fileName string) (*os.File, error) { os.Chmod(filePath, os.ModePerm) return file, err -} +} \ No newline at end of file