Git Product home page Git Product logo

component-cert-manager's People

Contributors

anothertobi avatar bastjan avatar ccremer avatar corvus-ch avatar debakelorakel avatar glrf avatar haasad avatar happytetrahedron avatar kidswiss avatar megian avatar mhutter avatar renovate-bot avatar rxbn avatar ryazenth avatar simu avatar srueg avatar tobru avatar vshn-renovate avatar vshnbot avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

cdchris12

component-cert-manager's Issues

Add alerting rules for cert-manager

Context

In #134 we ensure that cert-manager metrics are scraped by Prometheus on OpenShift 4 and clusters using component prometheus. However, the cert-manager Helm chart version that we're using doesn't deploy any alerting rules.

We should invest some time to determine what metrics are exposed by cert-manager and define reasonable alerting rules for cert-manager.

Out of scope

  • Update cert-manager
  • Update helm chart version

Task deliverables

  • Component deploys some actionable alerting rules
  • Runbooks for the alerts are part of the component documentation

Allow to configure secrets required for DNS01 solvers

Context

Most if not all DNS01 solvers require some sort of credentials. Those credentials are supposed to be put into a Kubernetes Secret which then gets referenced in the solvers section of the (Cluster)Issuer. In order to do so, the component should allow to confiugre a list of arbitrary Secretes which then can be referenced in solvers.

cert-manager:
  secrets:
    acmedns:
      stringData:
        acmedns.json: ?{vaultkv:${cluster:tenant}/${cluster:name}/acmedns}

  solvers:
    dns01:
      acmeDNS:
        accountSecretRef:
          name: acmedns
            key: acmedns.json
          host: auth.example.com

Alternatives

Allow the credentials to be configured as part of the solver data structure and convert it to a Secret within Jsonnet.
This favours the users perspective (simpler to configure). From a maintainers prespective, this is less favourlable as we would have to cover each and every solver (each does things a bit different) and we would have to actively support new ones.

ArgoCD tries to remove AKS added matchExpression control-plane

AKS is adding an extra matchExpression to ValidatingWebhookConfiguration.

https://docs.microsoft.com/en-us/azure/aks/faq#can-admission-controller-webhooks-impact-kube-system-and-internal-aks-namespaces

To protect the stability of the system and prevent custom admission controllers from impacting internal services in the kube-system, namespace AKS has an Admissions Enforcer, which automatically excludes kube-system and AKS internal namespaces. This service ensures the custom admission controllers don't affect the services running in kube-system.

The cert-manager helm chart object is patched continuously by the AKS K8s Admissions Enforcer.

apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
  name: cert-manager-webhook
webhooks:
  - name: webhook.cert-manager.io
    namespaceSelector:
      matchExpressions:
        - key: control-plane
          operator: DoesNotExist

Currently the helm chart does not support configuring it https://github.com/jetstack/cert-manager/blob/master/deploy/charts/cert-manager/templates/webhook-validating-webhook.yaml#L27 statically for AKS.

Steps to Reproduce the Problem

  1. Take any AKS cluster
  2. Configure the component cert-manager v2.0.0
  3. Check ArgoCD for unsychronized items

Actual Behavior

ArgoCD is continuously removing the cert-manager application matchExpression. The AKS Admissions Enforcer is continuously adding it.

Expected Behavior

The additional matchExpression can be configured.

Upgrade cert-manager to version 1.0+

Context

The current used version 0.15.1 does not support the API version cert-manager.io/v1. This causes as long as we don't upgrade, all new objects use an outdated API version and have to be migrated later. Therefore it would make much sense to rise the version to 1.0+, which makes the current API version available cert-manager/cert-manager#3177.

Alternatives

I think there is not an alternative to it long term.

Dependency Dashboard

This issue provides visibility into Renovate updates and their statuses. Learn more

This repository currently has no open or pending branches.


  • Check this box to trigger a request for Renovate to run again on this repository

Add support for DNS01 validation using RFC-2136

Context

To use DNS01 validation with an RFC-2136 compliant nameserver, a secret holding the TSIG key has to be created (see: https://cert-manager.io/docs/configuration/acme/dns01/rfc2136/#configuration-step-2---set-up-cert-manager).
Further, a check like the acme-dns check should be added using nsupdate (see: https://cert-manager.io/docs/configuration/acme/dns01/rfc2136/#using-nsupdate).

Alternatives

Not providing full integration for DNS validation using RFC-2136 in this component

Monitoring annotation on namespace missing

This creates a ServiceMonitor but the annotation SYNMonitoring=main is not set on the namespace and therefore will not get picked up by prometheus.

Actual Behavior

Annotation not set.

Expected Behavior

Annotation SYNMonitoring=main set.

cert-manager v3.3.1 not working on GKE

When updating component-cert-manager from v3.3.0 to v3.3.1 the deployment gets stuck because of the introduction of prorityClasses in #149.

  Warning  FailedCreate  13m (x19 over 35m)  replicaset-controller  Error creating: insufficient quota to match these scopes: [{PriorityClass In [system-node-critical system-cluster-critical]}]

Similar issues in other projects:

By default there is a ResourceQuata for namespace "kube-system":

apiVersion: v1
kind: ResourceQuota
metadata:
  labels:
    addonmanager.kubernetes.io/mode: Reconcile
  name: gcp-critical-pods
  namespace: kube-system
spec:
  hard:
    pods: 1G
  scopeSelector:
    matchExpressions:
    - operator: In
      scopeName: PriorityClass
      values:
      - system-node-critical
      - system-cluster-critical

I think having a similar quota in the namespace where cert-manager is deployed should solve this issue.

Steps to Reproduce the Problem

  1. Update cert-manager to v3.3.1 on a GKE cluster

Actual Behavior

Rollout gets stuck

Expected Behavior

Successful update of cert-manager

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.