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

Hydra App "Service" ingress construct #195

Open
TallenOwen-zz opened this issue Oct 9, 2019 · 2 comments
Open

Hydra App "Service" ingress construct #195

TallenOwen-zz opened this issue Oct 9, 2019 · 2 comments
Milestone

Comments

@TallenOwen-zz
Copy link

TallenOwen-zz commented Oct 9, 2019

We need a logical Hydra App service ingress construct that supports ingress into components but can persist outside the component life-cycle. The following requirements must be met:

  1. The service ingress must be able to obtain an IP from an existing vNet subnet private address space and reserve the IP as static. The IP would serve as the VIP for one or many Hydra App components and outlive the component life-cycle.
  2. The service ingress must support certificates for customer provided DNS names such as myapp.domain.net.
  3. Through the Service Ingress, the Hydra App Components must recognize customer DNS and support component to component communication using customer provided DNS namespaces across Hydra Apps in different customer subnets.
  4. The service ingress must not require a dedicated subnet to obtain a static IP reservation.
  5. The service ingress must provide the capability to prevent public internet ingress.

One possible option to implement the Hydra App service ingress would be to create a new "Service Network Scope" that represents a service ingress boundary across Hydra App components with the characteristics outlined above. This allows the service ingress to be declared within operational configuration and subsequently defined in the component scope attributes.

@vturecek vturecek added this to the backlog milestone Oct 11, 2019
@hongchaodeng
Copy link
Member

hongchaodeng commented Oct 11, 2019

Using scope is definitely the way to go!

My 2c: I would model this as the ingress server as a workload/component, and a scope captures those who want to be served by the ingress server.

@TallenOwen-zz
Copy link
Author

@hongchaodeng Yes, that was the original proposal made to @suhuruli. It might make sense to use a separate component to manage the persistent state of the service ingress. That would also allow extended traits to be added to the service ingress component that are specific to the characteristics or properties of "service" ingress, similar to what native Kubernetes provides.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants