Skip to content

1.4安装teamcity

teamcity服务端

pvc

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: teamcityserver-data
  namespace: devops
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 500Gi
  storageClassName: basic-services
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: teamcityserver-logs
  namespace: devops
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
  storageClassName: basic-services
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: teamcityserver-backups
  namespace: devops
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 1Gi
  storageClassName: basic-services

service

kind: Service
apiVersion: v1
metadata:
  name: teamcity-server-service
  namespace: devops
  labels:
    name: teamcity-server-service
spec:
  ports:
    - protocol: TCP
      port: 8111
      targetPort: 8111
      nodePort: 30836
  selector:
    app: teamcity-server
  type: NodePort

deployment

kind: Deployment
apiVersion: apps/v1
metadata:
  name: teamcity-server
  namespace: devops
  labels:
    app: teamcity-server
spec:
  replicas: 1
  selector:
    matchLabels:
      app: teamcity-server
  template:
    metadata:
      labels:
        app: teamcity-server
    spec:
      volumes:
        - name: teamcity-data
          persistentVolumeClaim:
            claimName: teamcityserver-data
        - name: teamcity-log
          persistentVolumeClaim:
            claimName: teamcityserver-logs
        - name: teamcity-backups
          persistentVolumeClaim:
            claimName: teamcityserver-backups
      containers:
        - name: teamcity-server
          image: registry.cn-chengdu.aliyuncs.com/liuchenyun/teamcity-server:2024.03.1
          ports:
            - containerPort: 8111
              protocol: TCP
          env:
            - name: TEAMCITY_SERVER_MEM_OPTS
              value: '-Xmx2g -XX:MaxPermSize=270m -XX:ReservedCodeCacheSize=350m'
            - name: TZ
              value: Asia/Shanghai
          resources:
            requests:
              cpu: 200m
              memory: 6Gi
          volumeMounts:
            - name: teamcity-data
              mountPath: /data/teamcity_server/datadir
            - name: teamcity-log
              mountPath: /opt/teamcity/logs
            - name: teamcity-backups
              mountPath: /backups
          livenessProbe:
            tcpSocket:
              port: 8111
            initialDelaySeconds: 60
            timeoutSeconds: 15
            periodSeconds: 30
            successThreshold: 1
            failureThreshold: 5
          readinessProbe:
            tcpSocket:
              port: 8111
            initialDelaySeconds: 25
            timeoutSeconds: 15
            periodSeconds: 30
            successThreshold: 1
            failureThreshold: 5
          imagePullPolicy: Always
      restartPolicy: Always
      imagePullSecrets:
        - name: dockercfg-liuchenyun

teamcity数据库

pvc

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: teamcity-pg-data
  namespace: devops
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 10Gi
  storageClassName: basic-services

service

kind: Service
apiVersion: v1
metadata:
  name: teamcity-database-service
  namespace: devops
  labels:
    name: teamcity-database-service
spec:
  ports:
    - protocol: TCP
      port: 5432
      targetPort: 5432
      nodePort: 30894
  selector:
    app: postgres-server
  type: NodePort

deployment

kind: Deployment
apiVersion: apps/v1
metadata:
  name: teamcity-database
  namespace: devops
  labels:
    app: postgres-server
spec:
  replicas: 1
  selector:
    matchLabels:
      app: postgres-server
  template:
    metadata:
      labels:
        app: postgres-server
    spec:
      volumes:
        - name: postgres-data
          persistentVolumeClaim:
            claimName: teamcity-pg-data
      containers:
        - name: postgres-server
          image: registry.cn-chengdu.aliyuncs.com/liuchenyun/postgres:12
          ports:
            - containerPort: 5432
              protocol: TCP
          env:
            - name: POSTGRES_PASSWORD
              value: teamcity
            - name: POSTGRES_USER
              value: teamcity
            - name: TZ
              value: Asia/Shanghai
          resources:
            requests:
              cpu: 30m
              memory: 3Gi
          volumeMounts:
            - name: postgres-data
              mountPath: /var/lib/postgresql/data
          livenessProbe:
            tcpSocket:
              port: 5432
            initialDelaySeconds: 60
            timeoutSeconds: 20
            periodSeconds: 30
            successThreshold: 1
            failureThreshold: 5
          readinessProbe:
            tcpSocket:
              port: 5432
            initialDelaySeconds: 30
            timeoutSeconds: 20
            periodSeconds: 30
            successThreshold: 1
            failureThreshold: 5
          imagePullPolicy: Always
      restartPolicy: Always
      imagePullSecrets:
        - name: dockercfg-liuchenyun