Skip to content
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

Support for External DNS names #211

Closed
EronWright opened this issue Jun 11, 2019 · 0 comments · Fixed by #240
Closed

Support for External DNS names #211

EronWright opened this issue Jun 11, 2019 · 0 comments · Fixed by #240
Assignees
Labels
area/controller Issue related to the operator controller kind/enhancement Enhancement of an existing feature pravega version 0.6.0 priority/P1 Recoverable error, functionality/performance impaired but not lost, no permanent damage version 0.4.0 Issue with Operator 0.4.0

Comments

@EronWright
Copy link
Contributor

EronWright commented Jun 11, 2019

Description

The goal is to assign an external DNS name to each segment store, compatible with the External-DNS component. Given a domain suffix for the cluster, each segment store should be assigned a reasonable name, e.g. <name>.<domain> where <name> is the segment store pod name, and <domain> is a value provided by the PravegaCluster spec. The assigned name should become the 'advertised' address of the segment store for use by the Pravega client.

The motivation is to support TLS connections to segment store with hostname verification enabled. Related to pravega/pravega#3899.

Suggestions for an improvement

Approach:

  1. add a new field to the PravegaCluster spec, e.g. ingress/domain.
  2. When creating a Service for a given SegmentStore, compute an FQDN as follows: <name>.<domain>. (note the period after the suffix).
  3. Record the FQDN as an annotation on the Service resource. The annotation should have the key external-dns.alpha.kubernetes.io/hostname, to be compatible with the External-DNS component.
  4. Adjust the Pravega entrypoint script to pick up the annotation when present (see Use external DNS name as segment store advertised endpoint pravega#3899).

The expected result is:

  1. the External-DNS component creates a DNS record for the segment store.
  2. the segment store advertises the correct DNS name to clients.
  3. client is able to make a TLS connection with hostname verification enabled.
@EronWright EronWright added kind/enhancement Enhancement of an existing feature priority/P1 Recoverable error, functionality/performance impaired but not lost, no permanent damage area/controller Issue related to the operator controller labels Jun 11, 2019
@pbelgundi pbelgundi self-assigned this Jun 12, 2019
@pbelgundi pbelgundi added the version 0.4.0 Issue with Operator 0.4.0 label Jul 2, 2019
@kevinhan88 kevinhan88 added pravega version 0.5.0 Issues with Pravega release 0.5.0 pravega version 0.6.0 and removed pravega version 0.5.0 Issues with Pravega release 0.5.0 labels Jul 11, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/controller Issue related to the operator controller kind/enhancement Enhancement of an existing feature pravega version 0.6.0 priority/P1 Recoverable error, functionality/performance impaired but not lost, no permanent damage version 0.4.0 Issue with Operator 0.4.0
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants