# Copyright 2019 Google LLC
#
# Licensed under the the Apache License v2.0 with LLVM Exceptions (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     https://llvm.org/LICENSE.txt
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: nginx-ingress-prod-jenkins
  namespace: jenkins
  annotations:
    # static IP assignment not working. Not sure why.
    kubernetes.io/ingress.global-static-ip-name: "web-static-ip"
    kubernetes.io/ingress.class: "nginx"    
    cert-manager.io/issuer: "letsencrypt-prod"
    nginx.ingress.kubernetes.io/auth-type: basic
    nginx.ingress.kubernetes.io/auth-secret: proxy-auth
    nginx.ingress.kubernetes.io/auth-realm: "Authentication Required - LLVM pre-merge checks"
    nginx.ingress.kubernetes.io/configuration-snippet: |
        proxy_set_header Authorization $remote_user;
spec:
  tls:
  - secretName: jenkins-prod-tls
    hosts:
    - jenkins.llvm-merge-guard.org

  rules:
  - host: jenkins.llvm-merge-guard.org
    http:
      paths:
      - backend:
          serviceName: jenkins-ui
          servicePort: 8080

---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: nginx-ingress-prod-results
  namespace: jenkins
  annotations:
    # static IP assignment not working. Not sure why.
    kubernetes.io/ingress.global-static-ip-name: "web-static-ip"
    kubernetes.io/ingress.class: "nginx"    
    cert-manager.io/issuer: "letsencrypt-prod"
spec:
  tls:
  - secretName: results-prod-tls
    hosts:
    - results.llvm-merge-guard.org
  rules:
  - host: results.llvm-merge-guard.org
    http:
      paths:
      - backend:
          serviceName: nginx-results
          servicePort: 80
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: nginx-ingress-staging-jenkins
  namespace: jenkins
  annotations:
    # static IP assignment not working. Not sure why.
    kubernetes.io/ingress.global-static-ip-name: "web-static-ip"
    kubernetes.io/ingress.class: "nginx"    
    cert-manager.io/issuer: "letsencrypt-staging"
    nginx.ingress.kubernetes.io/auth-type: basic
    nginx.ingress.kubernetes.io/auth-secret: proxy-auth
    nginx.ingress.kubernetes.io/auth-realm: "Authentication Required - LLVM pre-merge checks"
    nginx.ingress.kubernetes.io/configuration-snippet: |
        proxy_set_header Authorization $remote_user;
spec:
  tls:
  - secretName: jenkins-staging-tls
    hosts:
    - jenkins.staging.llvm-merge-guard.org

  rules:
  - host: jenkins.staging.llvm-merge-guard.org
    http:
      paths:
      - backend:
          serviceName: jenkins-ui-staging
          servicePort: 8080
---

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: nginx-ingress-staging-results
  namespace: jenkins
  annotations:
    # static IP assignment not working. Not sure why.
    kubernetes.io/ingress.global-static-ip-name: "web-static-ip"
    kubernetes.io/ingress.class: "nginx"    
    cert-manager.io/issuer: "letsencrypt-staging"
spec:
  tls:
  - secretName: results-staging-tls
    hosts:
    - results.staging.llvm-merge-guard.org
  rules:
  - host: results.staging.llvm-merge-guard.org
    http:
      paths:
      - backend:
          serviceName: nginx-results
          servicePort: 80
---