sdbondi
11/16/2016 - 10:52 AM

drone-agent-rc.yml

apiVersion: v1
kind: ReplicationController
metadata:
  name: drone-server
  namespace: app-support
  labels:
    tier: support
spec:
  replicas: 1
  selector:
    name: drone-server
  template:
    metadata:
      namespace: app-support
      labels:
        name: drone-server
        tier: support
    spec:
      containers:
        - image: gtaylor/nginx-for-drone:latest
          imagePullPolicy: Always
          name: nginx-proxy
          env:
            - name: DOMAIN
              valueFrom:
                configMapKeyRef:
                  name: drone-config
                  key: proxy.fqdn
            - name: EMAIL
              valueFrom:
                configMapKeyRef:
                  name: drone-config
                  key: proxy.letsencrypt.email
            - name: UPSTREAM
              value: localhost:8000
          ports:
            - name: http
              containerPort: 80
              protocol: TCP
            - name: https
              containerPort: 443
              protocol: TCP
          volumeMounts:
            - mountPath: /etc/letsencrypt
              name: drone-db
          resources:
            requests:
              cpu: 40m
              memory: 12Mi

        - image: drone/drone:0.5.0
          imagePullPolicy: Always
          name: drone-server
          env:
            - name: DRONE_DEBUG
              valueFrom:
                configMapKeyRef:
                  name: drone-config
                  key: server.debug.is.enabled
            - name: DRONE_SECRET
              valueFrom:
                secretKeyRef:
                  name: drone-secrets
                  key: server.secret

            - name: DRONE_DATABASE_DRIVER
              valueFrom:
                configMapKeyRef:
                  name: drone-config
                  key: server.database.driver
            - name: DRONE_DATABASE_DATASOURCE
              valueFrom:
                configMapKeyRef:
                  name: drone-config
                  key: server.database.config

            - name: DRONE_OPEN
              valueFrom:
                configMapKeyRef:
                  name: drone-config
                  key: server.is.open
            - name: DRONE_ORGS
              valueFrom:
                configMapKeyRef:
                  name: drone-config
                  key: server.orgs.list
            - name: DRONE_ADMIN
              valueFrom:
                configMapKeyRef:
                  name: drone-config
                  key: server.admin.list
            - name: DRONE_ADMIN_ALL
              valueFrom:
                configMapKeyRef:
                  name: drone-config
                  key: server.admin.everyone.is.admin

            - name: DRONE_BITBUCKET
              valueFrom:
                configMapKeyRef:
                  name: drone-config
                  key: server.remote.bitbucket.is.enabled
            - name: DRONE_BITBUCKET_CLIENT
              valueFrom:
                configMapKeyRef:
                  name: drone-config
                  key: server.remote.bitbucket.client.id
            - name: DRONE_BITBUCKET_SECRET
              valueFrom:
                configMapKeyRef:
                  name: drone-config
                  key: server.remote.bitbucket.secret
            - name: DRONE_BROKER_DEBUG
              value: "true"
          ports:
            - containerPort: 8000
              protocol: TCP
          volumeMounts:
            # Persist our configs in an SQLite DB in here
            - mountPath: /var/lib/drone
              name: drone-db
            # Enables Docker in Docker
            - mountPath: /var/run/docker.sock
              name: docker-socket
          resources:
            requests:
              cpu: 40m
              memory: 32Mi
      volumes:
        - name: drone-db
          gcePersistentDisk:
            pdName: drone-server
            fsType: ext4
        - name: docker-socket
          hostPath:
            path: /var/run/docker.sock
apiVersion: v1
kind: ConfigMap
metadata:
  name: drone-config
  namespace: app-support
data:

  ################
  # Proxy Config #
  ################

  # CHANGEME: This should be changed to a valid email for Let's Encrypt's
  # records.
  proxy.letsencrypt.email: admin@fixate.it
  # CHANGEME: The Fully-Qualified Domain Name (FQDN) for where Drone will run.
  # No need to create a DNS entry just yet. The installer will walk you through
  # this process.
  proxy.fqdn: XXXXXXXXXXXXXXXXXXXXXXXXXX

  ################################
  # Drone Server (master) Config #
  ################################

  server.debug.is.enabled: "true"

  # You'll probably want to leave this alone, but you can point to external
  # DB instances if you'd like: http://readme.drone.io/0.5/manage/database/
  server.database.driver: postgres
  server.database.config: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  server.is.open: "true"
  # CHANGEME: If you want to restrict access to a particular org, put the
  # name here.
  server.orgs.list: ""
  # CHANGEME: Add your GitHub/Bitbucket/Gogs/etc username here. This is a
  # comma-separated list of usernames who will have admin privs.
  server.admin.list: XXXXXXXXXXX
  server.admin.everyone.is.admin: "false"

  # See http://readme.drone.io/0.5/manage/server/ for possible values here.
  # For now, our demo is GitHub-only. Drone supports other remotes, we just
  # haven't set the others up in here yet.
  server.remote.bitbucket.is.enabled: "true"
  server.remote.bitbucket.client.id: XXXXXXXXXXXXXXXX
  server.remote.bitbucket.secret: XXXXXXXXXXXXXXXXXXXXXXXXXXX

  ######################
  # Drone Agent Config #
  ######################

  agent.debug.is.enabled: "true"
  # agent.drone.server.url: wss://drone-server.app-support/ws/broker
  agent.drone.server.url: wss://XXXXXXX/ws/broker
  agent.timeout: 20m
apiVersion: v1
kind: ReplicationController
metadata:
  name: drone-agent
  namespace: app-support
  labels:
    tier: support
spec:
  replicas: 2
  selector:
    name: drone-agent
    tier: support
  template:
    metadata:
      namespace: app-support
      labels:
        name: drone-agent
        tier: support
    spec:
      containers:
        - image: drone/drone:0.5
          imagePullPolicy: Always
          name: drone-agent
          command:
            - "/drone"
            - "agent"
          env:
            - name: DRONE_DEBUG
              valueFrom:
                configMapKeyRef:
                  name: drone-config
                  key: agent.debug.is.enabled
            - name: DRONE_SERVER
              valueFrom:
                configMapKeyRef:
                  name: drone-config
                  key: agent.drone.server.url
            - name: DRONE_SECRET
              valueFrom:
                secretKeyRef:
                  name: drone-secrets
                  key: server.secret
            - name: DRONE_TIMEOUT
              valueFrom:
                configMapKeyRef:
                  name: drone-config
                  key: agent.timeout
          resources:
            requests:
              cpu: 100m
              memory: 64Mi
          volumeMounts:
            # Enables Docker in Docker
            - mountPath: /var/run/docker.sock
              name: docker-socket
      volumes:
        - name: docker-socket
          hostPath:
            path: /var/run/docker.sock