https://github.com/neilkuan/cdk8s-external-dns
cdk8s-external-dns is an CDK8S construct library that provides External Dns Configure.
https://github.com/neilkuan/cdk8s-external-dns
cdk cdk8s external-dns
Last synced: about 2 months ago
JSON representation
cdk8s-external-dns is an CDK8S construct library that provides External Dns Configure.
- Host: GitHub
- URL: https://github.com/neilkuan/cdk8s-external-dns
- Owner: neilkuan
- License: apache-2.0
- Created: 2021-01-04T02:24:10.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2021-03-31T00:43:09.000Z (about 4 years ago)
- Last Synced: 2025-03-29T02:38:25.358Z (2 months ago)
- Topics: cdk, cdk8s, external-dns
- Language: TypeScript
- Homepage:
- Size: 146 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://badge.fury.io/js/cdk8s-external-dns)
[](https://badge.fury.io/py/cdk8s-external-dns)


# cdk8s-external-dns
> [cdk8s external dns](https://github.com/kubernetes-sigs/external-dns) constructs for cdk8sBasic implementation of a [external dns](https://github.com/kubernetes-sigs/external-dns) construct for cdk8s. Contributions are welcome!
## Usage
### CDK External Dns
```ts
import { App, Chart } from 'cdk8s';
import { Construct } from 'constructs';
import { AwsExternalDns, AwsZoneTypeOptions } from 'cdk8s-external-dns';// default will deploy to default namespace.
export class MyChart extends Chart {
constructor(scope: Construct, name: string) {
super(scope, name);
new AwsExternalDns(this, 'cdk8sAwsExternalDns', {
domainFilter: 'exmaple.com',
awsZoneType: AwsZoneTypeOptions.PUBLIC,
});
}
}
const app = new App();
new MyChart(app, 'testcdk8s');
app.synth();
```# Featrue For Add IAM Policy.
- For IRSA add IAM Policy.
```ts
// CDK APP like eks_cluster.ts
import { AwsExternalDnsPolicyHelper } from 'cdk8s-external-dns';
import * as eks from '@aws-cdk/aws-eks';
const cluster = new eks.Cluster(this, 'MyK8SCluster', {
defaultCapacity: 0,
mastersRole: clusterAdmin,
version: eks.KubernetesVersion.V1_18,
});const externalDnsServiceAccount = cluster.addServiceAccount('external-dns', {
name: 'external-dns',
});// will help you add policy to IAM Role .
AwsExternalDnsPolicyHelper.addPolicy(externalDnsServiceAccount);
```
Also can see [example repo](https://github.com/guan840912/cdk8s-cdk-example)
## LicenseDistributed under the [Apache 2.0](./LICENSE) license.