Skip to content

Commit 15537b9

Browse files
authored
Merge pull request #2890 from panslava/deprecate-enable-frontend-config
Deprecate --enable-frontend-config, consider always enabled
2 parents d8ca8a4 + 4990077 commit 15537b9

File tree

9 files changed

+93
-128
lines changed

9 files changed

+93
-128
lines changed

cmd/glbc/main.go

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -147,16 +147,14 @@ func main() {
147147
}
148148

149149
var frontendConfigClient frontendconfigclient.Interface
150-
if flags.F.EnableFrontendConfig {
151-
frontendConfigCRDMeta := frontendconfig.CRDMeta()
152-
if _, err := crdHandler.EnsureCRD(frontendConfigCRDMeta, true); err != nil {
153-
klog.Fatalf("Failed to ensure FrontendConfig CRD: %v", err)
154-
}
150+
frontendConfigCRDMeta := frontendconfig.CRDMeta()
151+
if _, err := crdHandler.EnsureCRD(frontendConfigCRDMeta, true); err != nil {
152+
klog.Fatalf("Failed to ensure FrontendConfig CRD: %v", err)
153+
}
155154

156-
frontendConfigClient, err = frontendconfigclient.NewForConfig(kubeConfig)
157-
if err != nil {
158-
klog.Fatalf("Failed to create FrontendConfig client: %v", err)
159-
}
155+
frontendConfigClient, err = frontendconfigclient.NewForConfig(kubeConfig)
156+
if err != nil {
157+
klog.Fatalf("Failed to create FrontendConfig client: %v", err)
160158
}
161159

162160
var firewallCRClient firewallcrclient.Interface
@@ -336,7 +334,6 @@ func main() {
336334
NumL4NetLBWorkers: flags.F.NumL4NetLBWorkers,
337335
DefaultBackendSvcPort: defaultBackendServicePort,
338336
HealthCheckPath: flags.F.HealthCheckPath,
339-
FrontendConfigEnabled: flags.F.EnableFrontendConfig,
340337
MaxIGSize: flags.F.MaxIGSize,
341338
EnableL4ILBDualStack: flags.F.EnableL4ILBDualStack,
342339
EnableL4NetLBDualStack: flags.F.EnableL4NetLBDualStack,

pkg/context/context.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,6 @@ type ControllerContextConfig struct {
118118
// DefaultBackendSvcPortID is the ServicePort for the system default backend.
119119
DefaultBackendSvcPort utils.ServicePort
120120
HealthCheckPath string
121-
FrontendConfigEnabled bool
122121
MaxIGSize int
123122
EnableL4ILBDualStack bool
124123
EnableL4NetLBDualStack bool
@@ -191,9 +190,7 @@ func NewControllerContext(
191190
if firewallClient != nil {
192191
context.FirewallInformer = informerfirewall.NewGCPFirewallInformer(firewallClient, config.ResyncPeriod, utils.NewNamespaceIndexer())
193192
}
194-
if config.FrontendConfigEnabled {
195-
context.FrontendConfigInformer = informerfrontendconfig.NewFrontendConfigInformer(frontendConfigClient, config.Namespace, config.ResyncPeriod, utils.NewNamespaceIndexer())
196-
}
193+
context.FrontendConfigInformer = informerfrontendconfig.NewFrontendConfigInformer(frontendConfigClient, config.Namespace, config.ResyncPeriod, utils.NewNamespaceIndexer())
197194

198195
if saClient != nil {
199196
context.SAInformer = informerserviceattachment.NewServiceAttachmentInformer(saClient, config.Namespace, config.ResyncPeriod, utils.NewNamespaceIndexer())

pkg/controller/controller.go

Lines changed: 41 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -276,45 +276,43 @@ func NewLoadBalancerController(
276276
})
277277

278278
// FrontendConfig event handlers.
279-
if ctx.FrontendConfigEnabled {
280-
ctx.FrontendConfigInformer.AddEventHandler(cache.ResourceEventHandlerFuncs{
281-
AddFunc: func(obj interface{}) {
282-
feConfig := obj.(*frontendconfigv1beta1.FrontendConfig)
279+
ctx.FrontendConfigInformer.AddEventHandler(cache.ResourceEventHandlerFuncs{
280+
AddFunc: func(obj interface{}) {
281+
feConfig := obj.(*frontendconfigv1beta1.FrontendConfig)
282+
ings := operator.Ingresses(ctx.Ingresses().List()).ReferencesFrontendConfig(feConfig).AsList()
283+
lbc.ingQueue.Enqueue(convert(ings)...)
284+
},
285+
UpdateFunc: func(old, cur interface{}) {
286+
if !reflect.DeepEqual(old, cur) {
287+
feConfig := cur.(*frontendconfigv1beta1.FrontendConfig)
288+
logger.Info("FrontendConfig updated", "feConfigName", klog.KRef(feConfig.Namespace, feConfig.Name))
283289
ings := operator.Ingresses(ctx.Ingresses().List()).ReferencesFrontendConfig(feConfig).AsList()
284290
lbc.ingQueue.Enqueue(convert(ings)...)
285-
},
286-
UpdateFunc: func(old, cur interface{}) {
287-
if !reflect.DeepEqual(old, cur) {
288-
feConfig := cur.(*frontendconfigv1beta1.FrontendConfig)
289-
logger.Info("FrontendConfig updated", "feConfigName", klog.KRef(feConfig.Namespace, feConfig.Name))
290-
ings := operator.Ingresses(ctx.Ingresses().List()).ReferencesFrontendConfig(feConfig).AsList()
291-
lbc.ingQueue.Enqueue(convert(ings)...)
291+
}
292+
},
293+
DeleteFunc: func(obj interface{}) {
294+
var feConfig *frontendconfigv1beta1.FrontendConfig
295+
var ok, feOk bool
296+
feConfig, ok = obj.(*frontendconfigv1beta1.FrontendConfig)
297+
if !ok {
298+
// This can happen if the watch is closed and misses the delete event
299+
state, stateOk := obj.(cache.DeletedFinalStateUnknown)
300+
if !stateOk {
301+
logger.Error(nil, "Wanted cache.DeleteFinalStateUnknown of frontendconfig obj", "got", fmt.Sprintf("%+v", obj), "gotType", fmt.Sprintf("%T", obj))
302+
return
292303
}
293-
},
294-
DeleteFunc: func(obj interface{}) {
295-
var feConfig *frontendconfigv1beta1.FrontendConfig
296-
var ok, feOk bool
297-
feConfig, ok = obj.(*frontendconfigv1beta1.FrontendConfig)
298-
if !ok {
299-
// This can happen if the watch is closed and misses the delete event
300-
state, stateOk := obj.(cache.DeletedFinalStateUnknown)
301-
if !stateOk {
302-
logger.Error(nil, "Wanted cache.DeleteFinalStateUnknown of frontendconfig obj", "got", fmt.Sprintf("%+v", obj), "gotType", fmt.Sprintf("%T", obj))
303-
return
304-
}
305-
306-
feConfig, feOk = state.Obj.(*frontendconfigv1beta1.FrontendConfig)
307-
if !feOk {
308-
logger.Error(nil, "Wanted frontendconfig obj", "got", fmt.Sprintf("%+v", state.Obj), "gotType", fmt.Sprintf("%T", state.Obj))
309-
return
310-
}
304+
305+
feConfig, feOk = state.Obj.(*frontendconfigv1beta1.FrontendConfig)
306+
if !feOk {
307+
logger.Error(nil, "Wanted frontendconfig obj", "got", fmt.Sprintf("%+v", state.Obj), "gotType", fmt.Sprintf("%T", state.Obj))
308+
return
311309
}
310+
}
312311

313-
ings := operator.Ingresses(ctx.Ingresses().List()).ReferencesFrontendConfig(feConfig).AsList()
314-
lbc.ingQueue.Enqueue(convert(ings)...)
315-
},
316-
})
317-
}
312+
ings := operator.Ingresses(ctx.Ingresses().List()).ReferencesFrontendConfig(feConfig).AsList()
313+
lbc.ingQueue.Enqueue(convert(ings)...)
314+
},
315+
})
318316

319317
if enableMultiSubnetClusterPhase1 {
320318
// SvcNeg event handlers.
@@ -738,11 +736,9 @@ func (lbc *LoadBalancerController) sync(key string) error {
738736
} else {
739737
// Insert/update the ingress state for metrics after successful sync.
740738
var fc *frontendconfigv1beta1.FrontendConfig
741-
if flags.F.EnableFrontendConfig {
742-
fc, err = frontendconfig.FrontendConfigForIngress(lbc.ctx.FrontendConfigs().List(), ing)
743-
if err != nil {
744-
return err
745-
}
739+
fc, err = frontendconfig.FrontendConfigForIngress(lbc.ctx.FrontendConfigs().List(), ing)
740+
if err != nil {
741+
return err
746742
}
747743
lbc.metrics.SetIngress(key, metrics.NewIngressState(ing, fc, urlMap.AllServicePorts()))
748744
}
@@ -825,15 +821,13 @@ func (lbc *LoadBalancerController) toRuntimeInfo(ing *v1.Ingress, urlMap *utils.
825821
}
826822

827823
var feConfig *frontendconfigv1beta1.FrontendConfig
828-
if lbc.ctx.FrontendConfigEnabled {
829-
feConfig, err = frontendconfig.FrontendConfigForIngress(lbc.ctx.FrontendConfigs().List(), ing)
830-
if err != nil {
831-
lbc.ctx.Recorder(ing.Namespace).Eventf(ing, apiv1.EventTypeWarning, events.SyncIngress, "Error: %v", err)
832-
}
833-
// Object in cache could be changed in-flight. Deepcopy to
834-
// reduce race conditions.
835-
feConfig = feConfig.DeepCopy()
824+
feConfig, err = frontendconfig.FrontendConfigForIngress(lbc.ctx.FrontendConfigs().List(), ing)
825+
if err != nil {
826+
lbc.ctx.Recorder(ing.Namespace).Eventf(ing, apiv1.EventTypeWarning, events.SyncIngress, "Error: %v", err)
836827
}
828+
// Object in cache could be changed in-flight. Deepcopy to
829+
// reduce race conditions.
830+
feConfig = feConfig.DeepCopy()
837831

838832
staticIPName, err := annotations.StaticIPName()
839833
if err != nil {

pkg/flags/flags.go

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,6 @@ var F = struct {
9494
KubeClientBurst int
9595

9696
// Feature flags should be named Enablexxx.
97-
EnableFrontendConfig bool
9897
EnableNonGCPMode bool
9998
EnableReadinessReflector bool
10099
EnableV2FrontendNamer bool
@@ -149,11 +148,13 @@ var F = struct {
149148
// DEPRECATED FLAGS
150149
// ===============================
151150
// DEPRECATED: ASM ConfigMap based config is no longer used and will be removed in a future release.
152-
EnableASMConfigMapBasedConfig bool
153-
ASMConfigMapBasedConfigCMName string
154-
ASMConfigMapBasedConfigNamespace string
155-
// DEPRECATED: EnableDeleteUnusedFrontends is on by default and will be removed in a future release.
156-
EnableDeleteUnusedFrontends bool
151+
DeprecatedEnableASMConfigMapBasedConfig bool
152+
DeprecatedASMConfigMapBasedConfigCMName string
153+
DeprecatedASMConfigMapBasedConfigNamespace string
154+
// DEPRECATED: DeprecatedEnableDeleteUnusedFrontends is on by default and will be removed in a future release.
155+
DeprecatedEnableDeleteUnusedFrontends bool
156+
// DEPRECATED: DeprecatedEnableFrontendConfig is on by default and will be removed in a future release.
157+
DeprecatedEnableFrontendConfig bool
157158
}{
158159
GCERateLimitScale: 1.0,
159160
}
@@ -215,8 +216,8 @@ form namespace/name.`)
215216
flag.StringVar(&F.DefaultSvcPortName, "default-backend-service-port", "http",
216217
`Specify the default service's port used to serve a 404 page for the default backend. Takes
217218
only the port's name - not its number.`)
218-
flag.BoolVar(&F.EnableFrontendConfig, "enable-frontend-config", false,
219-
`Optional, whether or not to enable FrontendConfig.`)
219+
flag.BoolVar(&F.DeprecatedEnableFrontendConfig, "enable-frontend-config", true,
220+
`DEPCREATED: Optional, whether or not to enable FrontendConfig.`)
220221
flag.Var(&F.GCERateLimit, "gce-ratelimit",
221222
`Optional, can be used to rate limit certain GCE API calls. Example usage:
222223
--gce-ratelimit=ga.Addresses.Get,qps,1.5,5
@@ -285,11 +286,11 @@ L7 load balancing. CSV values accepted. Example: -node-port-ranges=80,8080,400-5
285286
F.FinalizerAdd, "Enable adding Finalizer to Ingress.")
286287
flag.BoolVar(&F.FinalizerRemove, "enable-finalizer-remove",
287288
F.FinalizerRemove, "Enable removing Finalizer from Ingress.")
288-
flag.BoolVar(&F.EnableASMConfigMapBasedConfig, "enable-asm-config-map-config", false, "DEPRECATED: Enable ASMConfigMapBasedConfig")
289-
flag.StringVar(&F.ASMConfigMapBasedConfigNamespace, "asm-configmap-based-config-namespace", "kube-system", "DEPRECATED: ASM Configmap based config: configmap namespace")
290-
flag.StringVar(&F.ASMConfigMapBasedConfigCMName, "asm-configmap-based-config-cmname", "ingress-controller-asm-cm-config", "DEPRECATED: ASM Configmap based config: configmap name")
289+
flag.BoolVar(&F.DeprecatedEnableASMConfigMapBasedConfig, "enable-asm-config-map-config", false, "DEPRECATED: Enable ASMConfigMapBasedConfig")
290+
flag.StringVar(&F.DeprecatedASMConfigMapBasedConfigNamespace, "asm-configmap-based-config-namespace", "kube-system", "DEPRECATED: ASM Configmap based config: configmap namespace")
291+
flag.StringVar(&F.DeprecatedASMConfigMapBasedConfigCMName, "asm-configmap-based-config-cmname", "ingress-controller-asm-cm-config", "DEPRECATED: ASM Configmap based config: configmap name")
291292
flag.BoolVar(&F.EnableNonGCPMode, "enable-non-gcp-mode", false, "Set to true when running on a non-GCP cluster.")
292-
flag.BoolVar(&F.EnableDeleteUnusedFrontends, "enable-delete-unused-frontends", true, "Enable deleting unused gce frontend resources.")
293+
flag.BoolVar(&F.DeprecatedEnableDeleteUnusedFrontends, "enable-delete-unused-frontends", true, "DEPRECATED: Enable deleting unused gce frontend resources.")
293294
flag.BoolVar(&F.EnableV2FrontendNamer, "enable-v2-frontend-namer", false, "Enable v2 ingress frontend naming policy.")
294295
flag.BoolVar(&F.RunIngressController, "run-ingress-controller", true, `Optional, if enabled then the ingress controller will be run.`)
295296
flag.BoolVar(&F.RunL4Controller, "run-l4-controller", false, `Optional, whether or not to run L4 Service Controller as part of glbc. If set to true, services of Type:LoadBalancer with Internal annotation will be processed by this controller.`)

pkg/loadbalancers/l7.go

Lines changed: 18 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import (
2222
"fmt"
2323
"strings"
2424

25-
"k8s.io/ingress-gce/pkg/flags"
2625
"k8s.io/ingress-gce/pkg/translator"
2726

2827
"github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud/meta"
@@ -156,10 +155,8 @@ func (l7 *L7) edgeHop() error {
156155
return err
157156
}
158157

159-
if flags.F.EnableFrontendConfig {
160-
if err := l7.ensureRedirectURLMap(); err != nil {
161-
return fmt.Errorf("ensureRedirectUrlMap() = %v", err)
162-
}
158+
if err := l7.ensureRedirectURLMap(); err != nil {
159+
return fmt.Errorf("ensureRedirectUrlMap() = %v", err)
163160
}
164161

165162
if l7.runtimeInfo.AllowHTTP {
@@ -385,20 +382,18 @@ func (l7 *L7) Cleanup(versions *features.ResourceVersions) error {
385382
}
386383

387384
// Delete RedirectUrlMap if exists
388-
if flags.F.EnableFrontendConfig {
389-
umName, supported := l7.namer.RedirectUrlMap()
390-
if !supported {
391-
// Skip deletion
392-
return nil
393-
}
394-
l7.logger.V(2).Info("Deleting Redirect URL Map", "urlMapName", umName)
395-
key, err := l7.CreateKey(umName)
396-
if err != nil {
397-
return err
398-
}
399-
if err := utils.IgnoreHTTPNotFound(composite.DeleteUrlMap(l7.cloud, key, versions.UrlMap, l7.logger)); err != nil {
400-
return err
401-
}
385+
umName, supported := l7.namer.RedirectUrlMap()
386+
if !supported {
387+
// Skip deletion
388+
return nil
389+
}
390+
l7.logger.V(2).Info("Deleting Redirect URL Map", "urlMapName", umName)
391+
key, err = l7.CreateKey(umName)
392+
if err != nil {
393+
return err
394+
}
395+
if err := utils.IgnoreHTTPNotFound(composite.DeleteUrlMap(l7.cloud, key, versions.UrlMap, l7.logger)); err != nil {
396+
return err
402397
}
403398
return nil
404399
}
@@ -438,12 +433,10 @@ func (l7 *L7) getFrontendAnnotations(existing map[string]string) map[string]stri
438433
}
439434

440435
// Handle Https Redirect Map
441-
if flags.F.EnableFrontendConfig {
442-
if l7.redirectUm != nil {
443-
existing[annotations.RedirectUrlMapKey] = l7.redirectUm.Name
444-
} else {
445-
delete(existing, annotations.RedirectUrlMapKey)
446-
}
436+
if l7.redirectUm != nil {
437+
existing[annotations.RedirectUrlMapKey] = l7.redirectUm.Name
438+
} else {
439+
delete(existing, annotations.RedirectUrlMapKey)
447440
}
448441

449442
// Note that ingress IP annotation is not deleted when user disables one of http/https.

pkg/loadbalancers/loadbalancers_test.go

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ import (
3838
frontendconfigv1beta1 "k8s.io/ingress-gce/pkg/apis/frontendconfig/v1beta1"
3939
"k8s.io/ingress-gce/pkg/composite"
4040
"k8s.io/ingress-gce/pkg/events"
41-
"k8s.io/ingress-gce/pkg/flags"
4241
"k8s.io/ingress-gce/pkg/loadbalancers/features"
4342
"k8s.io/ingress-gce/pkg/translator"
4443
"k8s.io/ingress-gce/pkg/utils"
@@ -1097,9 +1096,6 @@ func TestStaticIP(t *testing.T) {
10971096

10981097
// Test setting frontendconfig Ssl policy
10991098
func TestFrontendConfigSslPolicy(t *testing.T) {
1100-
flags.F.EnableFrontendConfig = true
1101-
defer func() { flags.F.EnableFrontendConfig = false }()
1102-
11031099
j := newTestJig(t)
11041100

11051101
gceUrlMap := utils.NewGCEURLMap(klog.TODO())
@@ -1135,9 +1131,6 @@ func TestFrontendConfigSslPolicy(t *testing.T) {
11351131
}
11361132

11371133
func TestFrontendConfigRedirects(t *testing.T) {
1138-
flags.F.EnableFrontendConfig = true
1139-
defer func() { flags.F.EnableFrontendConfig = false }()
1140-
11411134
j := newTestJig(t)
11421135
ing := newIngress()
11431136

pkg/loadbalancers/target_proxies.go

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import (
2222
"k8s.io/cloud-provider-gcp/providers/gce"
2323
"k8s.io/ingress-gce/pkg/composite"
2424
"k8s.io/ingress-gce/pkg/events"
25-
"k8s.io/ingress-gce/pkg/flags"
2625
"k8s.io/ingress-gce/pkg/translator"
2726
"k8s.io/ingress-gce/pkg/utils"
2827
"k8s.io/ingress-gce/pkg/utils/namer"
@@ -39,15 +38,11 @@ func (l7 *L7) checkProxy() (err error) {
3938
// Get UrlMap Name, could be the url map or the redirect url map
4039
// TODO(shance): move to translator
4140
var umName string
42-
if flags.F.EnableFrontendConfig {
43-
if l7.redirectUm != nil &&
44-
l7.runtimeInfo.FrontendConfig != nil &&
45-
l7.runtimeInfo.FrontendConfig.Spec.RedirectToHttps != nil &&
46-
l7.runtimeInfo.FrontendConfig.Spec.RedirectToHttps.Enabled {
47-
umName = l7.redirectUm.Name
48-
} else {
49-
umName = l7.um.Name
50-
}
41+
if l7.redirectUm != nil &&
42+
l7.runtimeInfo.FrontendConfig != nil &&
43+
l7.runtimeInfo.FrontendConfig.Spec.RedirectToHttps != nil &&
44+
l7.runtimeInfo.FrontendConfig.Spec.RedirectToHttps.Enabled {
45+
umName = l7.redirectUm.Name
5146
} else {
5247
umName = l7.um.Name
5348
}
@@ -190,7 +185,7 @@ func (l7 *L7) checkHttpsProxy() (err error) {
190185
l7.recorder.Eventf(l7.runtimeInfo.Ingress, corev1.EventTypeNormal, events.SyncIngress, "TargetProxy %q certs updated", key.Name)
191186
}
192187

193-
if flags.F.EnableFrontendConfig && sslPolicySet {
188+
if sslPolicySet {
194189
if err := l7.ensureSslPolicy(env, currentProxy, proxy.SslPolicy); err != nil {
195190
return err
196191
}

pkg/translator/translator.go

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ import (
3030
"k8s.io/client-go/kubernetes"
3131
frontendconfigv1beta1 "k8s.io/ingress-gce/pkg/apis/frontendconfig/v1beta1"
3232
"k8s.io/ingress-gce/pkg/composite"
33-
"k8s.io/ingress-gce/pkg/flags"
3433
"k8s.io/ingress-gce/pkg/utils"
3534
"k8s.io/ingress-gce/pkg/utils/namer"
3635
)
@@ -330,15 +329,13 @@ func (t *Translator) ToCompositeTargetHttpsProxy(env *Env, description string, v
330329
Version: version,
331330
}
332331
var sslPolicySet bool
333-
if flags.F.EnableFrontendConfig {
334-
sslPolicy, err := sslPolicyLink(env, t.IsL7XLBRegional)
335-
if err != nil {
336-
return nil, sslPolicySet, err
337-
}
338-
if sslPolicy != nil {
339-
proxy.SslPolicy = *sslPolicy
340-
sslPolicySet = true
341-
}
332+
sslPolicy, err := sslPolicyLink(env, t.IsL7XLBRegional)
333+
if err != nil {
334+
return nil, sslPolicySet, err
335+
}
336+
if sslPolicy != nil {
337+
proxy.SslPolicy = *sslPolicy
338+
sslPolicySet = true
342339
}
343340

344341
return proxy, sslPolicySet, nil

0 commit comments

Comments
 (0)