Skip to content

chore(cloudformation): tag every stack resource with Name BuildBot #436

Open

Description

@credfeto

Summary

Resources created by the BuildBot CloudFormation stack show no name in the AWS console's Name column (for example the BuildBot-VpcLinkSecurityGroup-* security group shows -). Every taggable resource in the stack should carry a Name tag of BuildBot, so it's clear in the console that it belongs to BuildBot.

Scope (agreed in chat)

  • Add a Name tag with value BuildBot (from the ApplicationName parameter) to every resource in cloudformation.json that supports tags.
  • Leave the security group's GroupDescription unchanged, because changing it would replace the security group and the VPC Link.
  • Don't add Description properties to the API, stage or integration.

Activity

  1. credfeto commented on Oct 16, 2026

    @credfeto
    MemberAuthor

    Implementation Plan

    Files to change

    • cloudformation.json: add a Name tag to every taggable resource.
    • CHANGELOG.md: one Changed entry, made with the dotnet changelog tool.

    Approach

    The tag value is { "Ref": "ApplicationName" }, which resolves to BuildBot. Each resource type uses the tag format it requires:

    Resource Type Tags format
    VpcLinkSecurityGroup AWS::EC2::SecurityGroup list of Key/Value
    TaskDefinition AWS::ECS::TaskDefinition list
    ECSService AWS::ECS::Service list
    TargetGroup AWS::ElasticLoadBalancingV2::TargetGroup list
    LogGroup, ApiAccessLogGroup AWS::Logs::LogGroup list
    VpcLink AWS::ApiGatewayV2::VpcLink map
    Api AWS::ApiGatewayV2::Api map
    ApiStage AWS::ApiGatewayV2::Stage map
    ApiDomainName AWS::ApiGatewayV2::DomainName map

    These resources don't support tags and are left as they are: Integration, the six Routes, ApiMapping, ListenerRule and the Route 53 RecordSet.

    The following stay the same:

    • the security group's GroupDescription, because changing it would replace the security group and the VPC Link;
    • every resource name;
    • every other property.

    Test strategy

    • cfn-lint and jq both pass on the template.
    • A scripted comparison of the template against origin/main shows that the only difference is the added Tags properties.
    • There is no C# change. The existing build and tests are run to confirm they still pass.
    • After deploy: the security group and the VPC Link show BuildBot in the console's Name column, and the stack update finishes with no resource replaced. The task definition gets a new revision, as it does on every deploy.

    Assumptions

    1. Updating tags on each of these resources happens in place, with no interruption. If CloudFormation documents a replacement for any type other than the task definition, the code writer reports it instead of tagging that resource.
    2. The value comes from ApplicationName, not a hard-coded BuildBot, so the template stays generic.

    Open questions

    1. Deploy-ECS probably needs two more permissions to apply the tags: ecs:TagResource for the service and task definition, and elasticloadbalancing:AddTags for the target group. Do you want to check them or add them before this deploys? The EC2, API Gateway and logs tagging permissions are already covered by the policy added for feat(cloudformation): serve BuildBot through API Gateway on the internal load balancer #433.
  2. added
    BlockedBlocked by a dependency or external factor
    on Oct 16, 2026
  3. credfeto commented on Oct 16, 2026

    @credfeto
    MemberAuthor
    1. already has the tag resource
  4. removed
    BlockedBlocked by a dependency or external factor
    on Oct 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    LowLow PriorityTech DebtTechnical debtbuildbotChanges in BuildBot project

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions