all repos — infra @ a14f6c932906e5b9007c071a4b07ed9edc32a023

infrastructure manifests and setup notes

apps/site/site.yaml (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: icyphox.sh
  namespace: default
  annotations:
    caddy.ingress.kubernetes.io/permanent-redirect: "https://anirudh.fi"
spec:
  ingressClassName: caddy
  rules:
  - host: icyphox.sh
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: site
            port:
              number: 8080
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: anirudh.fi
  namespace: default
spec:
  ingressClassName: caddy
  rules:
  - host: anirudh.fi
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: site
            port:
              number: 8080

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: site
  labels:
    app: site
spec:
  selector:
    matchLabels:
      app: site
  template:
    metadata:
      labels:
        app: site
    spec:
      nodeSelector:
        kubernetes.io/hostname: sini
      containers:
        - name: site
          image: nginx:latest
          imagePullPolicy: IfNotPresent
          volumeMounts:
            - name: site
              mountPath: /www
              readOnly: false
            - name: nginx-config
              mountPath: /etc/nginx/nginx.conf
              subPath: nginx.conf
          ports:
            - containerPort: 80
      volumes:
        - name: site
          hostPath:
            path: /var/www
        - name: nginx-config
          configMap:
            name: site-nginx
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: site-nginx
data:
  nginx.conf: |
    user  nginx;
    worker_processes  1;

    error_log  /var/log/nginx/error.log warn;
    pid        /var/run/nginx.pid;

    events {
        worker_connections  1024;
    }

    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;

        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';

        access_log  /var/log/nginx/access.log  main;
        sendfile        on;

        keepalive_timeout  65;

        gzip  on;

        server {
            listen 80;
            server_name _;

            location / {
                root /www;
                index index.html index.htm;
            }
        }
    }
---
apiVersion: v1
kind: Service
metadata:
  name: site
spec:
  selector:
    app: site
  ports:
    - name: site-http
      port: 8080
      targetPort: 80