jetbrains/teamcity-operator pulls statistics
By jetbrains (640 listings) · Docker Hub
Kubernetes operator for managing TeamCity
jetbrains/teamcity-operator has 12,791 recorded pulls on Docker Hub, ranking #850 of 1,265 tracked listings.
About jetbrains/teamcity-operator
TeamCity Kubernetes Operator
TeamCity Operator is a Kubernetes operator that deploys and manages TeamCity servers using a Custom Resource Definition (CRD).
Installation
Prerequisites
- Kubernetes v1.26.0+
- cert-manager installed in the cluster
- Tested with cert-manager v1.14.3
- Install example:
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.14.3/cert-manager.yaml
Install the Operator via Helm
Install release 0.0.20 of the chart from GitHub Releases:
helm upgrade --install teamcity-operator \
-n teamcity-operator --create-namespace \
https://github.com/JetBrains/teamcity-operator/releases/download/0.0.20/teamcity-operator-0.0.20.tgz
Install from source
From the repository root of this project:
helm upgrade --install teamcity-operator \
-n teamcity-operator --create-namespace \
./charts/teamcity-operator
Verify installation:
kubectl get pods -n teamcity-operator
kubectl get crd teamcities.jetbrains.com
Create a TeamCity server
After installing the operator, apply a TeamCity custom resource. Below are common configurations. You can find additional samples under config/samples/v1beta1.
Note: When setting CPU and memory requests/limits for nodes, consult the official TeamCity Server Requirements to estimate appropriate resources: https://www.jetbrains.com/help/teamcity/system-requirements.html#TeamCity+Server+Requirements.
Standalone TeamCity Main Node with a data directory
apiVersion: jetbrains.com/v1beta1
kind: TeamCity
metadata:
name: teamcity
namespace: default
finalizers:
- "teamcity.jetbrains.com/finalizer"
spec:
image: jetbrains/teamcity-server
mainNode:
name: main-node
spec:
requests:
cpu: "900m"
memory: "1512Mi"
dataDirVolumeClaim:
name: teamcity-data-dir
volumeMount:
name: teamcity-data-dir
mountPath: /storage
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
Standalone TeamCity Main Node with a pre-configured external database
apiVersion: v1
data:
connectionProperties.password: DB_PASSWORD
connectionProperties.user: DB_USER
connectionUrl: DB_CONNECTION_STRING # format jdbc:mysql://DB_HOST:DB_PORT/SCHEMA_NAME
kind: Secret
metadata:
name: database-properties
---
apiVersion: jetbrains.com/v1beta1
kind: TeamCity
metadata:
name: teamcity-with-database
namespace: default
finalizers:
- "teamcity.jetbrains.com/finalizer"
spec:
image: jetbrains/teamcity-server
databaseSecret:
secret: database-properties
mainNode:
name: main-node
spec:
env:
AWS_DEFAULT_REGION: "eu-west-1"
requests:
cpu: "900m"
memory: "1512Mi"
dataDirVolumeClaim:
name: teamcity-data-dir
volumeMount:
name: teamcity-data-dir
mountPath: /storage
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
Standalone TeamCity Main Node with startup properties
apiVersion: jetbrains.com/v1beta1
kind: TeamCity
metadata:
name: teamcity-with-startup-properties
namespace: default
finalizers:
- "teamcity.jetbrains.com/finalizer"
spec:
image: jetbrains/teamcity-server
startupPropertiesConfig:
teamcity.startup.maintenance: "false"
teamcity.firstStart.setupAdmin.enabled: "false"
mainNode:
name: main-node
spec:
requests:
cpu: "900m"
memory: "1512Mi"
dataDirVolumeClaim:
name: teamcity-data-dir
volumeMount:
name: teamcity-data-dir
mountPath: /storage
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
Standalone TeamCity Main Node with Ingress and Service
apiVersion: jetbrains.com/v1beta1
kind: TeamCity
metadata:
name: teamcity-sample-with-ingress
namespace: default
finalizers:
- "teamcity.jetbrains.com/finalizer"
spec:
image: jetbrains/teamcity-server
mainNode:
name: main-node
spec:
requests:
cpu: "900m"
memory: "1512Mi"
dataDirVolumeClaim:
name: teamcity-data-dir
volumeMount:
name: teamcity-data-dir
mountPath: /storage
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
serviceList:
- name: main-node
spec:
selector:
app.kubernetes.io/name: teamcity-sample-with-ingress
app.kubernetes.io/component: teamcity-server
app.kubernetes.io/part-of: teamcity
ports:
- protocol: TCP
port: 8111
targetPort: 8111
clusterIP: None
ingressList:
- name: teamcity-sample-with-ingress
annotations:
nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
nginx.ingress.kubernetes.io/server-snippets: |
location / {
proxy_http_version 1.1;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade; # WebSocket support
proxy_set_header Connection "upgrade"; # WebSocket support
}
spec:
ingressClassName: nginx
rules:
- host: teamcity.mycompany.com
http:
paths:
- backend:
service:
name: main-node
port:
number: 8111
pathType: ImplementationSpecific
Standalone TeamCity Main Node with a ServiceAccount…
Description from the Docker Hub listing.
README badge
Show your rank in a README or on your website. The badge updates automatically.
Charts
Images: 30d · 1y · all time · 1600×900 dark
Adoption over time
7/30/90-day growth
Ranking history
Listing placement
Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.
Each band is one page of 20. Pulls on a linear scale. Placement is projected from pulls, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.
Recent observations
Full history (5)Similar Docker Hub plugins
All 20 jetbrains/teamcity-operator alternativesData source
Cumulative pull counts and stars come from the public Docker Hub API. Pulls count image downloads (including automated CI pulls), not installs or users.
Listing: https://hub.docker.com/r/jetbrains/teamcity-operator. First seen Oct 16, 2026; last successful collection Oct 20, 2026. See the methodology.