Allow ECS to pull docker image from private repo
Use AWS::NoValue
Remove {}
Try at CredentialsParameter level
Duplicate code :/
Remove volume
			
			
This commit is contained in:
		@ -38,9 +38,14 @@ Parameters:
 | 
				
			|||||||
    Type: Number
 | 
					    Type: Number
 | 
				
			||||||
    Description: Port for the Postgres server
 | 
					    Description: Port for the Postgres server
 | 
				
			||||||
    Default: 5432
 | 
					    Default: 5432
 | 
				
			||||||
 | 
					  RepositoryCredentialsSecret:
 | 
				
			||||||
 | 
					    Type: String
 | 
				
			||||||
 | 
					    Description: Arn of repostiory secret from AWS Secrets Manager. See https://docs.aws.amazon.com/AmazonECS/latest/developerguide/private-auth.html for more information
 | 
				
			||||||
 | 
					    Default: ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Conditions:
 | 
					Conditions:
 | 
				
			||||||
  CreateSecret: !Equals [!Ref NakamaPasswordOverride, ""]
 | 
					  CreateSecret: !Equals [!Ref NakamaPasswordOverride, ""]
 | 
				
			||||||
 | 
					  NoRepositoryCredentials: !Equals [!Ref RepositoryCredentialsSecret, ""]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Resources:
 | 
					Resources:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -64,6 +69,8 @@ Resources:
 | 
				
			|||||||
    Type: AWS::ECS::TaskDefinition
 | 
					    Type: AWS::ECS::TaskDefinition
 | 
				
			||||||
    Properties:
 | 
					    Properties:
 | 
				
			||||||
      ContainerDefinitions:
 | 
					      ContainerDefinitions:
 | 
				
			||||||
 | 
					      - !If
 | 
				
			||||||
 | 
					        - NoRepositoryCredentials
 | 
				
			||||||
        - Name: nakama
 | 
					        - Name: nakama
 | 
				
			||||||
          Essential: 'true'
 | 
					          Essential: 'true'
 | 
				
			||||||
          Image: !Ref NakamaContainer
 | 
					          Image: !Ref NakamaContainer
 | 
				
			||||||
@ -84,9 +91,6 @@ Resources:
 | 
				
			|||||||
                Ref: AWS::Region
 | 
					                Ref: AWS::Region
 | 
				
			||||||
              awslogs-group:
 | 
					              awslogs-group:
 | 
				
			||||||
                Ref: LogGroup
 | 
					                Ref: LogGroup
 | 
				
			||||||
        MountPoints:
 | 
					 | 
				
			||||||
          - ContainerPath: /nakama/volume
 | 
					 | 
				
			||||||
            SourceVolume: "nakama-volume"
 | 
					 | 
				
			||||||
          EntryPoint: 
 | 
					          EntryPoint: 
 | 
				
			||||||
              - "/bin/sh"
 | 
					              - "/bin/sh"
 | 
				
			||||||
              - "-ecx"
 | 
					              - "-ecx"
 | 
				
			||||||
@ -95,8 +99,36 @@ Resources:
 | 
				
			|||||||
                !Sub "exec /nakama/nakama --name ${ServerName} --database.address ${DatabaseUsername}:${DatabasePassword}@${DatabaseEndpoint}:${DatabasePort} --console.username ${NakamaUsername} --console.password \"",
 | 
					                !Sub "exec /nakama/nakama --name ${ServerName} --database.address ${DatabaseUsername}:${DatabasePassword}@${DatabaseEndpoint}:${DatabasePort} --console.username ${NakamaUsername} --console.password \"",
 | 
				
			||||||
                !If [CreateSecret, !Join ["", ["{{resolve:secretsmanager:",  !Ref AdminPortalPassword,":SecretString}}" ]], !Ref NakamaPasswordOverride ], "\""
 | 
					                !If [CreateSecret, !Join ["", ["{{resolve:secretsmanager:",  !Ref AdminPortalPassword,":SecretString}}" ]], !Ref NakamaPasswordOverride ], "\""
 | 
				
			||||||
                ]]
 | 
					                ]]
 | 
				
			||||||
      Volumes:
 | 
					        - Name: nakama
 | 
				
			||||||
        - Name: "nakama-volume"
 | 
					          Essential: 'true'
 | 
				
			||||||
 | 
					          Image: !Ref NakamaContainer
 | 
				
			||||||
 | 
					          RepositoryCredentials:
 | 
				
			||||||
 | 
					            CredentialsParameter: !Ref RepositoryCredentialsSecret
 | 
				
			||||||
 | 
					          MemoryReservation: 800
 | 
				
			||||||
 | 
					          PortMappings:
 | 
				
			||||||
 | 
					          - HostPort: 0
 | 
				
			||||||
 | 
					            ContainerPort: 7348
 | 
				
			||||||
 | 
					          - HostPort: 0
 | 
				
			||||||
 | 
					            ContainerPort: 7349
 | 
				
			||||||
 | 
					          - HostPort: 0
 | 
				
			||||||
 | 
					            ContainerPort: 7350
 | 
				
			||||||
 | 
					          - HostPort: 0
 | 
				
			||||||
 | 
					            ContainerPort: 7351
 | 
				
			||||||
 | 
					          LogConfiguration:
 | 
				
			||||||
 | 
					            LogDriver: awslogs
 | 
				
			||||||
 | 
					            Options:
 | 
				
			||||||
 | 
					              awslogs-region:
 | 
				
			||||||
 | 
					                Ref: AWS::Region
 | 
				
			||||||
 | 
					              awslogs-group:
 | 
				
			||||||
 | 
					                Ref: LogGroup
 | 
				
			||||||
 | 
					          EntryPoint: 
 | 
				
			||||||
 | 
					              - "/bin/sh"
 | 
				
			||||||
 | 
					              - "-ecx"
 | 
				
			||||||
 | 
					              - !Join ["", [
 | 
				
			||||||
 | 
					                !Sub "/nakama/nakama migrate up --database.address ${DatabaseUsername}:${DatabasePassword}@${DatabaseEndpoint}:${DatabasePort} &&\n",
 | 
				
			||||||
 | 
					                !Sub "exec /nakama/nakama --name ${ServerName} --database.address ${DatabaseUsername}:${DatabasePassword}@${DatabaseEndpoint}:${DatabasePort} --console.username ${NakamaUsername} --console.password \"",
 | 
				
			||||||
 | 
					                !If [CreateSecret, !Join ["", ["{{resolve:secretsmanager:",  !Ref AdminPortalPassword,":SecretString}}" ]], !Ref NakamaPasswordOverride ], "\""
 | 
				
			||||||
 | 
					                ]]
 | 
				
			||||||
Outputs:
 | 
					Outputs:
 | 
				
			||||||
  TaskArn:
 | 
					  TaskArn:
 | 
				
			||||||
    Description: ARN of the TaskDefinition
 | 
					    Description: ARN of the TaskDefinition
 | 
				
			||||||
 | 
				
			|||||||
@ -25,6 +25,10 @@ Parameters:
 | 
				
			|||||||
    Type: String
 | 
					    Type: String
 | 
				
			||||||
    Description: The cluster to run the Nakama service on, if empty will create new cluster.
 | 
					    Description: The cluster to run the Nakama service on, if empty will create new cluster.
 | 
				
			||||||
    Default: ""
 | 
					    Default: ""
 | 
				
			||||||
 | 
					  RepositoryCredentialsSecret:
 | 
				
			||||||
 | 
					    Type: String
 | 
				
			||||||
 | 
					    Description: Arn of repostiory secret from AWS Secrets Manager. See https://docs.aws.amazon.com/AmazonECS/latest/developerguide/private-auth.html for more information
 | 
				
			||||||
 | 
					    Default: ""
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  #-----------------
 | 
					  #-----------------
 | 
				
			||||||
  # Load Balancing 
 | 
					  # Load Balancing 
 | 
				
			||||||
@ -149,6 +153,7 @@ Metadata:
 | 
				
			|||||||
        default: "ECS Configuration"
 | 
					        default: "ECS Configuration"
 | 
				
			||||||
      Parameters:
 | 
					      Parameters:
 | 
				
			||||||
      - EcsClusterOverride
 | 
					      - EcsClusterOverride
 | 
				
			||||||
 | 
					      - RepositoryCredentialsSecret
 | 
				
			||||||
    - Label:
 | 
					    - Label:
 | 
				
			||||||
        default: "Database Configuration"
 | 
					        default: "Database Configuration"
 | 
				
			||||||
      Parameters:
 | 
					      Parameters:
 | 
				
			||||||
@ -212,6 +217,8 @@ Metadata:
 | 
				
			|||||||
        default: "RDS Storage"
 | 
					        default: "RDS Storage"
 | 
				
			||||||
      RdsAccessCidr:
 | 
					      RdsAccessCidr:
 | 
				
			||||||
        default: "RDS Allow Access CIDR"
 | 
					        default: "RDS Allow Access CIDR"
 | 
				
			||||||
 | 
					      RepositoryCredentialsSecret:
 | 
				
			||||||
 | 
					        default: "Docker Repository Credentials"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Conditions:
 | 
					Conditions:
 | 
				
			||||||
@ -298,6 +305,7 @@ Resources:
 | 
				
			|||||||
        DatabasePort: !If ["CreateRdsStack", !GetAtt RdsDatabase.Outputs.RdsPort, !Ref DatabasePort]
 | 
					        DatabasePort: !If ["CreateRdsStack", !GetAtt RdsDatabase.Outputs.RdsPort, !Ref DatabasePort]
 | 
				
			||||||
        NakamaUsername: !Ref NakamaUsername
 | 
					        NakamaUsername: !Ref NakamaUsername
 | 
				
			||||||
        NakamaPasswordOverride: !Ref NakamaPasswordOverride
 | 
					        NakamaPasswordOverride: !Ref NakamaPasswordOverride
 | 
				
			||||||
 | 
					        RepositoryCredentialsSecret: !Ref RepositoryCredentialsSecret
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  EcsService:
 | 
					  EcsService:
 | 
				
			||||||
    DependsOn: LoadBalancing
 | 
					    DependsOn: LoadBalancing
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user