nginx ingress Jenkins path rewrite configuration not working
This is how I solved it configuring the Jenkins image context path without the need to use the ingress rewrite annotations:
kind: Deploymentmetadata: creationTimestamp: null labels: app: jenkins name: jenkinsspec: replicas: 1 selector: matchLabels: app: jenkins strategy: {} template: metadata: creationTimestamp: null labels: app: jenkins spec: securityContext: fsGroup: 2000 runAsUser: 1000 runAsNonRoot: true volumes: - name: jenkins-storage persistentVolumeClaim: claimName: jenkins containers: - image: jenkins/jenkins:lts name: jenkins ports: - containerPort: 8080 name: "http-server" - containerPort: 50000 name: "jnlp" resources: {} env: - name: JENKINS_OPTS value: --prefix=/jenkins volumeMounts: - mountPath: "/var/jenkins_home" name: jenkins-storagestatus: {}
Ingress:
apiVersion: extensions/v1beta1kind: Ingressmetadata: name: prfl-apps-devops-ingress annotations: kubernetes.io/ingress.class: nginx nginx.ingress.kubernetes.io/ssl-redirect: "false" nginx.ingress.kubernetes.io/add-base-url: "true"spec: rules: - http: paths: - path: /jenkins backend: serviceName: jenkins servicePort: 8080
I'm using the JenkinsCI Helm chart (jenkinsci/jenkins), and @codependent's answer set me on the right track.
The base uri can be set during a helm install or helm upgrade:
helm install jenkins jenkinsci/jenkins --set controller.jenkinsUriPrefix='/jenkins'
or, if you've already installed Jenkins:
helm upgrade jenkins jenkinsci/jenkins --set controller.jenkinsUriPrefix='/jenkins'