Skip to content

Commit 2cfc7c1

Browse files
author
Martin Linkhorst
committed
separate public and private domains, allow to choose for stacks
1 parent 141bf12 commit 2cfc7c1

File tree

3 files changed

+21
-2
lines changed

3 files changed

+21
-2
lines changed

cmd/stackset-controller/main.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ var (
3838
Namespace string
3939
MetricsAddress string
4040
ClusterDomains []string
41+
ClusterInternalDomains []string
42+
IgnorePublicDomainsOnStacks bool
4143
NoTrafficScaledownTTL time.Duration
4244
ControllerID string
4345
BackendWeightsAnnotationKey string
@@ -62,6 +64,8 @@ func main() {
6264
Default(defaultReconcileWorkers).IntVar(&config.ReconcileWorkers)
6365
kingpin.Flag("backend-weights-key", "Backend weights annotation key the controller will use to set current traffic values").Default(traffic.DefaultBackendWeightsAnnotationKey).StringVar(&config.BackendWeightsAnnotationKey)
6466
kingpin.Flag("cluster-domain", "Main domains of the cluster, used for generating Stack Ingress hostnames").Envar("CLUSTER_DOMAIN").Required().StringsVar(&config.ClusterDomains)
67+
kingpin.Flag("cluster-internal-domain", "Main internal domains of the cluster, used for generating Stack Ingress hostnames").Envar("CLUSTER_INTERNAL_DOMAIN").StringsVar(&config.ClusterInternalDomains)
68+
kingpin.Flag("ignore-public-domains-on-stacks", "If true, only --cluster-internal-domain is considered on Stack Ingresses and RouteGroups").Default("false").BoolVar(&config.IgnorePublicDomainsOnStacks)
6569
kingpin.Flag("enable-routegroup-support", "Enable support for RouteGroups on StackSets.").Default("false").BoolVar(&config.RouteGroupSupportEnabled)
6670
kingpin.Flag(
6771
"sync-ingress-annotation",
@@ -81,6 +85,8 @@ func main() {
8185
ControllerID: config.ControllerID,
8286

8387
ClusterDomains: config.ClusterDomains,
88+
ClusterInternalDomains: config.ClusterInternalDomains,
89+
IgnorePublicDomainsOnStacks: config.IgnorePublicDomainsOnStacks,
8490
BackendWeightsAnnotationKey: config.BackendWeightsAnnotationKey,
8591
SyncIngressAnnotations: config.SyncIngressAnnotations,
8692

controller/stackset.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,8 @@ type StackSetConfig struct {
6767
ControllerID string
6868

6969
ClusterDomains []string
70+
ClusterInternalDomains []string
71+
IgnorePublicDomainsOnStacks bool
7072
BackendWeightsAnnotationKey string
7173
SyncIngressAnnotations []string
7274

@@ -252,6 +254,8 @@ func (c *StackSetController) collectResources(ctx context.Context) (map[types.UI
252254
reconciler,
253255
c.config.BackendWeightsAnnotationKey,
254256
c.config.ClusterDomains,
257+
c.config.ClusterInternalDomains,
258+
c.config.IgnorePublicDomainsOnStacks,
255259
c.config.SyncIngressAnnotations,
256260
)
257261
stacksets[uid] = stacksetContainer

pkg/core/types.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,9 @@ type StackSetContainer struct {
6464

6565
// clusterDomains stores the main domain names of the cluster;
6666
// per-stack ingress hostnames are not generated for names outside of them
67-
clusterDomains []string
67+
clusterDomains []string
68+
clusterInternalDomains []string
69+
ignorePublicDomainsOnStacks bool
6870

6971
// ingressAnnotationsToSync is a list of ingress annotations that should be
7072
// synchronized across all existing stacks.
@@ -214,6 +216,8 @@ func NewContainer(
214216
reconciler TrafficReconciler,
215217
backendWeightsAnnotationKey string,
216218
clusterDomains []string,
219+
clusterInternalDomains []string,
220+
ignorePublicDomainsOnStacks bool,
217221
syncIngressAnnotations []string,
218222
) *StackSetContainer {
219223
return &StackSetContainer{
@@ -222,6 +226,8 @@ func NewContainer(
222226
TrafficReconciler: reconciler,
223227
backendWeightsAnnotationKey: backendWeightsAnnotationKey,
224228
clusterDomains: clusterDomains,
229+
clusterInternalDomains: clusterInternalDomains,
230+
ignorePublicDomainsOnStacks: ignorePublicDomainsOnStacks,
225231
ingressAnnotationsToSync: syncIngressAnnotations,
226232
}
227233
}
@@ -350,7 +356,10 @@ func (ssc *StackSetContainer) UpdateFromResources() error {
350356
sc.syncAnnotationsInRouteGroup = syncAnnotationsInRouteGroup
351357
sc.backendPort = backendPort
352358
sc.scaledownTTL = scaledownTTL
353-
sc.clusterDomains = ssc.clusterDomains
359+
sc.clusterDomains = ssc.clusterInternalDomains
360+
if !ssc.ignorePublicDomainsOnStacks {
361+
sc.clusterDomains = append(sc.clusterDomains, ssc.clusterDomains...)
362+
}
354363
err := sc.updateStackResources()
355364
if err != nil {
356365
return err

0 commit comments

Comments
 (0)