Giter Club home page Giter Club logo

powerdns-zone-provisioner's Introduction

Usage

Prepare a list of zones to provision, as defined in Go package github.com/mittwald/go-powerdns/apis/zones. YAML keys are names of struct fields converted to lowercase.

- name: "example.com."
  resourcerecordsets:
  - name: "www.example.com."
    type: "A"
    ttl: 60
    records:
    - content: "192.0.2.1"

Create a Kubernetes ConfigMap containing the YAML list:

apiVersion: v1
kind: ConfigMap
metadata:
  name: powerdns-zone-provisioner-zone-file
data:
  zones.yml: |
    ---
    - name: "example.com."
      resourcerecordsets:
      - name: "www.example.com."
        type: "A"
        ttl: 60
        records:
        - content: "192.0.2.1"

Execute powerdns-zone-provisioner in a Kubernetes Job:

  • Mount the ConfigMap as a volume
  • Supply the path to the YAML via the ZONE_FILE environment variable:
apiVersion: batch/v1
kind: Job
metadata:
  name: powerdns-zone-provisioner
spec:
  backoffLimit: 2048 # arbitrary large number
  template:
    metadata:
    spec:
      containers:
      - name: powerdns-zone-provisioner
        image: ghcr.io/parthenogen/powerdns-zone-provisioner:0
        imagePullPolicy: Always
        env:
        - name: SERVER_HOST
          value: auth-auth-api.powerdns-primary.svc.cluster.local
        - name: SERVER_PORT
          value: "8081"
        - name: API_KEY
          value: GGn7XHbLi1oJ5wSLb3qk
        - name: SERVER_ID
          value: localhost
        - name: ZONE_FILE
          value: /etc/powerdns-zone-provisioner/zones.yml
        - name: TIMEOUT
          value: 30s # per HTTP request
        volumeMounts:
        - mountPath: /etc/powerdns-zone-provisioner
          name: powerdns-zone-provisioner-zone-file
      restartPolicy: Never
      volumes:
      - name: powerdns-zone-provisioner-zone-file
        configMap:
          name: powerdns-zone-provisioner-zone-file

The following environment variables correspond to Authoritative Server settings:

Environment Variable Authoritative Server setting
SERVER_PORT webserver-port
API_KEY api-key
SERVER_ID server-id

powerdns-zone-provisioner's People

Contributors

joel-ling avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.