add certmanager role

master
Michael Wilson 3 years ago
parent 6fb76d35c0
commit 15669bbe03
  1. 2
      linux/k3s/certmanager/defaults/main.yml
  2. 8
      linux/k3s/certmanager/files/traefik-https-redirect-middleware.yml
  3. 24
      linux/k3s/certmanager/tasks/main.yml
  4. 14
      linux/k3s/certmanager/templates/letsencrypt-prod.yml
  5. 2
      linux/k3s/certmanager/vars/main.yml

@ -0,0 +1,2 @@
certmanager_version: 1.10.0
certmanager_letsencrypt_email: admin@example.org

@ -0,0 +1,8 @@
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: redirect-https
spec:
redirectScheme:
scheme: https
permanent: true

@ -0,0 +1,24 @@
- name: download cert-manager manifest
get_url:
url: "https://github.com/jetstack/cert-manager/releases/download/v{{ certmanager_version }}/cert-manager.yaml"
dest: "{{ certmanager_manifest_path }}"
mode: '0664'
- name: apply cert-manager manifest
kubernetes.core.k8s:
apply: yes
src: "{{ certmanager_manifest_path }}"
wait: yes
wait_sleep: 10
wait_timeout: 300
wait_condition:
type: Complete
status: "True"
- name: apply letsencrypt production ClusterIssuer
apply: yes
definition: "{{ lookup('file', 'letsencrypt-prod.yml') | from_yaml }}"
- name: apply traefik https redirect middleware
apply: yes
template: 'traefik-https-redirect-middleware.yml'

@ -0,0 +1,14 @@
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
email: "{{ certmanager_letsencrypt_email }}"
server: https://acme-v02.api.letsencrypt.org/directory
privateKeySecretRef:
name: letsencrypt-prod
solvers:
- http01:
ingress:
class: traefik

@ -0,0 +1,2 @@
certmanager_working_dir: ~/.ansible/k3s/certmanager
certmanager_manifest_path: "{{ certmanager_working_dir }}/certmanager.yml"
Loading…
Cancel
Save