Я развернул экземпляр Jenkins в Kubernetes, доступный на jenkins.company.com. Я хотел бы настроить второй маршрут jenkins.company.com/admin, который будет прикреплять заголовок, а затем перенаправлять запрос в ту же службу.
Моя проблема в том, что все последующие запросы, на которые опирается домашняя страница Jenkins, возвращают 404 HTTP-ответа.
Request URL: https://jenkins.company.com/admin
Request Method: GET Status Code: 200
Request URL: https://jenkins.company.com/static/1d6021a8/css/layout-common.css
Method: GET Status Code: 404
Request URL: https://jenkins.company.com/static/1d6021a8/css/style.cssRequest
Method: GET Status Code: 404
Request URL: https://jenkins.company.com/static/1d6021a8/scripts/prototype.js
Method: GET Status Code: 404
...
Я безуспешно экспериментировал с различными входящими аннотациями.
nginx.ingress.kubernetes.io/use-regex: "правда"
с spec.rules.paths []. path с использованием регулярных выражений в попытке получить значение rewrite-target.
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/auth-realm: Authentication Required - ok
nginx.ingress.kubernetes.io/auth-secret: basic-auth
nginx.ingress.kubernetes.io/auth-type: basic
nginx.ingress.kubernetes.io/configuration-snippet: |-
proxy_set_header User $remote_user;
nginx.ingress.kubernetes.io/rewrite-target: $1
name: jenkins-master-ingress
namespace: default
spec:
rules:
- host: jenkins.company.com
http:
paths:
- backend:
serviceName: my-jenkins
servicePort: 8080
path: /a
tls:
- secretName: my-secret
status:
loadBalancer:
ingress:
- {}
~
Интересно, что я также обнаружил, что добавление другого пути все исправило, хотя я не могу объяснить, как это сделать. Добавление «stati» в качестве пути разблокирует его, но использование «static» или «static /(.+)» разбивает его обратно и возвращает 404-е.
spec:
rules:
- host: jenkins.company.com
http:
paths:
- backend:
serviceName: my-jenkins
servicePort: 8080
path: /a
- backend:
serviceName: my-jenkins
servicePort: 8080
path: /stati
Как я могу передать файлы / static? Что не хватает моему входу?