Answer a question

I've tried other related solutions but I can't seem to get this working right and I'm sure it is just a namespacing issue or something because this is my first experience with using ConfigMaps, but can someone help me troubleshoot why this isn't working?

Here's my ingress:

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: brushfire-ingress
  labels:
    helm.sh/chart: brushfire-0.1.0
    app.kubernetes.io/name: brushfire
    app.kubernetes.io/instance: brushfire
    app.kubernetes.io/version: "1.16.0"
    app.kubernetes.io/managed-by: Helm
  annotations:
    cert-manager.io/cluster-issuer: brushfire-issuer
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
    nginx.ingress.kubernetes.io/rewrite-target: /$1
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
  tls:
    - hosts:
        - "brushfire.online"
        - "*.brushfire.online"
      secretName: tls-secret
  rules:
    - host: "brushfire.online"
      http:
        paths:
          - path: /(.*)
            backend:
              serviceName: brushfire
              servicePort: 80
    - host: "*.brushfire.online"
      http:
        paths:
          - path: /(.*)
            backend:
              serviceName: brushfire
              servicePort: 80

And this is installed as part of a helm chart that is installed with --namespace jorin-ssl

The ConfigMap I tried is:

kind: ConfigMap
apiVersion: v1
metadata:
  labels:
    app: brushfire-ingress
  name: nginx-configuration
  namespace: ingress-nginx # I've also tried `jorin-ssl`
data:
  hsts: "false"

But in the end, the HSTS always appears to be there:

$ curl -s -D- https://brushfire.online/ | grep -i Strict

returns

strict-transport-security: max-age=15724800; includeSubDomains

For simplicity, I'd love to do this without using a ConfigMap at all. Is there not a way to do this with the annotations like we do with force-ssl-redirect etc?

Answers

The name of the ConfigMap must match what the nginx-ingress controller process is looking up.

The nginx-ingress process will use the --configmap argument on the command line to set the name. This option will be available in the container spec included in your deployment yaml.

For example, the helm deployment uses the full name of the controller for the --configmap option.

Logo

开发云社区提供前沿行业资讯和优质的学习知识,同时提供优质稳定、价格优惠的云主机、数据库、网络、云储存等云服务产品

更多推荐