-
Notifications
You must be signed in to change notification settings - Fork 50
NE-1323: Add AWS RoleARN for Shared VPC support #195
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -14,7 +14,7 @@ provider configuration in the `ExternalDNS` resource. However, it does not provi | |
| it expects the credentials to be in the same namespace as the operator itself. It then copies over the credentials into | ||
| the namespace where the _external-dns_ deployments are created so that they can be mounted by the pods. | ||
|
|
||
| ## AWS | ||
| # AWS | ||
|
|
||
| Create a secret with the access key id and secret: | ||
|
|
||
|
|
@@ -55,11 +55,57 @@ spec: | |
| Once this is created the _external-dns-operator_ will create a deployment of _external-dns_ which is configured to | ||
| manage DNS records in AWS Route53. | ||
|
|
||
| ## AWS GovCloud | ||
| ## Assume Role | ||
|
|
||
| The _external-dns-operator_ supports managing records in another AWS account's hosted zone. To achieve this, you will | ||
| require an IAM Role ARN with the necessary permissions properly set up. This Role ARN should then be specified in the | ||
| `ExternalDNS` resource in the following manner: | ||
|
|
||
| ```yaml | ||
| apiVersion: externaldns.olm.openshift.io/v1beta1 | ||
| kind: ExternalDNS | ||
| metadata: | ||
| name: aws-example | ||
| spec: | ||
| provider: | ||
| type: AWS | ||
| aws: | ||
| credentials: | ||
| name: aws-access-key | ||
| assumeRole: | ||
| arn: arn:aws:iam::123456789012:role/role-name # Replace with the desire Role ARN | ||
| zones: # Replace with the desired hosted zone IDs | ||
| - "Z3URY6TWQ91KXX" | ||
| source: | ||
| type: Service | ||
| fqdnTemplate: | ||
| - '{{.Name}}.mydomain.net' | ||
| ``` | ||
|
|
||
| **Note**: Due to a limitation of the `v1beta1` API requiring the `credentials` field, OpenShift users will be required | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. BTW I am planning to add a section on using a Shared VPC to OpenShift's docs: https://docs.openshift.com/container-platform/4.13/networking/external_dns_operator/nw-creating-dns-records-on-aws.html If you think we don't need both (this repo docs and OpenShift docs), I can drop this one. But I figure better safe than sorry. I know the docs in this repo are not just for OpenShift users, but it does feel a little strange there isn't a mention of the Cloud Credential Operator providing the credentials for OpenShift anywhere. I wonder if we should introduce that concept somewhere around here, as a new user, that wasn't clear to me I didn't need credentials from reading these docs. I feel like we should also have a
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
OCP docs are always the priority over this repo.
I believe that the initial purpose of this doc was to show how to configure the DNS providers: format of the secrets, configuration and tuning options. Basically anything that lays in I think I agree that we need to mention
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Okay thanks. I'll leave what I have now, and possibly open another PR later with details on |
||
| to provide an empty (`""`) credentials field. The empty credentials will be ignored and the secret provided by | ||
| OpenShift's Cloud Credentials Operator will be used: | ||
|
|
||
| ```yaml | ||
| apiVersion: externaldns.olm.openshift.io/v1beta1 | ||
| kind: ExternalDNS | ||
| metadata: | ||
| name: aws-example | ||
| spec: | ||
| provider: | ||
| type: AWS | ||
| aws: | ||
| credentials: | ||
| name: "" # Empty Credentials | ||
| assumeRole: | ||
| arn: arn:aws:iam::123456789012:role/role-name # Replace with the desire Role ARN | ||
| ``` | ||
|
|
||
| ## GovCloud | ||
| The operator makes the assumption that `ExternalDNS` instances which target GovCloud DNS also run on the GovCloud. This is needed to detect the AWS region. | ||
| As for the rest: the usage is exactly the same as for `AWS`. | ||
|
|
||
| ## Infoblox | ||
| # Infoblox | ||
|
|
||
| Before creating an `ExternalDNS` resource for the [Infoblox](https://www.infoblox.com/wp-content/uploads/infoblox-deployment-infoblox-rest-api.pdf) | ||
| the following information is required: | ||
|
|
@@ -110,7 +156,7 @@ spec: | |
| Once this is created the _external-dns-operator_ will create a deployment of _external-dns_ which is configured to | ||
| manage DNS records in Infoblox. | ||
|
|
||
| ## BlueCat | ||
| # BlueCat | ||
|
|
||
| The BlueCat provider requires | ||
| the [BlueCat Gateway](https://docs.bluecatnetworks.com/r/Gateway-Installation-Guide/Installing-BlueCat-Gateway/20.3.1) | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.