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

Add support for user-specified instance or namespace configuration at installation-time #632

Open
isc-eneil opened this issue Nov 25, 2024 · 6 comments
Assignees
Labels
enhancement New feature or request prio: medium
Milestone

Comments

@isc-eneil
Copy link
Collaborator

isc-eneil commented Nov 25, 2024

Per conversations with HSOPS, we are asking for a single command that can install/load a module into a namespace and then perform configuration in that namespace based on a user-provided "env" file that provides a better structure than lots of -D arguments.

@isc-eneil isc-eneil added the enhancement New feature or request label Nov 25, 2024
@isc-tleavitt isc-tleavitt added this to the Backlog milestone Nov 26, 2024
@isc-tleavitt
Copy link
Contributor

Use case is user-provided info for application installation time:

install packagename -verbose -env /path/to/env.json

We'll load env.json into params("env") as a %Library.DynamicObject which can then be referenced everywhere meaningful.

@isc-tleavitt
Copy link
Contributor

Need to support multiple files with the objects merged (use case: non-secrets and secrets)

@isc-tleavitt
Copy link
Contributor

As part of this, need to fix Invoke getting access to the params array.

@isc-tleavitt
Copy link
Contributor

To get access to the params array, we'll make a singleton (probably %IPM.General.InstallContext) API and have params available there. (I'm not sure if there's already a singleton with params?)

@janihur
Copy link

janihur commented Jan 3, 2025

@isc-tleavitt wrote:

Need to support multiple files with the objects merged (use case: non-secrets and secrets)

Have you considered tools/workflows like https://getsops.io/ to manage secrets in configuration files? SOPS is an example of one tool that is widely used e.g. in k8s deployments and we're also using it with our in-house IRIS namespace configuration framework.

I.e. we have a deployment process that decrypts the secrets in the configuration files just before the deployment so our (ObjectScript) framework doesn't have to care about it at all.

I hope we talking about the same subject :)

@isc-tleavitt isc-tleavitt modified the milestones: Backlog, January 2025 Jan 7, 2025
@isc-shuliu isc-shuliu self-assigned this Jan 13, 2025
@isc-shuliu
Copy link
Collaborator

We should probably enforce a JSON structure such that the top level keys are package names, because install <package> -v env.json can also install dependency packages that can also potentially require configurations in env.json.
This will look like

{
  "my-package": { "key1": "value1" },
  "one-dependency": { "key2": "value2" },
  "another-dependency": { "key3": "value3" }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request prio: medium
Projects
Status: To do
Development

No branches or pull requests

4 participants