Skip to content

Commit

Permalink
Merge branch 'master' into docs_apps/v1_deployment
Browse files Browse the repository at this point in the history
  • Loading branch information
linki authored Jan 7, 2020
2 parents f02c3c7 + d5be5b9 commit b78d472
Show file tree
Hide file tree
Showing 131 changed files with 4,354 additions and 1,282 deletions.
63 changes: 63 additions & 0 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Add 'docs' to any changes within 'docs' folder or any subfolders
docs:
- docs/**/*

# Add 'provider/alibaba' in file which starts with alibaba
provider/alibaba: provider/alibaba*

# Add 'provider/aws' in file which starts with aws
provider/aws: provider/aws*

# Add 'provider/azure' in file which starts with azure
provider/azure: provider/azure*

# Add 'provider/cloudflare' in file which starts with cloudflare
provider/cloudflare: provider/cloudflare*

# Add 'provider/coredns' in file which starts with coredns
provider/coredns: provider/coredns*

# Add 'provider/designate' in file which starts with designate
provider/designate: provider/designate*

# Add 'provider/digitalocean' in file which starts with digitalocean
provider/digitalocean: provider/digital_ocean*

# Add 'provider/dnssimple' in file which starts with dnssimple
provider/dnssimple: provider/dnssimple*

# Add 'provider/dyn' in file which starts with dyn
provider/dyn: provider/dyn*

# Add 'provider/exoscale' in file which starts with exoscale
provider/exoscale: provider/exoscale*

# Add 'provider/transip' in file which starts with transip
provider/transip: provider/transip*

# Add 'provider/rfc2136' in file which starts with rfc2136
provider/rfc2136: provider/rfc2136*

# Add 'provider/rdns' in file which starts with rdns
provider/rdns: provider/rdns*

# Add 'provider/powerdns' in file which starts with pdns
provider/powerdns: provider/pdns*

# Add 'provider/google' in file which starts with google
provider/google: provider/google*

# Add 'provider/infoblox' in file which starts with infoblox
provider/infoblox: provider/infoblox*

# Add 'provider/linode' in file which starts with linode
provider/linode: provider/linode*

# Add 'provider/ns1' in file which starts with ns1
provider/ns1: provider/ns1*

# Add 'provider/oci' in file which starts with oci
provider/oci: provider/oci*

# Add 'provider/vinyldns' in file which starts with vinyldns
provider/vinyldns: provider/vinyldns*
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ matrix:
- go: tip

env:
- GOLANGCI_RELEASE="v1.17.1"
- GOLANGCI_RELEASE="v1.21.0"

before_install:
- GO111MODULE=off go get github.com/mattn/goveralls
Expand Down
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
# builder image
FROM golang:1.13 as builder

WORKDIR /github.com/kubernetes-incubator/external-dns
WORKDIR /sigs.k8s.io/external-dns

COPY . .
RUN go mod vendor && \
Expand All @@ -29,7 +29,7 @@ LABEL maintainer="Team Teapot @ Zalando SE <[email protected]>"
RUN apk add --no-cache ca-certificates && \
update-ca-certificates

COPY --from=builder /github.com/kubernetes-incubator/external-dns/build/external-dns /bin/external-dns
COPY --from=builder /sigs.k8s.io/external-dns/build/external-dns /bin/external-dns

# Run as UID for nobody since k8s pod securityContext runAsNonRoot can't resolve the user ID:
# https://github.com/kubernetes/kubernetes/issues/40958
Expand Down
4 changes: 2 additions & 2 deletions Dockerfile.mini
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

FROM golang:1.13 as builder

WORKDIR /github.com/kubernetes-incubator/external-dns
WORKDIR /sigs.k8s.io/external-dns

COPY . .
RUN apt-get update && \
Expand All @@ -27,7 +27,7 @@ RUN apt-get update && \
FROM gcr.io/distroless/static

COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY --from=builder /github.com/kubernetes-incubator/external-dns/build/external-dns /bin/external-dns
COPY --from=builder /sigs.k8s.io/external-dns/build/external-dns /bin/external-dns

# Run as UID for nobody since k8s pod securityContext runAsNonRoot can't resolve the user ID:
# https://github.com/kubernetes/kubernetes/issues/40958
Expand Down
16 changes: 13 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ cover-html: cover

# Run all the linters
lint:
golangci-lint run ./...
golangci-lint run --timeout=5m ./...


# The verify target runs tasks similar to the CI tasks, but without code coverage
Expand All @@ -45,10 +45,11 @@ test:

BINARY ?= external-dns
SOURCES = $(shell find . -name '*.go')
IMAGE ?= registry.opensource.zalan.do/teapot/$(BINARY)
IMAGE_STAGING = gcr.io/k8s-staging-external-dns/$(BINARY)
IMAGE ?= us.gcr.io/k8s-artifacts-prod/external-dns/$(BINARY)
VERSION ?= $(shell git describe --tags --always --dirty)
BUILD_FLAGS ?= -v
LDFLAGS ?= -X github.com/kubernetes-incubator/external-dns/pkg/apis/externaldns.Version=$(VERSION) -w -s
LDFLAGS ?= -X sigs.k8s.io/external-dns/pkg/apis/externaldns.Version=$(VERSION) -w -s

build: build/$(BINARY)

Expand All @@ -66,3 +67,12 @@ build.mini:

clean:
@rm -rf build

# Builds and push container images to the staging bucket.
.PHONY: release.staging

release.staging:
IMAGE=$(IMAGE_STAGING) $(MAKE) build.docker build.push

release.prod:
$(MAKE) build.docker build.push
32 changes: 11 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@
</p>

# ExternalDNS
[![Build Status](https://travis-ci.org/kubernetes-incubator/external-dns.svg?branch=master)](https://travis-ci.org/kubernetes-incubator/external-dns)
[![Coverage Status](https://coveralls.io/repos/github/kubernetes-incubator/external-dns/badge.svg?branch=master)](https://coveralls.io/github/kubernetes-incubator/external-dns?branch=master)
[![GitHub release](https://img.shields.io/github/release/kubernetes-incubator/external-dns.svg)](https://github.com/kubernetes-incubator/external-dns/releases)
[![go-doc](https://godoc.org/github.com/kubernetes-incubator/external-dns?status.svg)](https://godoc.org/github.com/kubernetes-incubator/external-dns)
[![Go Report Card](https://goreportcard.com/badge/github.com/kubernetes-incubator/external-dns)](https://goreportcard.com/report/github.com/kubernetes-incubator/external-dns)
[![Build Status](https://travis-ci.org/kubernetes-sigs/external-dns.svg?branch=master)](https://travis-ci.org/kubernetes-sigs/external-dns)
[![Coverage Status](https://coveralls.io/repos/github/kubernetes-sigs/external-dns/badge.svg?branch=master)](https://coveralls.io/github/kubernetes-sigs/external-dns?branch=master)
[![GitHub release](https://img.shields.io/github/release/kubernetes-sigs/external-dns.svg)](https://github.com/kubernetes-sigs/external-dns/releases)
[![go-doc](https://godoc.org/github.com/kubernetes-sigs/external-dns?status.svg)](https://godoc.org/github.com/kubernetes-sigs/external-dns)
[![Go Report Card](https://goreportcard.com/badge/github.com/kubernetes-sigs/external-dns)](https://goreportcard.com/report/github.com/kubernetes-sigs/external-dns)

ExternalDNS synchronizes exposed Kubernetes Services and Ingresses with DNS providers.

Expand Down Expand Up @@ -53,7 +53,7 @@ Note that all flags can be replaced with environment variables; for instance,

## Status of providers

ExternalDNS supports multiple DNS providers which have been implemented by the [ExternalDNS contributors](https://github.com/kubernetes-incubator/external-dns/graphs/contributors). Maintaining all of those in a central repository is a challenge and we have limited resources to test changes. This means that it is very hard to test all providers for possible regressions and, as written in the [Contributing](#Contributing) section, we encourage contributors to step in as maintainers for the individual providers and help by testing the integrations.
ExternalDNS supports multiple DNS providers which have been implemented by the [ExternalDNS contributors](https://github.com/kubernetes-sigs/external-dns/graphs/contributors). Maintaining all of those in a central repository is a challenge and we have limited resources to test changes. This means that it is very hard to test all providers for possible regressions and, as written in the [Contributing](#Contributing) section, we encourage contributors to step in as maintainers for the individual providers and help by testing the integrations.

End-to-end testing of ExternalDNS is currently
[performed](https://github.com/zalando-incubator/kubernetes-on-aws/blob/dev/test/e2e/external_dns.go)
Expand Down Expand Up @@ -110,7 +110,8 @@ The following tutorials are provided:
* [Route53](docs/tutorials/aws.md)
* [Same domain for public and private Route53 zones](docs/tutorials/public-private-route53.md)
* [Service Discovery](docs/tutorials/aws-sd.md)
* [Azure](docs/tutorials/azure.md)
* [Azure DNS](docs/tutorials/azure.md)
* [Azure Private DNS](docs/tutorials/azure-private-dns.md)
* [Cloudflare](docs/tutorials/cloudflare.md)
* [CoreDNS](docs/tutorials/coredns.md)
* [DigitalOcean](docs/tutorials/digitalocean.md)
Expand Down Expand Up @@ -151,7 +152,7 @@ Make sure you have the following prerequisites:
First, get ExternalDNS:

```console
$ git clone https://github.com/kubernetes-incubator/external-dns.git && cd external-dns
$ git clone https://github.com/kubernetes-sigs/external-dns.git && cd external-dns
```

**This project uses [Go modules](https://github.com/golang/go/wiki/Modules) as
Expand Down Expand Up @@ -261,6 +262,7 @@ Here's a rough outline on what is to come (subject to change):
- [x] Support for RcodeZero
- [x] Support for NS1
- [x] Support for TransIP
- [x] Support for Azure Private DNS

### v0.6

Expand All @@ -281,7 +283,7 @@ Here's a rough outline on what is to come (subject to change):
* Support for CRDs
* Support for more advanced DNS record configurations

Have a look at [the milestones](https://github.com/kubernetes-incubator/external-dns/milestones) to get an idea of where we currently stand.
Have a look at [the milestones](https://github.com/kubernetes-sigs/external-dns/milestones) to get an idea of where we currently stand.

## Contributing

Expand Down Expand Up @@ -313,18 +315,6 @@ ExternalDNS is an effort to unify the following similar projects in order to bri
* Zalando's [Mate](https://github.com/linki/mate)
* Molecule Software's [route53-kubernetes](https://github.com/wearemolecule/route53-kubernetes)

## Kubernetes Incubator

This is a [Kubernetes Incubator project](https://github.com/kubernetes/community/blob/master/incubator.md).
The project was established 2017-Feb-9 (initial announcement [here](https://groups.google.com/forum/#!searchin/kubernetes-dev/external$20dns%7Csort:relevance/kubernetes-dev/2wGQUB0fUuE/9OXz01i2BgAJ)).
The incubator team for the project is:

* Sponsor: sig-network
* Champion: Tim Hockin (@thockin)
* SIG: sig-network

For more information about sig-network, such as meeting times and agenda, check out the [community site](https://github.com/kubernetes/community/tree/master/sig-network).

### Code of conduct

Participation in the Kubernetes community is governed by the [Kubernetes Code of Conduct](code-of-conduct.md).
14 changes: 14 additions & 0 deletions ci/postsubmit/push-to-staging/cloudbuild.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# See https://cloud.google.com/cloud-build/docs/build-config
timeout: 1200s
steps:
- name: "gcr.io/k8s-testimages/gcb-docker-gcloud:v20190906-745fed4"
entrypoint: make
env:
- DOCKER_CLI_EXPERIMENTAL=enabled
- TAG=$_GIT_TAG
args:
- release.staging
substitutions:
# _GIT_TAG will be filled with a git-based tag for the image, of the form vYYYYMMDD-hash, and
# can be used as a substitution
_GIT_TAG: "12345"
8 changes: 4 additions & 4 deletions controller/controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ import (
"github.com/prometheus/client_golang/prometheus"
log "github.com/sirupsen/logrus"

"github.com/kubernetes-incubator/external-dns/plan"
"github.com/kubernetes-incubator/external-dns/provider"
"github.com/kubernetes-incubator/external-dns/registry"
"github.com/kubernetes-incubator/external-dns/source"
"sigs.k8s.io/external-dns/plan"
"sigs.k8s.io/external-dns/provider"
"sigs.k8s.io/external-dns/registry"
"sigs.k8s.io/external-dns/source"
)

var (
Expand Down
10 changes: 5 additions & 5 deletions controller/controller_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@ import (
"reflect"
"testing"

"github.com/kubernetes-incubator/external-dns/endpoint"
"github.com/kubernetes-incubator/external-dns/internal/testutils"
"github.com/kubernetes-incubator/external-dns/plan"
"github.com/kubernetes-incubator/external-dns/provider"
"github.com/kubernetes-incubator/external-dns/registry"
"sigs.k8s.io/external-dns/endpoint"
"sigs.k8s.io/external-dns/internal/testutils"
"sigs.k8s.io/external-dns/plan"
"sigs.k8s.io/external-dns/provider"
"sigs.k8s.io/external-dns/registry"

"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
Expand Down
23 changes: 0 additions & 23 deletions delivery.yaml

This file was deleted.

8 changes: 4 additions & 4 deletions docs/20190708-external-dns-incubator.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<!-- TOC depthFrom:1 depthTo:6 withLinks:1 updateOnSave:1 orderedList:0 -->

- [Move ExternalDNS out of Kubernetes incubator](#move-externaldns-out-of-kubernetes-incubator)
- [Move ExternalDNS out of Kubernetes incubator](#move-externaldns-out-of-kubernetes-sigs)
- [Summary](#summary)
- [Motivation](#motivation)
- [Goals](#goals)
Expand All @@ -17,7 +17,7 @@

## Summary

[ExternalDNS](https://github.com/kubernetes-incubator/external-dns) is a project that synchronizes Kubernetes’ Services, Ingresses and other Kubernetes resources to DNS backends for several DNS providers.
[ExternalDNS](https://github.com/kubernetes-sigs/external-dns) is a project that synchronizes Kubernetes’ Services, Ingresses and other Kubernetes resources to DNS backends for several DNS providers.

The projects was started as a Kubernetes Incubator project in February 2017 and being the Kubernetes incubation initiative officially over, the maintainers want to propose the project to be moved to the kubernetes GitHub organization or to kubernetes-sigs, under the sponsorship of sig-network.

Expand All @@ -35,7 +35,7 @@ When the project was proposed (see the [original discussion](https://github.com/

ExternalDNS’ goal from the beginning was to provide an officially supported solution to those problems.

After two years of development, the project is still in the kubernetes-incubator.
After two years of development, the project is still in the kubernetes-sigs.

The incubation has been officially discontinued and to quote @thockin "Incubator projects should either become real projects in Kubernetes, shut themselves down, or move elsewhere" (see original thread [here](https://groups.google.com/forum/#!topic/kubernetes-sig-network/fvpDC_nxtEM)).

Expand All @@ -57,7 +57,7 @@ External DNS...

* Supports already 18 different DNS providers including all major public clouds (AWS, Azure, GCP).

Given that the kubernetes-incubator organization will eventually be shut down, the possible alternatives to moving to be an official Kubernetes project are the following:
Given that the kubernetes-sigs organization will eventually be shut down, the possible alternatives to moving to be an official Kubernetes project are the following:

* Shut down the project

Expand Down
16 changes: 14 additions & 2 deletions docs/contributing/crd-source.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ CRD source provides a generic mechanism to manage DNS records in your favourite

### Details

CRD source watches for a user specified CRD to extract [Endpoints](https://github.com/kubernetes-incubator/external-dns/blob/master/endpoint/endpoint.go) from its `Spec`.
CRD source watches for a user specified CRD to extract [Endpoints](https://github.com/kubernetes-sigs/external-dns/blob/master/endpoint/endpoint.go) from its `Spec`.
So users need to create such a CRD and register it to the kubernetes cluster and then create new object(s) of the CRD specifying the Endpoints.

### Registering CRD

Here is typical example of [CRD API type](https://github.com/kubernetes-incubator/external-dns/blob/master/endpoint/endpoint.go) which provides Endpoints to `CRD source`:
Here is typical example of [CRD API type](https://github.com/kubernetes-sigs/external-dns/blob/master/endpoint/endpoint.go) which provides Endpoints to `CRD source`:

```go
type TTL int64
Expand Down Expand Up @@ -106,3 +106,15 @@ INFO[0000] Connected to cluster at https://192.168.99.100:8443
INFO[0000] CREATE: foo.bar.com 180 IN A 192.168.99.216
INFO[0000] CREATE: foo.bar.com 0 IN TXT "heritage=external-dns,external-dns/owner=default"
```

### RBAC configuration

If you use RBAC, extend the `external-dns` ClusterRole with:
```
- apiGroups: ["externaldns.k8s.io"]
resources: ["dnsendpoints"]
verbs: ["get","watch","list"]
- apiGroups: ["externaldns.k8s.io"]
resources: ["dnsendpoints/status"]
verbs: ["*"]
```
5 changes: 0 additions & 5 deletions docs/contributing/crd-source/crd-manifest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,3 @@ spec:
type: integer
type: object
version: v1alpha1
status:
acceptedNames:
kind: ""
plural: ""
conditions: null
6 changes: 3 additions & 3 deletions docs/faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,11 +154,11 @@ spec:

### I have a Service/Ingress but it's ignored by ExternalDNS. Why?

ExternalDNS can be configured to only use Services or Ingresses as source. In case Services or Ingresses seem to be ignored in your setup, consider checking how the flag `--source` was configured when deployed. For reference, see the issue https://github.com/kubernetes-incubator/external-dns/issues/267.
ExternalDNS can be configured to only use Services or Ingresses as source. In case Services or Ingresses seem to be ignored in your setup, consider checking how the flag `--source` was configured when deployed. For reference, see the issue https://github.com/kubernetes-sigs/external-dns/issues/267.

### I'm using an ELB with TXT registry but the CNAME record clashes with the TXT record. How to avoid this?

CNAMEs cannot co-exist with other records, therefore you can use the `--txt-prefix` flag which makes sure to create a TXT record with a name following the pattern `prefix.<CNAME record>`. For reference, see the issue https://github.com/kubernetes-incubator/external-dns/issues/262.
CNAMEs cannot co-exist with other records, therefore you can use the `--txt-prefix` flag which makes sure to create a TXT record with a name following the pattern `prefix.<CNAME record>`. For reference, see the issue https://github.com/kubernetes-sigs/external-dns/issues/262.

### Can I force ExternalDNS to create CNAME records for ELB/ALB?

Expand Down Expand Up @@ -263,7 +263,7 @@ and one with `--annotation-filter=kubernetes.io/ingress.class=nginx-external`.

### Can external-dns manage(add/remove) records in a hosted zone which is setup in different AWS account?

Yes, give it the correct cross-account/assume-role permissions and use the `--aws-assume-role` flag https://github.com/kubernetes-incubator/external-dns/pull/524#issue-181256561
Yes, give it the correct cross-account/assume-role permissions and use the `--aws-assume-role` flag https://github.com/kubernetes-sigs/external-dns/pull/524#issue-181256561

### How do I provide multiple values to the annotation `external-dns.alpha.kubernetes.io/hostname`?

Expand Down
Loading

0 comments on commit b78d472

Please sign in to comment.