From 41e29a9a1e371f5b195d64301411eac3f5de1eb0 Mon Sep 17 00:00:00 2001 From: Antoni Segura Puimedon Date: Thu, 11 Apr 2019 18:10:42 +0200 Subject: [PATCH] mdns-publisher: remove master things --- .../manifests/mdns-publisher-worker.yaml | 98 +++++++++++++++++++ .../mdns/worker-config.template | 11 +++ .../templates/99_worker-mdns-publisher.yaml | 4 +- 3 files changed, 111 insertions(+), 2 deletions(-) create mode 100644 assets/files/etc/kubernetes/manifests/mdns-publisher-worker.yaml create mode 100644 assets/files/etc/kubernetes/static-pod-resources/mdns/worker-config.template diff --git a/assets/files/etc/kubernetes/manifests/mdns-publisher-worker.yaml b/assets/files/etc/kubernetes/manifests/mdns-publisher-worker.yaml new file mode 100644 index 000000000000..b87db20b327f --- /dev/null +++ b/assets/files/etc/kubernetes/manifests/mdns-publisher-worker.yaml @@ -0,0 +1,98 @@ +--- +kind: Pod +apiVersion: v1 +metadata: + name: mdns-publisher + namespace: kni-infra + creationTimestamp: + deletionGracePeriodSeconds: 65 + labels: + app: kni-infra-mdns +spec: + volumes: + - name: resource-dir + hostPath: + path: "/etc/kubernetes/static-pod-resources/mdns" + - name: kubeconfig + hostPath: + path: "/etc/kubernetes/kubeconfig" + - name: get-vip-subnet-cidr + hostPath: + path: "/usr/local/bin/get_vip_subnet_cidr" + - name: conf-dir + empty-dir: {} + initContainers: + - name: clusterrc-generation + image: quay.io/openshift-metalkube/kubeconfig-extractor:latest + command: + - "/usr/bin/kubeconfig-extractor" + args: + - "/etc/kubernetes/kubeconfig" + - "/etc/kubernetes/static-pod-resources/clusterrc" + resources: {} + volumeMounts: + - name: resource-dir + mountPath: "/etc/kubernetes/static-pod-resources" + - name: kubeconfig + mountPath: "/etc/kubernetes/kubeconfig" + - name: render-config + image: quay.io/openshift/origin-node:latest + command: + - "/bin/bash" + - "-c" + - | + #/bin/bash + set -ex + + source /etc/kubernetes/static-pod-resources/clusterrc + CLUSTER_NAME="$NAME" + API_VIP="$(dig +noall +answer "api.${DOMAIN}" | awk '{print $NF}')" + IFACE_CIDRS="$(ip addr show | grep -v "scope host" | grep -Po 'inet \K[\d.]+/[\d.]+' | xargs)" + SUBNET_CIDR="$(/usr/local/bin/get_vip_subnet_cidr "$API_VIP" "$IFACE_CIDRS")" + PREFIX="${SUBNET_CIDR#*/}" + DNS_VIP="$(dig +noall +answer "ns1.${DOMAIN}" | awk '{print $NF}')" + ONE_CIDR="$(ip addr show to "$SUBNET_CIDR" | \ + grep -Po 'inet \K[\d.]+/[\d.]+' | \ + grep -v "${DNS_VIP}/$PREFIX" | \ + sort | xargs | cut -f1 -d' ')" + + NON_VIRTUAL_IP="${ONE_CIDR%/*}" + SHORT_HOSTNAME="$(hostname -s).local." + + export SHORT_HOSTNAME + export NON_VIRTUAL_IP + export CLUSTER_NAME + /usr/libexec/platform-python -c "from __future__ import print_function + import os + with open('/etc/kubernetes/static-pod-resources/config.template', 'r') as f: + content = f.read() + with open('/etc/mdns/config.hcl', 'w') as dest: + print(os.path.expandvars(content), file=dest)" + resources: {} + volumeMounts: + - name: resource-dir + mountPath: "/etc/kubernetes/static-pod-resources" + - name: conf-dir + mountPath: "/etc/mdns" + - name: get-vip-subnet-cidr + mountPath: "/usr/local/bin/get_vip_subnet_cidr" + imagePullPolicy: IfNotPresent + containers: + - name: mdns-publisher + image: quay.io/openshift-metalkube/mdns-publisher:latest + args: + - "--debug" + resources: + requests: + cpu: 150m + memory: 1Gi + volumeMounts: + - name: conf-dir + mountPath: "/etc/mdns" + terminationMessagePolicy: FallbackToLogsOnError + imagePullPolicy: IfNotPresent + hostNetwork: true + tolerations: + - operator: Exists + priorityClassName: system-node-critical +status: {} diff --git a/assets/files/etc/kubernetes/static-pod-resources/mdns/worker-config.template b/assets/files/etc/kubernetes/static-pod-resources/mdns/worker-config.template new file mode 100644 index 000000000000..298f99f3c7c2 --- /dev/null +++ b/assets/files/etc/kubernetes/static-pod-resources/mdns/worker-config.template @@ -0,0 +1,11 @@ +bind_address = "$NON_VIRTUAL_IP" +collision_avoidance = "hostname" + +service { + name = "$CLUSTER_NAME Workstation" + host_name = "$SHORT_HOSTNAME" + type = "_workstation._tcp" + domain = "local." + port = 42424 + ttl = 3200 +} diff --git a/assets/templates/99_worker-mdns-publisher.yaml b/assets/templates/99_worker-mdns-publisher.yaml index c3a55e30a3ee..d02cbddc7d52 100644 --- a/assets/templates/99_worker-mdns-publisher.yaml +++ b/assets/templates/99_worker-mdns-publisher.yaml @@ -15,9 +15,9 @@ spec: verification: {} filesystem: root mode: 0664 - path: /etc/kubernetes/manifests/mdns-publisher.yaml + path: /etc/kubernetes/manifests/mdns-publisher-worker.yaml - contents: verification: {} filesystem: root mode: 0664 - path: /etc/kubernetes/static-pod-resources/mdns/config.template + path: /etc/kubernetes/static-pod-resources/mdns/worker-config.template