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

As runnable application component, I should verify and access to environment variables in a safe way to collaborate with other resources/infrastructure systems #159

Open
7 tasks done
olivierlemee opened this issue Dec 15, 2022 · 2 comments
Labels
line:mvf Action or item managed via the MVF production line dedicated to prototypes delivery priority:high High priority for treatment

Comments

@olivierlemee
Copy link
Collaborator

olivierlemee commented Dec 15, 2022

  • implementation of reusable generic class (WriteModelConfigurationVariable, ReadModelConfigurationVariable) by application context (e.g redis adapter) which manage the find/access of properties specific to the current runtime
    • Avoid usage of Maven profile in application (e.g put documentation to doc about usage of environment variable and context utility class)
    • generic HealthyOperableComponentChecker and ExecutableComponentChecker about environment variables management
  • add unit test per application component (ExecutableAdapterCheckerUseCaseTest for UIS adapter impl) about all defined value of all resources to avoid missing by java developers between a value called dynamically by a java code via the Checker class
  • all the settings that are variable for a java component should be managed/defined/changeable only at the infrastructure layer and accessible dynamically without any change/rebuild of java component that is stateless > over Environment Variables
  • check class verifying (by default constructor) that all variables required by the component are defined (Context.get(IReadableConfiguration config) method ) currently in the system instance (e.g if Infrastructure-as-Code missed to defined value in Docker/Helm/Terraform codes) which can be call anytime by a bounded context adapter to manage a waiting time for operator to define/change the environment variable in the current instance through his administration tool. Example of auto verification by adapter (UISAdapterImpl).
  • Implementation of automatic variable types and valued existing (ExecutableAdapterChecker for UIS adapter, ExecutableBackendChecker for reactive-messaging-gateway) in the current started java app (ExecutableBackendChecker of Reactive messaging gateway)
  • environment variables (e.g url to middleware) managed via helm/terraform (see Helm variable environment setting on https://phoenixnap.com/kb/helm-environment-variables) relative to running environment allowing dynamic change (e.g via JMX or via OS/docker instance access via secure/dedicated configuration/administration system)
    • setting via Helm when building the containerized backend + test of redeployment into Kubernetes
@olivierlemee olivierlemee added priority:high High priority for treatment line:mvf Action or item managed via the MVF production line dedicated to prototypes delivery labels Dec 15, 2022
@olivierlemee olivierlemee added this to the OS MVF V0 - Framework milestone Dec 15, 2022
@olivierlemee
Copy link
Collaborator Author

olivierlemee commented Mar 16, 2023

coding of unit test regarding starting (with ExecutableBackendChecker) of Reactive messaging gateway allowing the read of 8080 http port from env variable

@olivierlemee
Copy link
Collaborator Author

definition of environment variable into the Values.yaml Helm file allowing auto-start of docker image with initialized variable reused by the java application auto-check process > test ok as operational started java application

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
line:mvf Action or item managed via the MVF production line dedicated to prototypes delivery priority:high High priority for treatment
Projects
Status: Ready for UAT stage
Development

No branches or pull requests

1 participant