-
Notifications
You must be signed in to change notification settings - Fork 1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(kubernetes): Don't register kinds on deserialization (#3840)
Currently every time we deserialize a KubernetesKind we attempt to register that kind. In addition to affecting performance, this is not what we actually want. We should not be registering every kind encountered by clouddriver (including mis-spelled kinds on manifests, etc.) into the static list of kinds. If the kind we're deserializing *is* registered, we do want to return that kind as the registered kind will have more information than we have available from just the string, such as if the kind is namespaced or if the kind has a cluster relationship. But if it's not registered we don't want to register this kind (and in fact we have no additional information to provide when registering the kind as just the string doesn't tell us the other attributes anyway). Clean up the public interface of this class so it's more clear when we're registering kinds and when we're just fetching a kind. Namely: (1) getOrRegisterKind will try to find an existing registered kind; if none is present, it will register a new kind with the information provided in the function call (2) fromString will try to find an existing registered kind; if none is present, it will return a new instance of KubernetesKind but will *not* register that kind There's still some follow-up work to clean up this class and also make looking up registered kinds more efficient, but this seemed like a reasonable start to make a PR.
- Loading branch information
Showing
4 changed files
with
114 additions
and
73 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
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