apiVersion: v1
data:
  config.yaml: |
    metrics: true
    services:
      - name: TwiNNatioN
        url: https://twinnation.org/health
        interval: 1m
        conditions:
          - "[STATUS] == 200"
      - name: GitHub
        url: https://api.github.com/healthz
        interval: 5m
        conditions:
          - "[STATUS] == 200"
      - name: cat-fact
        url: "https://cat-fact.herokuapp.com/facts/random"
        interval: 5m
        conditions:
          - "[STATUS] == 200"
          - "[BODY].deleted == false"
          - "len([BODY].text) > 0"
          - "[BODY].text == pat(*cat*)"
          - "[STATUS] == pat(2*)"
          - "[CONNECTED] == true"
      - name: Example
        url: https://example.com/
        conditions:
          - "[STATUS] == 200"
kind: ConfigMap
metadata:
  name: gatus
  namespace: kube-system
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: gatus
  namespace: kube-system
spec:
  replicas: 1
  selector:
    matchLabels:
      k8s-app: gatus
  template:
    metadata:
      labels:
        k8s-app: gatus
      name: gatus
      namespace: kube-system
    spec:
      containers:
        - image: twinproduction/gatus
          imagePullPolicy: IfNotPresent
          name: gatus
          ports:
            - containerPort: 8080
              name: http
              protocol: TCP
          resources:
            limits:
              cpu: 200m
              memory: 50M
            requests:
              cpu: 50m
              memory: 20M
          volumeMounts:
            - mountPath: /config
              name: gatus-config
      volumes:
        - configMap:
            name: gatus
          name: gatus-config
---
apiVersion: v1
kind: Service
metadata:
  name: gatus
  namespace: kube-system
spec:
  ports:
    - name: http
      port: 8080
      protocol: TCP
      targetPort: 8080
  selector:
    k8s-app: gatus