# 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/cluster-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/cluster-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/cluster-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/cluster-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
# ---