Update role
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
Adrien Reslinger 2022-04-10 14:36:22 +02:00
parent fc1c3da9bc
commit 444ed560eb
Signed by: adrien
GPG key ID: DA7B27055C66D6DE
4 changed files with 74 additions and 60 deletions

View file

@ -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"

View file

@ -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:

View file

@ -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" %}

View file

@ -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 %}