Skip to content

OctopusDeploy/TeamCityCloudAgentUpdater

TeamCityCloudAgentUpdater

When a new TeamCity agent image is built (e.g., via packer), you need to tell TeamCity to start using it.

This is a simple NodeJS app that can:

  1. Update TeamCity Cloud Agents images and disable any agents that are running that are based on the old image
  2. Remove any agents that were disabled during update that are no longer running a build

Usage

When you have a new agent, update the cloud profile:

node index.js update-cloud-profile --token XXXXX --server https://teamcity.example.com --image ami-XXXXXXX --cloudprofile "AWS Agents" --agentprefix "Ubuntu" [--dryrun]

To remove any agents that were disabled as part of the update, and are no longer running a build (run on a schedule):

node index.js remove-disabled-agents --token XXXXX --server https://teamcity.example.com [--dryrun]

The --dryrun flag allows you to check what actions the script would have taken without any real modifications.

Requirements

  • Node.js >= 22.0.0
  • npm >= 11.0.0
  • TeamCity 2019.1 or newer (for user access tokens)

Development

Installation

npm install

Testing

# Run all tests
npm test

# Run tests in watch mode
npm run test:watch

# Run tests with coverage
npm run test:coverage

Project Structure

.
├── index.js                 # Entry point
├── cli.js                   # CLI command definitions
├── lib/
│   ├── agents.js           # Agent management operations
│   ├── cloud-profiles.js   # Cloud profile management
│   └── utils.js            # Utility functions
└── *.test.js               # Test files co-located with source

License

This project is licensed under the Apache 2.0 license.

About

| Public | Simple NodeJS app to update AMI's for TeamCity Cloud Agents

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 6