kube-lego icon indicating copy to clipboard operation
kube-lego copied to clipboard

LEGO_SERVICE_SELECTOR does not seems to work

Open gurvindersingh opened this issue 6 years ago • 0 comments

Below is the yaml deployment file which I used to deploy a staging version of kube lego in addition to prod version, but it was failed to work. The reason was service selector was not picked up correctly and it ended up having selector as app: kube-lego rather than app: kube-lego-staging as specified in the yaml below.

apiVersion: v1
metadata:
  name: kube-lego-staging-nginx
  namespace: kube-system
data:
  lego.email: "[email protected]"
  lego.url: "https://acme-staging.api.letsencrypt.org/directory"
  lego.secret: "kube-lego-staging-account"
  lego.service: "kube-lego-staging"
  lego.service_name: "kube-lego-staging-nginx"
  lego.ingress_name: "kube-lego-staging-nginx"
  lego.kube_annotation: "kubernetes.io/tls-acme-staging"
kind: ConfigMap

---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: kube-lego-staging-nginx
  namespace: kube-system
spec:
  replicas: 1
  template:
    metadata:
      labels:
        app: kube-lego-staging
    spec:
      serviceAccount: kube-lego
      containers:
      - name: kube-lego-staging-nginx
        image: jetstack/kube-lego:0.1.4
        imagePullPolicy: Always
        resources:
          limits:
            memory: 200Mi
            cpu: 200m
          requests:
            cpu: 100m
            memory: 100Mi
        ports:
        - containerPort: 8080
        env:
        - name: LEGO_EMAIL
          valueFrom:
            configMapKeyRef:
              name: kube-lego-staging-nginx
              key: lego.email
        - name: LEGO_URL
          valueFrom:
            configMapKeyRef:
              name: kube-lego-staging-nginx
              key: lego.url
        - name: LEGO_SECRET_NAME
          valueFrom:
            configMapKeyRef:
              name: kube-lego-staging-nginx
              key: lego.secret
        - name: LEGO_SERVICE_SELECTOR
          valueFrom:
            configMapKeyRef:
              name: kube-lego-staging-nginx
              key: lego.service
        - name: LEGO_SERVICE_NAME_NGINX
          valueFrom:
            configMapKeyRef:
              name: kube-lego-staging-nginx
              key: lego.service_name
        - name: LEGO_INGRESS_NAME_NGINX
          valueFrom:
            configMapKeyRef:
              name: kube-lego-staging-nginx
              key: lego.ingress_name
        - name: LEGO_KUBE_ANNOTATION
          valueFrom:
            configMapKeyRef:
              name: kube-lego-staging-nginx
              key: lego.kube_annotation
        - name: LEGO_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: LEGO_POD_IP
          valueFrom:
            fieldRef:
              fieldPath: status.podIP
        readinessProbe:
          httpGet:
            path: /healthz
            port: 8080
          initialDelaySeconds: 5
          timeoutSeconds: 1

Once I edited the service manually and set the correct selector, things start to work as expected.

gurvindersingh avatar Oct 18 '17 09:10 gurvindersingh