{"id":21584953,"url":"https://github.com/snatalenko/tf_teamcity","last_synced_at":"2025-03-18T09:13:14.738Z","repository":{"id":77746957,"uuid":"108978517","full_name":"snatalenko/tf_teamcity","owner":"snatalenko","description":"Teamcity server/agent deployment Terraform module","archived":false,"fork":false,"pushed_at":"2017-10-31T11:13:15.000Z","size":4,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-01-24T15:28:03.767Z","etag":null,"topics":["module","teamcity","terraform"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/snatalenko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-10-31T10:13:32.000Z","updated_at":"2017-10-31T11:14:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"fcf50f2a-b723-4797-b561-f44813546e1c","html_url":"https://github.com/snatalenko/tf_teamcity","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snatalenko%2Ftf_teamcity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snatalenko%2Ftf_teamcity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snatalenko%2Ftf_teamcity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snatalenko%2Ftf_teamcity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/snatalenko","download_url":"https://codeload.github.com/snatalenko/tf_teamcity/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244189829,"owners_count":20412991,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["module","teamcity","terraform"],"created_at":"2024-11-24T15:08:32.467Z","updated_at":"2025-03-18T09:13:14.728Z","avatar_url":"https://github.com/snatalenko.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"Teamcity Server/Agent Deployment Terraform Module\n=================================================\n\nThis module can be used to deploy a teamcity server and one or multiple build agents to your terraform-managed infrastructure:\n\n```js\n{\n    \"module\": {\n        \"buildserver\": {\n            \"source\": \"github.com/snatalenko/tf_teamcity\",\n\n            \"aws_account_id\": \"${var.aws_account_id}\",\n            \"vpc_id\": \"${var.vpc_id}\",\n            \"subnet_id\": \"${var.subnet_id}\",\n\n            // using same cluster for buildserver and agent,\n            // so that both tasks can be hosted on a same instance\n            \"server_cluster_id\": \"${aws_ecs_cluster.buildserver.id}\",\n            \"agent_cluster_id\": \"${aws_ecs_cluster.buildserver.id}\",\n\n            \"server_image\": \"jetbrains/teamcity-server:2017.1.5\",\n            \"agent_image\": \"${aws_ecr_repository.teamcity_agent.repository_url}:2017.1.5\",\n\n            // the hostname will be used by agent to connect to the server\n            \"server_hostname\": \"${aws_route53_record.buildserver.name}\",\n\n            // if more than 1 agent will be used,\n            // they will need to be placed to a separate aws_ecs_cluster\n            // with a corresponding number of aws_instance's\n            \"agents_count\": 1\n        },\n    },\n    \"resource\": {\n        \"aws_ecs_cluster\": {\n            \"buildserver\": {\n                \"name\": \"myapp-buildserver\"\n            }\n        },\n        \"aws_ecr_repository\": {\n            // ECR repository for your customized build agent image\n            \"teamcity_agent\": {\n                \"name\": \"myapp/teamcity-nodejs-agent\"\n            }\n        },\n        \"aws_instance\": {\n            \"buildserver\": {\n                // ...\n                // your buildserver instance configuration\n                // ...\n                \"iam_instance_profile\": \"${module.buildserver.instance_profile_name}\",\n                \"vpc_security_group_ids\": [\n                    \"${module.buildserver.security_group_id}\"\n                ]\n            }\n        },\n        \"aws_route53_record\": {\n            \"buildserver\": {\n                \"zone_id\": \"${var.route53_zone_id}\",\n                \"name\": \"buildserver.myapp.local\",\n                \"type\": \"A\",\n                \"ttl\": \"300\",\n                \"records\": [\n                    \"${aws_instance.buildserver.private_ip}\"\n                ]\n            }\n        }\n    }\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnatalenko%2Ftf_teamcity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsnatalenko%2Ftf_teamcity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnatalenko%2Ftf_teamcity/lists"}