Skip to content
PluginStats

jetbrains/teamcity-operator pulls statistics

By jetbrains (640 listings) · Docker Hub

Kubernetes operator for managing TeamCity

View on Docker Hub Fresh · Oct 20, 2026

jetbrains/teamcity-operator has 12,791 recorded pulls on Docker Hub, ranking #850 of 1,265 tracked listings.

Pulls
12,791
Official API · Oct 20, 2026
7-day growth
—
Insufficient history
30-day growth
—
Insufficient history
90-day growth
—
Insufficient history
Rank
#850
Among tracked Docker Hub 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

jetbrains/teamcity-operator pulls on Docker Hub, last 90 days: 12,791 pulls as of Oct 20, 2026.jetbrains/teamcity-operatorPulls on Docker Hub · Last 90 days12,791pulls12.7K12.7K12.7K12.7K12.8K12.8K12.8K12.8K12.8K12.8KJul 22Aug 6Aug 21Sep 5Sep 20Oct 5Oct 20pullsobservedarchived (Internet Archive)no observationsOct 16, 2026 – Oct 20, 2026 · 5 observations · Updated Oct…pluginstats.com
jetbrains/teamcity-operator pulls on Docker Hub, last 90 days: 12,791 pulls as of Oct 20, 2026.

7/30/90-day growth

jetbrains/teamcity-operator pulls growth on Docker Hub: 7-day growth unavailable, 30-day growth unavailable, 90-day growth unavailable.jetbrains/teamcity-operatorPulls growth on Docker Hub12,791pulls now7-day growthinsufficient historyInsufficient history30-day growthinsufficient historyInsufficient history90-day growthinsufficient historyInsufficient historyGrowth vs. nearest observation to each baseline date · Updated Oct 20, 2026pluginstats.com
jetbrains/teamcity-operator pulls growth on Docker Hub: 7-day growth unavailable, 30-day growth unavailable, 90-day growth unavailable.

Ranking history

jetbrains/teamcity-operator Docker Hub ranking history: currently #850 (by pulls).jetbrains/teamcity-operatorDocker Hub ranking · by pulls · Last 90 days#850current rank#847#848#849#850#851#852Jul 22Aug 6Aug 21Sep 5Sep 20Oct 5Oct 20rankOct 16, 2026 – Oct 20, 2026 · 5 observations · Updated Oct 20, 2026pluginstats.com
jetbrains/teamcity-operator Docker Hub ranking history: currently #850 (by pulls).

Listing placement

All Docker Hub1,265 listings · 64 pages · page 43, #10 (overall #850)
All Docker Hub: every listing in pulls order

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)
Recent pulls observations for jetbrains/teamcity-operator
Date (UTC)PullsChange vs. previous
12,791+40
12,751+18
12,733+5
12,728+9
12,719—

Data 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.