feat(deployment): Add new frontend system option#98
Conversation
|
I went through the full deployment flow and have a few suggestions to simplify things and fix a couple of merge-order issues. Most of these come from aligning NFS with how the existing config layers (common → auth → user) already work. For context, the default deployment pipeline follows a consistent pattern across all three config types: merge layer files via The custom loader module might be unnecessary.
envsubst ordering. In Merge order for dynamic plugins. Currently Config directory organization. The NFS files in Then in Auto-detection from project name. Instead of always requiring const namespace = input.namespace ?? this.deploymentConfig.namespace;
const useNewFrontendSystem =
input.useNewFrontendSystem ??
(namespace.endsWith("-app-next") ||
process.env.USE_NEW_FRONTEND_SYSTEM === "true");This way existing tests that already use |
8ec61b2 to
f1dbc36
Compare
Add optional new-frontend-system (app-next) support on RHDHDeployment: merge package NFS YAML with the same pipeline as common → auth → user (later wins), instead of a separate loader path. - Secrets: splice NFS secrets into mergeYamlFilesIfExists before a single envsubst pass (common → auth → NFS when active → user). - Dynamic plugins: splice config/new-frontend-system/dynamic-plugins.yaml after auth and before workspace/generated config so NFS OCI entries act as defaults; user dynamic-plugins.yaml and metadata still override. - Layout: move NFS assets to config/new-frontend-system/ (secrets.yaml, dynamic-plugins.yaml, value_file.yaml); group paths under DEFAULT_CONFIG_PATHS.newFrontendSystem (secrets, dynamicPlugins, valueFile). - Drop duplicate includes from the NFS dynamic-plugins fragment (common already includes dynamic-plugins.default.yaml). - Remove new-frontend-system-plugins.ts (env-based OCI overrides), its tests, and RHDH_E2E_NFS_*_ENV exports; pin app-auth / app-integrations via standard workspace dynamic-plugins.yaml. - Auto-enable when configure() omits the flag if the namespace ends with -app-next or USE_NEW_FRONTEND_SYSTEM=true; explicit useNewFrontendSystem true/false still wins via ??. Docs and tests updated for merge order, env var, and consumer migration notes. Assisted-By: Cursor Desktop rh-pre-commit.version: 2.3.2 rh-pre-commit.check-secrets: ENABLED
f1dbc36 to
9bd2131
Compare
|
Thanks @subhashkhileri that was very helpful, have updated these changes accordingly. Lemme know if there's any other concerns. |
This change adds a useNewFrontendSystem option to configure the RHDH deployment to load the new frontend system app-next package instead of the old frontend system app package. This change also adds the relevant plugins in this mode that are required for logging in using other authentication providers than the guest login as well as source control authentication support. Tests that want to use the new frontend system simply need to set useNewFrontendSystem to "true" in the options object for rhdh.configure().
Assisted-By: Cursor Desktop
rh-pre-commit.version: 2.3.2
rh-pre-commit.check-secrets: ENABLED