Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

backend/kubernetes: Remove legacy helper/schema dependency #34988

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

apparentlymart
Copy link
Member

As with most of our remote state backends, this one was depending on just a tiny slice of the (enormous and now-poorly-understood) legacy SDK.

In an effort to eliminate the legacy SDK snapshot from this codebase, this replaces it with functionality from our new "backendbase" package, which aims to provide just a narrow set of utilities to minimize the churn caused by removing the legacy SDK and thus reduce the risk of this change.

This is currently using the "SDK-like" utilities, which emulate some of the questionable-but-convenient assumptions the legacy SDK makes, such as the idea that empty string and null are equivalent. Hopefully in future we can wean this backend even further off of these older assumptions, but the priority for now is to eliminate the legacy SDK without significantly disturbing the shape of the existing working code.

In the long run we're still planning to move all of the state storage backends out to provider plugins, but the legacy SDK is quite a liability because few people know how to maintain it while hopefully this interim backendbase package is easier to maintain in the meantime (if needed) due to its relative simplicity.

I don't have any test environment for this backend, so I've only tested this through its unit tests. I'd appreciate if a backend maintainer could, along with reviewing this code, also run the acceptance test suite in case there are regressions that the unit tests aren't able to catch. Thanks!

As with most of our remote state backends, this one was depending on just
a tiny slice of the (enormous and now-poorly-understood) legacy SDK.

In an effort to eliminate the legacy SDK snapshot from this codebase, this
replaces it with functionality from our new "backendbase" package, which
aims to provide just a narrow set of utilities to minimize the churn
caused by removing the legacy SDK and thus reduce the risk of this change.

This is currently using the "SDK-like" utilities, which emulate some of the
questionable-but-convenient assumptions the legacy SDK makes, such as
the idea that empty string and null are equivalent. Hopefully in future
we can wean this backend even further off of these older assumptions, but
the priority for now is to eliminate the legacy SDK without significantly
disturbing the shape of the existing working code.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant