about summary refs log tree commit diff
path: root/infra/kubernetes/nixery/config.yaml
# Deploys an instance of Nixery into the cluster.
#
# The service via which Nixery is exposed has a private DNS entry
# pointing to it, which makes it possible to resolve `nixery.local`
# in-cluster without things getting nasty.
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nixery
  namespace: kube-public
  labels:
    app: nixery
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nixery
  template:
    metadata:
      labels:
        app: nixery
    spec:
      containers:
      - name: nixery
        image: eu.gcr.io/tazjins-infrastructure/nixery:{{ .version }}
        volumeMounts:
          - name: nixery-secrets
            mountPath: /var/nixery
        env:
          - name: BUCKET
            value: {{ .bucket}}
          - name: PORT
            value: "{{ .port }}"
          - name: GOOGLE_APPLICATION_CREDENTIALS
            value: /var/nixery/gcs-key.json
          - name: GCS_SIGNING_KEY
            value: /var/nixery/gcs-key.pem
          - name: GCS_SIGNING_ACCOUNT
            value: {{ .account }}
          - name: GIT_SSH_COMMAND
            value: 'ssh -F /var/nixery/ssh_config'
          - name: NIXERY_PKGS_REPO
            value: {{ .repo }}
          - name: NIX_POPULARITY_URL
            value: 'https://storage.googleapis.com/nixery-layers/popularity/{{ .popularity }}'
      volumes:
        - name: nixery-secrets
          secret:
            secretName: nixery-secrets
            defaultMode: 256
---
apiVersion: v1
kind: Service
metadata:
  name: nixery
  namespace: kube-public
  annotations:
    cloud.google.com/load-balancer-type: "Internal"
spec:
  selector:
    app: nixery
  type: LoadBalancer
  ports:
  - protocol: TCP
    port: 80
    targetPort: 8080