-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Description
Proposed changes
Support for proxy service types is required for enterprise client
- Remove
experimental.webapp.proxy.serviceType
from the config object - Add:
components:
proxy:
service:
serviceType: ClusterIP # allowed values are "ClusterIP", "LoadBalancer", "NodePort", "ExternalName" consistent with https://pkg.go.dev/k8s.io/api/core/v1#ServiceType
KOTS
This will be a select_one under the "advanced" section.
Rationale
We don't want to be supporting the same thing from multiple configuration parameters. That would require checks between the two and/or a hierarchy of importance - we should have a single source of truth.
Having a components section makes this extensible for the future. Unlike the experimental
section which lives under our conventions, this new convention is ordered as per the resources - again, this is done with future extensibility in mind.
Documentation
This is written from the KOTS-only perspective
All web traffic enters the application through the Proxy
component. By default, this is a LoadBalancer
type which will expose the application through the cloud provider's load balancer.
Under certain circumstances, this may be undesirable. Under the "Advanced" section, you may select a different service type - all Kubernetes service types are supported, except ExternalName
. If you are using anything other than LoadBalancer
, you are responsible for configuring your network to route traffic through to the proxy
service.