This commit is contained in:
parent
fc1c3da9bc
commit
444ed560eb
4 changed files with 74 additions and 60 deletions
|
|
@ -2,6 +2,6 @@ my_context: local
|
||||||
ingress_domain: "local"
|
ingress_domain: "local"
|
||||||
cert_manager_namespace: "cert-manager"
|
cert_manager_namespace: "cert-manager"
|
||||||
|
|
||||||
certmanager_csi: true
|
|
||||||
certmanager_version: "1.8.0"
|
certmanager_version: "1.8.0"
|
||||||
|
certmanager_csi: true
|
||||||
certmanager_csi_version: "0.2.0"
|
certmanager_csi_version: "0.2.0"
|
||||||
|
|
|
||||||
|
|
@ -15,55 +15,13 @@
|
||||||
release_namespace: "{{ cert_manager_namespace }}"
|
release_namespace: "{{ cert_manager_namespace }}"
|
||||||
values:
|
values:
|
||||||
installCRDs: true
|
installCRDs: true
|
||||||
global:
|
# global:
|
||||||
podSecurityPolicy:
|
# podSecurityPolicy:
|
||||||
enabled: true
|
# enabled: true
|
||||||
useAppArmor: false
|
# useAppArmor: false
|
||||||
extraArgs:
|
extraArgs:
|
||||||
- --dns01-recursive-nameservers=8.8.8.8:53,1.1.1.1:53
|
- --dns01-recursive-nameservers=8.8.8.8:53,1.1.1.1:53
|
||||||
|
|
||||||
- name: Create Secret object for API Key authentification
|
|
||||||
kubernetes.core.k8s:
|
|
||||||
state: present
|
|
||||||
context: "{{ my_context }}"
|
|
||||||
apply: true
|
|
||||||
namespace: "{{ cert_manager_namespace }}"
|
|
||||||
resource_definition: "{{ lookup('template', 'api-key-secret.yml.j2') | from_yaml }}"
|
|
||||||
when:
|
|
||||||
- cert_manager_issuer is defined
|
|
||||||
with_items:
|
|
||||||
- "{{ cert_manager_issuer }}"
|
|
||||||
|
|
||||||
# Tempo ici
|
|
||||||
|
|
||||||
- name: Define SelfSigned ClusterIssuer
|
|
||||||
kubernetes.core.k8s:
|
|
||||||
state: present
|
|
||||||
context: "{{ my_context }}"
|
|
||||||
# namespace: "cert-manager"
|
|
||||||
definition:
|
|
||||||
apiVersion: cert-manager.io/v1
|
|
||||||
kind: ClusterIssuer
|
|
||||||
metadata:
|
|
||||||
name: selfsigned
|
|
||||||
spec:
|
|
||||||
selfSigned: {}
|
|
||||||
|
|
||||||
- name: Defined ClusterIssuers
|
|
||||||
kubernetes.core.k8s:
|
|
||||||
state: present
|
|
||||||
context: "{{ my_context }}"
|
|
||||||
apply: true
|
|
||||||
namespace: "{{ cert_manager_namespace }}"
|
|
||||||
resource_definition: "{{ lookup('template', item) | from_yaml }}"
|
|
||||||
# debug:
|
|
||||||
# msg: "{{ lookup('template', item) | from_yaml }}"
|
|
||||||
with_items:
|
|
||||||
- clusterissuer.yml.j2
|
|
||||||
when:
|
|
||||||
# - false
|
|
||||||
- cert_manager_issuer is defined
|
|
||||||
|
|
||||||
# https://github.com/baarde/cert-manager-webhook-ovh/tree/master/deploy/cert-manager-webhook-ovh
|
# https://github.com/baarde/cert-manager-webhook-ovh/tree/master/deploy/cert-manager-webhook-ovh
|
||||||
- name: Install OVH webhook
|
- name: Install OVH webhook
|
||||||
block:
|
block:
|
||||||
|
|
@ -145,6 +103,45 @@
|
||||||
- cert_manager_issuer is defined
|
- cert_manager_issuer is defined
|
||||||
- cert_manager_issuer.[].provider == "step"
|
- cert_manager_issuer.[].provider == "step"
|
||||||
|
|
||||||
|
- name: Add ClusterIssuers
|
||||||
|
block:
|
||||||
|
- name: Create Secret object for API Key authentification
|
||||||
|
kubernetes.core.k8s:
|
||||||
|
state: present
|
||||||
|
context: "{{ my_context }}"
|
||||||
|
apply: true
|
||||||
|
namespace: "{{ cert_manager_namespace }}"
|
||||||
|
resource_definition: "{{ lookup('template', 'api-key-secret.yml.j2') | from_yaml }}"
|
||||||
|
|
||||||
|
# Tempo ici
|
||||||
|
|
||||||
|
# - name: Define SelfSigned ClusterIssuer
|
||||||
|
# kubernetes.core.k8s:
|
||||||
|
# state: present
|
||||||
|
# context: "{{ my_context }}"
|
||||||
|
## namespace: "{{ cert_manager_namespace }}"
|
||||||
|
# definition:
|
||||||
|
# apiVersion: cert-manager.io/v1
|
||||||
|
# kind: ClusterIssuer
|
||||||
|
# metadata:
|
||||||
|
# name: selfsigned
|
||||||
|
# spec:
|
||||||
|
# selfSigned: {}
|
||||||
|
|
||||||
|
- name: Defined ClusterIssuers
|
||||||
|
kubernetes.core.k8s:
|
||||||
|
state: present
|
||||||
|
context: "{{ my_context }}"
|
||||||
|
apply: true
|
||||||
|
namespace: "{{ cert_manager_namespace }}"
|
||||||
|
resource_definition: "{{ lookup('template', 'clusterissuer.yml.j2') | from_yaml }}"
|
||||||
|
# debug:
|
||||||
|
# msg: "{{ lookup('template', item) | from_yaml }}"
|
||||||
|
|
||||||
|
with_items:
|
||||||
|
- "{{ cert_manager_issuer }}"
|
||||||
|
when:
|
||||||
|
- cert_manager_issuer is defined
|
||||||
|
|
||||||
tags: cert-manager
|
tags: cert-manager
|
||||||
|
|
||||||
|
|
@ -157,7 +154,7 @@
|
||||||
chart_ref: jetstack/cert-manager-csi-driver
|
chart_ref: jetstack/cert-manager-csi-driver
|
||||||
chart_version: "{{ certmanager_csi_version }}"
|
chart_version: "{{ certmanager_csi_version }}"
|
||||||
create_namespace: yes
|
create_namespace: yes
|
||||||
release_namespace: "cert-manager"
|
release_namespace: "{{ cert_manager_namespace }}"
|
||||||
when:
|
when:
|
||||||
- certmanager_csi|bool
|
- certmanager_csi|bool
|
||||||
tags:
|
tags:
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ metadata:
|
||||||
type: Opaque
|
type: Opaque
|
||||||
data:
|
data:
|
||||||
{% if item.provider == "cloudflare" %}
|
{% if item.provider == "cloudflare" %}
|
||||||
api-key: "{{ item.api_key | b64encode }}"
|
api-key: "{{ item.cloudflare_api_key | b64encode }}"
|
||||||
{% elif item.provider == "route53" %}
|
{% elif item.provider == "route53" %}
|
||||||
secret-access-key: "{{ lookup('hashi_vault', 'secret=clusters/route53:secret-access-key') | b64encode }}"
|
secret-access-key: "{{ lookup('hashi_vault', 'secret=clusters/route53:secret-access-key') | b64encode }}"
|
||||||
{% elif item.provider == "ovh" %}
|
{% elif item.provider == "ovh" %}
|
||||||
|
|
|
||||||
|
|
@ -2,28 +2,39 @@
|
||||||
apiVersion: cert-manager.io/v1
|
apiVersion: cert-manager.io/v1
|
||||||
kind: ClusterIssuer
|
kind: ClusterIssuer
|
||||||
metadata:
|
metadata:
|
||||||
name: letsencrypt-prod
|
name: {{ item.name }}
|
||||||
spec:
|
spec:
|
||||||
|
{% if acme_provider is defined %}
|
||||||
acme:
|
acme:
|
||||||
|
{% if acme_provider == "letsencrypt" %}
|
||||||
email: "{{ cert_manager_acme_email }}"
|
email: "{{ cert_manager_acme_email }}"
|
||||||
server: https://acme-v02.api.letsencrypt.org/directory
|
server: https://acme-v02.api.letsencrypt.org/directory
|
||||||
privateKeySecretRef:
|
privateKeySecretRef:
|
||||||
name: letsencrypt-prod-account-key
|
name: {{ item.name }}-account-key
|
||||||
|
{% elif acme_provider == "zerossl" %}
|
||||||
|
server: https://acme.zerossl.com/v2/DV90
|
||||||
|
externalAccountBinding:
|
||||||
|
keyID: YOUR_EAB_KID
|
||||||
|
keySecretRef:
|
||||||
|
name: zero-sll-eabsecret
|
||||||
|
key: secret
|
||||||
|
keyAlgorithm: HS256
|
||||||
|
# Name of a secret used to store the ACME account private key
|
||||||
|
privateKeySecretRef:
|
||||||
|
name: {{ item.name }}-prod
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
solvers:
|
solvers:
|
||||||
{% for i in cert_manager_issuer %}
|
{% for i in item %}
|
||||||
- selector:
|
- {{ i.solver }}:
|
||||||
dnsZones:
|
|
||||||
- "{{ i.domain }}"
|
|
||||||
{{ i.solver }}:
|
|
||||||
{% if i.solver == "dns01" %}
|
{% if i.solver == "dns01" %}
|
||||||
{% if i.provider == "cloudflare" %}
|
{% if i.dns_provider == "cloudflare" %}
|
||||||
cloudflare:
|
cloudflare:
|
||||||
email: "{{ i.email }}"
|
email: "{{ i.cloudflare_email }}"
|
||||||
apiKeySecretRef:
|
apiKeySecretRef:
|
||||||
name: cloudflare-api-key
|
name: cloudflare-api-key
|
||||||
key: api-key
|
key: api-key
|
||||||
{% elif i.provider == "route53" %}
|
{% elif i.dns_provider == "route53" %}
|
||||||
route53:
|
route53:
|
||||||
region: us-west-3
|
region: us-west-3
|
||||||
hostedZoneID: {{ route53_hostzoneid_exemplecom }}
|
hostedZoneID: {{ route53_hostzoneid_exemplecom }}
|
||||||
|
|
@ -31,7 +42,7 @@ spec:
|
||||||
secretAccessKeySecretRef:
|
secretAccessKeySecretRef:
|
||||||
name: route53-api-key
|
name: route53-api-key
|
||||||
key: secret-access-key
|
key: secret-access-key
|
||||||
{% elif i.provider == "ovh" %}
|
{% elif i.dns_provider == "ovh" %}
|
||||||
webhook:
|
webhook:
|
||||||
groupName: '{{ i.consumerKey }}'
|
groupName: '{{ i.consumerKey }}'
|
||||||
solverName: ovh
|
solverName: ovh
|
||||||
|
|
@ -47,4 +58,10 @@ spec:
|
||||||
ingress:
|
ingress:
|
||||||
class: traefik
|
class: traefik
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
selector:
|
||||||
|
dnsZones:
|
||||||
|
- "{{ i.domain }}"
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
{% else %}
|
||||||
|
selfSigned: {}
|
||||||
|
{% endif %}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue