spinnaker-plugins/aws-account-registration-plugin-spinnaker

Test ECS Fargate Application Deployment via Spinnaker Pipeline

Closed this issue · 0 comments

Name of Tester: Manabu McCloskey
Date of Test: 08/26/2020
Title of Test: Test ECS Fargate Application Deployment via Spinnaker Pipeline

Spinnaker Version: 1.21.4
Plugin Version: 0.0.1

Status: PASS

Step 1

create a pipeline which creates a service in ECS Fargate that uses an account which have been provisioned through the plugin.

Expected:
{
  "clusters": [
    {
      "account": "test-3-ecs",
      "application": "test",
      "associatePublicIpAddress": false,
      "availabilityZones": {
        "us-west-2": [
          "us-west-2a",
          "us-west-2b",
          "us-west-2c",
          "us-west-2d"
        ]
      },
      "capacity": {
        "desired": 1,
        "max": 1,
        "min": 1
      },
      "cloudProvider": "ecs",
      "computeUnits": 256,
      "copySourceScalingPoliciesAndActions": false,
      "dockerImageCredentialsSecret": "None (No registry credentials)",
      "dockerLabels": {},
      "ecsClusterName": "test-3-test",
      "environmentVariables": {},
      "freeFormDetails": "e",
      "healthCheckGracePeriodSeconds": "",
      "healthCheckType": "EC2",
      "iamRole": "None (No IAM role)",
      "imageDescription": {
        "account": "my-ecr-registry",
        "fromTrigger": true,
        "imageId": "index.docker.io/nabuskey/public-test:echo",
        "registry": "index.docker.io",
        "repository": "nabuskey/public-test",
        "tag": "echo"
      },
      "launchType": "FARGATE",
      "loadBalancers": [],
      "moniker": {
        "app": "test",
        "detail": "e",
        "stack": "t"
      },
      "networkMode": "awsvpc",
      "placementConstraints": [],
      "placementStrategyName": "",
      "placementStrategySequence": [],
      "preferSourceCapacity": false,
      "provider": "ecs",
      "reservedMemory": 512,
      "securityGroupNames": [
        "no-ingress-sg"
      ],
      "securityGroups": [],
      "serviceDiscoveryAssociations": [],
      "stack": "t",
      "strategy": "",
      "subnetType": "private-subnet1",
      "tags": {},
      "targetGroup": "",
      "targetGroupMappings": [],
      "taskDefinitionArtifact": {},
      "useSourceCapacity": false,
      "useTaskDefinitionArtifact": false
    }
  ],
  "name": "Deploy",
  "type": "deploy"
}
Output:

Same as above.

Step 2

Execute the pipeline created above.

Expected:

Pipeline executes without any errors.

Output:
{
  "type": "PIPELINE",
  "id": "01EGNR1KV61FF25YQM64QDX69V",
  "application": "test",
  "name": "mccloman3",
  "buildTime": 1598457696350,
  "canceled": false,
  "limitConcurrent": true,
  "keepWaitingPipelines": false,
  "stages": [
    {
      "id": "01EGNR1M7476DTFHZ0FRSWE2DR",
      "refId": "1<1",
      "type": "createServerGroup",
      "name": "Deploy in us-west-2",
      "startTime": 1598457696557,
      "endTime": 1598457765359,
      "status": "SUCCEEDED",
      "context": {
        "healthCheckType": "EC2",
        "placementConstraints": [],
        "deploy.account.name": "test-3-ecs",
        "zeroDesiredCapacityCount": 0,
        "stack": "t",
        "targetGroup": "",
        "lastCapacityCheck": {
          "outOfService": 0,
          "up": 0,
          "failed": 0,
          "starting": 1,
          "down": 0,
          "succeeded": 0,
          "unknown": 0
        },
        "ecsClusterName": "test-3-test",
        "preferSourceCapacity": false,
        "availabilityZones": {
          "us-west-2": [
            "us-west-2a",
            "us-west-2b",
            "us-west-2c",
            "us-west-2d"
          ]
        },
        "source": {
          "serverGroupName": "test-t-e-v001",
          "asgName": "test-t-e-v001",
          "region": "us-west-2",
          "useSourceCapacity": false,
          "account": "test-3-ecs"
        },
        "type": "createServerGroup",
        "currentInstanceCount": 1,
        "freeFormDetails": "e",
        "serviceDiscoveryAssociations": [],
        "imageDescription": {
          "registry": "index.docker.io",
          "imageId": "index.docker.io/nabuskey/public-test:echo",
          "fromTrigger": true,
          "tag": "echo",
          "repository": "nabuskey/public-test",
          "account": "my-ecr-registry"
        },
        "kato.last.task.id": {
          "id": "80927326-97ab-4bcd-8d8b-bc32f51f78bc"
        },
        "targetGroupMappings": [],
        "dockerLabels": {},
        "healthCheckGracePeriodSeconds": "",
        "launchType": "FARGATE",
        "networkMode": "awsvpc",
        "interestingHealthProviderNames": [
          "ecs"
        ],
        "taskDefinitionArtifact": {},
        "kato.task.terminalRetryCount": 0,
        "loadBalancers": [],
        "zones": [],
        "placementStrategySequence": [],
        "tags": {},
        "kato.task.firstNotFoundRetry": -1,
        "capacitySnapshot": {
          "minSize": 1,
          "maxSize": 1,
          "desiredCapacity": 1
        },
        "name": "Deploy in us-west-2",
        "kato.tasks": [
          {
            "resultObjects": [
              {
                "ancestorServerGroupNameByRegion": {
                  "us-west-2": "test-t-e-v001"
                }
              },
              {
                "deployments": [],
                "serverGroupNames": [
                  "us-west-2:test-t-e-v002"
                ],
                "createdArtifacts": [],
                "deployedNamesByLocation": {},
                "deployedNames": [],
                "messages": [],
                "serverGroupNameByRegion": {
                  "us-west-2": "test-t-e-v002"
                }
              }
            ],
            "id": "80927326-97ab-4bcd-8d8b-bc32f51f78bc",
            "history": [
              {
                "phase": "ORCHESTRATION",
                "status": "Initializing Orchestration Task"
              },
              {
                "phase": "ORCHESTRATION",
                "status": "Processing op: CreateServerGroupAtomicOperation"
              },
              {
                "phase": "CREATE_ECS_SERVER_GROUP",
                "status": "Initializing Create Amazon ECS Server Group Operation..."
              },
              {
                "phase": "ECS_DEPLOY",
                "status": "Found ancestor server group, parsing details (name: test-t-e-v001)"
              },
              {
                "phase": "CREATE_ECS_SERVER_GROUP",
                "status": "Creating Amazon ECS Task Definition..."
              },
              {
                "phase": "CREATE_ECS_SERVER_GROUP",
                "status": "Done creating Amazon ECS Task Definition..."
              },
              {
                "phase": "CREATE_ECS_SERVER_GROUP",
                "status": "Creating 1 of test-t-e-v002 with arn:aws:ecs:us-west-2:123:task-definition/test-t-e:8 for test-3-ecs."
              },
              {
                "phase": "CREATE_ECS_SERVER_GROUP",
                "status": "Done creating 1 of test-t-e-v002 with arn:aws:ecs:us-west-2:123:task-definition/test-t-e:8 for test-3-ecs."
              },
              {
                "phase": "CREATE_ECS_SERVER_GROUP",
                "status": "Creating Amazon Application Auto Scaling Scalable Target Definition..."
              },
              {
                "phase": "CREATE_ECS_SERVER_GROUP",
                "status": "Done creating Amazon Application Auto Scaling Scalable Target Definition."
              },
              {
                "phase": "ORCHESTRATION",
                "status": "Orchestration completed."
              }
            ],
            "status": {
              "retryable": false,
              "completed": true,
              "failed": false
            }
          }
        ],
        "useTaskDefinitionArtifact": false,
        "notification.type": "createdeploy",
        "force.cache.refresh.errors": [],
        "securityGroupNames": [
          "no-ingress-sg"
        ],
        "capacity": {
          "min": 1,
          "desired": 1,
          "max": 1
        },
        "targetDesiredSize": 1,
        "provider": "ecs",
        "cloudProvider": "ecs",
        "kato.result.expected": false,
        "copySourceScalingPoliciesAndActions": false,
        "deploy.server.groups": {
          "us-west-2": [
            "test-t-e-v002"
          ]
        },
        "reservedMemory": 512,
        "processed.server.groups": [],
        "refreshed.server.groups": [],
        "moniker": {
          "app": "test",
          "stack": "t",
          "detail": "e"
        },
        "useSourceCapacity": false,
        "iamRole": "None (No IAM role)",
        "computeUnits": 256,
        "placementStrategyName": "",
        "application": "test",
        "environmentVariables": {},
        "associatePublicIpAddress": false,
        "dockerImageCredentialsSecret": "None (No registry credentials)",
        "securityGroups": [],
        "strategy": "",
        "kato.task.notFoundRetryCount": 0,
        "account": "test-3-ecs",
        "subnetType": "private-subnet1",
        "kato.task.lastStatus": "SUCCEEDED"
      },
      "outputs": {},
      "tasks": [
        {
          "id": "1",
          "implementingClass": "com.netflix.spinnaker.orca.kato.pipeline.strategy.DetermineSourceServerGroupTask",
          "name": "determineSourceServerGroup",
          "startTime": 1598457696633,
          "endTime": 1598457696989,
          "status": "SUCCEEDED",
          "stageStart": true,
          "stageEnd": false,
          "loopStart": false,
          "loopEnd": false
        },
        {
          "id": "2",
          "implementingClass": "com.netflix.spinnaker.orca.clouddriver.tasks.DetermineHealthProvidersTask",
          "name": "determineHealthProviders",
          "startTime": 1598457697052,
          "endTime": 1598457697134,
          "status": "SUCCEEDED",
          "stageStart": false,
          "stageEnd": false,
          "loopStart": false,
          "loopEnd": false
        },
        {
          "id": "3",
          "implementingClass": "com.netflix.spinnaker.orca.clouddriver.tasks.servergroup.CreateServerGroupTask",
          "name": "createServerGroup",
          "startTime": 1598457697176,
          "endTime": 1598457697655,
          "status": "SUCCEEDED",
          "stageStart": false,
          "stageEnd": false,
          "loopStart": false,
          "loopEnd": false
        },
        {
          "id": "4",
          "implementingClass": "com.netflix.spinnaker.orca.clouddriver.tasks.MonitorKatoTask",
          "name": "monitorDeploy",
          "startTime": 1598457697707,
          "endTime": 1598457702870,
          "status": "SUCCEEDED",
          "stageStart": false,
          "stageEnd": false,
          "loopStart": false,
          "loopEnd": false
        },
        {
          "id": "5",
          "implementingClass": "com.netflix.spinnaker.orca.clouddriver.tasks.servergroup.ServerGroupCacheForceRefreshTask",
          "name": "forceCacheRefresh",
          "startTime": 1598457702922,
          "endTime": 1598457713284,
          "status": "SUCCEEDED",
          "stageStart": false,
          "stageEnd": false,
          "loopStart": false,
          "loopEnd": false
        },
        {
          "id": "6",
          "implementingClass": "com.netflix.spinnaker.orca.clouddriver.tasks.instance.WaitForUpInstancesTask",
          "name": "waitForUpInstances",
          "startTime": 1598457713297,
          "endTime": 1598457754890,
          "status": "SUCCEEDED",
          "stageStart": false,
          "stageEnd": false,
          "loopStart": false,
          "loopEnd": false
        },
        {
          "id": "7",
          "implementingClass": "com.netflix.spinnaker.orca.clouddriver.tasks.servergroup.ServerGroupCacheForceRefreshTask",
          "name": "forceCacheRefresh",
          "startTime": 1598457754897,
          "endTime": 1598457765220,
          "status": "SUCCEEDED",
          "stageStart": false,
          "stageEnd": false,
          "loopStart": false,
          "loopEnd": false
        },
        {
          "id": "8",
          "implementingClass": "com.netflix.spinnaker.orca.igor.tasks.GetCommitsTask",
          "name": "getCommits",
          "startTime": 1598457765228,
          "endTime": 1598457765349,
          "status": "SUCCEEDED",
          "stageStart": false,
          "stageEnd": true,
          "loopStart": false,
          "loopEnd": false
        }
      ],
      "syntheticStageOwner": "STAGE_BEFORE",
      "parentStageId": "01EGNR1M2Y0M1F26VXDP8WQB29",
      "requisiteStageRefIds": []
    },
    {
      "id": "01EGNR1M2Y0M1F26VXDP8WQB29",
      "refId": "1",
      "type": "deploy",
      "name": "Deploy",
      "startTime": 1598457696478,
      "endTime": 1598457765522,
      "status": "SUCCEEDED",
      "context": {
        "clusters": [
          {
            "healthCheckType": "EC2",
            "placementConstraints": [],
            "stack": "t",
            "targetGroup": "",
            "ecsClusterName": "test-3-test",
            "preferSourceCapacity": false,
            "securityGroupNames": [
              "no-ingress-sg"
            ],
            "availabilityZones": {
              "us-west-2": [
                "us-west-2a",
                "us-west-2b",
                "us-west-2c",
                "us-west-2d"
              ]
            },
            "capacity": {
              "min": 1,
              "desired": 1,
              "max": 1
            },
            "freeFormDetails": "e",
            "provider": "ecs",
            "serviceDiscoveryAssociations": [],
            "cloudProvider": "ecs",
            "imageDescription": {
              "registry": "index.docker.io",
              "imageId": "index.docker.io/nabuskey/public-test:echo",
              "fromTrigger": true,
              "tag": "echo",
              "repository": "nabuskey/public-test",
              "account": "my-ecr-registry"
            },
            "copySourceScalingPoliciesAndActions": false,
            "targetGroupMappings": [],
            "dockerLabels": {},
            "healthCheckGracePeriodSeconds": "",
            "launchType": "FARGATE",
            "networkMode": "awsvpc",
            "reservedMemory": 512,
            "taskDefinitionArtifact": {},
            "loadBalancers": [],
            "moniker": {
              "app": "test",
              "stack": "t",
              "detail": "e"
            },
            "useSourceCapacity": false,
            "placementStrategySequence": [],
            "tags": {},
            "iamRole": "None (No IAM role)",
            "computeUnits": 256,
            "placementStrategyName": "",
            "application": "test",
            "environmentVariables": {},
            "associatePublicIpAddress": false,
            "dockerImageCredentialsSecret": "None (No registry credentials)",
            "securityGroups": [],
            "strategy": "",
            "useTaskDefinitionArtifact": false,
            "account": "test-3-ecs",
            "subnetType": "private-subnet1"
          }
        ]
      },
      "outputs": {},
      "tasks": [
        {
          "id": "1",
          "implementingClass": "com.netflix.spinnaker.orca.kato.pipeline.ParallelDeployStage.CompleteParallelDeployTask",
          "name": "completeParallelDeploy",
          "startTime": 1598457765414,
          "endTime": 1598457765468,
          "status": "SUCCEEDED",
          "stageStart": true,
          "stageEnd": true,
          "loopStart": false,
          "loopEnd": false
        }
      ],
      "requisiteStageRefIds": []
    }
  ],
  "startTime": 1598457696422,
  "endTime": 1598457765574,
  "status": "SUCCEEDED",
  "authentication": {
    "user": "anonymous",
    "allowedAccounts": [
      "mccloman-1",
      "mccloman-1-ecs",
      "my-ecr-registry",
      "test-3",
      "test-3-ecs"
    ]
  },
  "origin": "api",
  "trigger": {
    "type": "manual",
    "user": "[anonymous]",
    "parameters": {},
    "artifacts": [
      {
        "customKind": false,
        "reference": "index.docker.io/nabuskey/public-test:echo",
        "metadata": {},
        "name": "index.docker.io/nabuskey/public-test",
        "type": "docker/image",
        "version": "echo"
      }
    ],
    "notifications": [],
    "rebake": false,
    "dryRun": false,
    "strategy": false,
    "account": "my-ecr-registry",
    "repository": "nabuskey/public-test",
    "tag": "echo",
    "resolvedExpectedArtifacts": [],
    "expectedArtifacts": [],
    "registry": "index.docker.io",
    "eventId": "11a1deeb-66d8-435e-a27a-2e91ad42a854",
    "enabled": true,
    "executionId": "01EGNR1KV61FF25YQM64QDX69V",
    "organization": "nabuskey",
    "preferred": false
  },
  "pipelineConfigId": "791ea0de-8c25-47b0-931a-7c7e8a9281d1",
  "notifications": [],
  "initialConfig": {},
  "systemNotifications": [],
  "spelEvaluator": "v4"
}