generated from knative-extensions/sample-controller
-
Notifications
You must be signed in to change notification settings - Fork 89
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add filtering support for secret informer in ingress controller (#920)
* add filtering support for secret informer * updates * use the new key * revert githubflow * use networking with new key * minor updates * updates * cleanup tests
- Loading branch information
Showing
12 changed files
with
405 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
/* | ||
Copyright 2022 The Knative Authors | ||
Licensed under the Apache License, Version 2.0 (the "License"); | ||
you may not use this file except in compliance with the License. | ||
You may obtain a copy of the License at | ||
http://www.apache.org/licenses/LICENSE-2.0 | ||
Unless required by applicable law or agreed to in writing, software | ||
distributed under the License is distributed on an "AS IS" BASIS, | ||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
See the License for the specific language governing permissions and | ||
limitations under the License. | ||
*/ | ||
|
||
package informerfiltering | ||
|
||
import ( | ||
"context" | ||
"os" | ||
"strconv" | ||
|
||
"knative.dev/networking/pkg/apis/networking" | ||
filteredFactory "knative.dev/pkg/client/injection/kube/informers/factory/filtered" | ||
) | ||
|
||
const EnableSecretInformerFilteringByCertUIDEnv = "ENABLE_SECRET_INFORMER_FILTERING_BY_CERT_UID" | ||
|
||
// ShouldFilterByCertificateUID allows to choose whether to apply filtering on certificate related secrets | ||
// when list by informers in this component. If not set or set to false no filtering is applied and instead informers | ||
// will get any secret available in the cluster which may lead to mem issues in large clusters. | ||
func ShouldFilterByCertificateUID() bool { | ||
if enable := os.Getenv(EnableSecretInformerFilteringByCertUIDEnv); enable != "" { | ||
b, _ := strconv.ParseBool(enable) | ||
return b | ||
} | ||
return false | ||
} | ||
|
||
// GetContextWithFilteringLabelSelector returns the passed context with the proper label key selector added to it. | ||
func GetContextWithFilteringLabelSelector(ctx context.Context) context.Context { | ||
if ShouldFilterByCertificateUID() { | ||
return filteredFactory.WithSelectors(ctx, networking.CertificateUIDLabelKey) | ||
} | ||
return filteredFactory.WithSelectors(ctx, "") // Allow all | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
52 changes: 52 additions & 0 deletions
52
vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/secret/filtered/fake/fake.go
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
136 changes: 136 additions & 0 deletions
136
vendor/knative.dev/pkg/client/injection/kube/informers/core/v1/secret/filtered/secret.go
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Oops, something went wrong.