provisioning-catalog/components/external_dns/cluster/templates/deployment.yaml.j2

80 lines
2.5 KiB
Text
Raw Normal View History

apiVersion: apps/v1
kind: Deployment
metadata:
name: external-dns
namespace: {{ taskserv.namespace }}
labels:
app.kubernetes.io/name: external-dns
app.kubernetes.io/version: "{{ taskserv.version }}"
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: external-dns
strategy:
type: Recreate
template:
metadata:
labels:
app.kubernetes.io/name: external-dns
spec:
serviceAccountName: external-dns
{% if taskserv.placement is defined and taskserv.placement.node_class %}
affinity:
nodeAffinity:
{% if taskserv.placement.mode == "require" %}
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node-class.{{ taskserv.placement.node_class.0 }}
operator: In
values: ["true"]
{% else %}
preferredDuringSchedulingIgnoredDuringExecution:
{% for c in taskserv.placement.node_class %}
- weight: {{ 100 - loop.index0 * 10 }}
preference:
matchExpressions:
- key: node-class.{{ c }}
operator: In
values: ["true"]
{% endfor %}
{% endif %}
{% endif %}
containers:
- name: external-dns
image: registry.k8s.io/external-dns/external-dns:{{ taskserv.version }}
args:
- --source=service
- --source=crd
- --crd-source-apiversion=externaldns.k8s.io/v1alpha1
- --crd-source-kind=DNSEndpoint
- --provider=cloudflare
- --policy={{ policy }}
- --registry=txt
- --txt-owner-id={{ taskserv.txt_owner_id }}
- --interval={{ taskserv.interval }}
env:
- name: CF_API_TOKEN
valueFrom:
secretKeyRef:
name: {{ cf_secret_ref }}
key: api-token
{% if taskserv.resources_effective is defined %}
resources:
requests:
cpu: "{{ taskserv.resources_effective.cpu.request }}"
memory: "{{ taskserv.resources_effective.memory.request }}"
limits:
cpu: "{{ taskserv.resources_effective.cpu.limit }}"
memory: "{{ taskserv.resources_effective.memory.limit }}"
{% else %}
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 200m
memory: 128Mi
{% endif %}