Skip to content

Latest commit

 

History

History
85 lines (78 loc) · 2.4 KB

bluecat.md

File metadata and controls

85 lines (78 loc) · 2.4 KB

Setting up external-dns for BlueCat

The first external-dns release with with BlueCat provider support is v0.8.0.

Prerequisites

Install the BlueCat Gateway product and deploy the community gateway workflows.

Configuration Options

The options for configuring the Bluecat Provider are available through the json file provided to External-DNS via the flag --bluecat-config-file. The BlueCat Gateway username and password can be supplied using the configuration file or environment variables BLUECAT_USERNAME and BLUECAT_PASSWORD.

Key Required
gatewayHost Yes
gatewayUsername No
gatewayPassword No
dnsConfiguration Yes
dnsView Yes
rootZone Yes
skipTLSVerify No (default false)

Deploy

Setup configuration file as k8s Secret.

cat << EOF > ~/bluecat.json
{
  "gatewayHost": "https://bluecatgw.example.com",
  "gatewayUsername": "user",
  "gatewayPassword": "pass",
  "dnsConfiguration": "Example",
  "dnsView": "Internal",
  "rootZone": "example.com",
  "skipTLSVerify": false
}
EOF
kubectl create secret generic bluecatconfig --from-file ~/bluecat.json -n bluecat-example

Setup up namespace, deployment, and service account:

kubectl create namespace bluecat-example
cat << EOF > ~/bluecat.yml
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: external-dns
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: external-dns
spec:
  selector:
    matchLabels:
      app: external-dns
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: external-dns
    spec:
      serviceAccountName: external-dns
      volumes:
        - name: bluecatconfig
          secret:
            secretName: bluecatconfig
      containers:
      - name: external-dns
        image: k8s.gcr.io/external-dns/external-dns:v0.8.0
        volumeMounts:
          - name: bluecatconfig
            mountPath: "/etc/external-dns/"
            readOnly: true
        args:
        - --log-level=debug
        - --source=service
        - --provider=bluecat
        - --txt-owner-id=bluecat-example
        - --bluecat-config-file=/etc/external-dns/bluecat.json
EOF
kubectl apply -f ~/bluecat.yml -n bluecat-example