Created git issue[1] to track this improvement.

1. https://github.com/wso2/carbon-config/issues/48

On Tue, Aug 22, 2017 at 9:50 AM, Danesh Kuruppu <[email protected]> wrote:

> Hi Chamila,
>
> +1 for the suggested approach. So we can have both ways to set environment
> variables either from placeholder ${env:<key>} where we can specify any key
> for the variable or from the new approach. For the new approach, we need
> adhere to a certain format as suggested.
>
> Thanks
> Danesh
>
> On Mon, Aug 21, 2017 at 5:59 PM, Chamila De Alwis <[email protected]>
> wrote:
>
>> Hi,
>>
>> In C5, the configuration lookup is done in the environment variables,
>> system properties, deployment.yaml file, and the value provided in the
>> configuration bean class, in that order. However, it looks like environment
>> variable lookup happens only if the particular configuration is noted to do
>> so in the deployment.yaml, specifically if the value of the config is
>> prefixed by a placeholder env:.
>>
>> gateWayEndpoint: ${env:gateWayEndpoint}
>>
>> While this pattern may be easy to implement, it is cumbersome to be
>> followed in a Containerization approach and IMO breaks the 12Factor
>> approach to configuration. This is because of the need to edit a physical
>> file in order for the environment variables to be queried. This makes it
>> harder to maintain a single Container Image for different deployments, and
>> manipulate the Container runtimes via environment variables.
>>
>> AFAIU, this pattern emerges from the requirements in SecureVault; having
>> a ${sec:} prefix can mark the configuration value to be resolved through
>> Secure Vault resolver. However IMO this, value resolution, is not the same
>> as value lookup.
>>
>> IMO, the following should be the lookup order, without having to mark a
>> particular config in the deployment.yaml file.
>>
>> 1. Environment variables: PREFIX_wso2.NAMESPACE_CONFIGKEY="value",
>> PREFIX_wso2.NAMESPACE_CONFIGPARENT_CONFIG2="value2"
>> 2. deployment.yaml:
>>
>> wso2.NAMESPACE:
>>
>> CONFIG_KEY: value
>>
>> CONFIG_PARENT:
>>
>> CONFIG2: valu2
>>
>> 3. Default value in the code
>>
>> This approach would be most Container friendly one as there is no need to
>> change files depending on deployment patterns, environments, etc.
>>
>> WDYT?
>>
>> Regards,
>> Chamila de Alwis
>> Committer and PMC Member - Apache Stratos
>> Senior Software Engineer | WSO2
>> Blog: https://medium.com/@chamilad
>>
>>
>>
>
>
> --
>
> *Danesh Kuruppu*
> Senior Software Engineer | WSO2
>
> Email: [email protected]
> Mobile: +94 (77) 1690552 <+94%2077%20169%200552>
> Web: WSO2 Inc <https://wso2.com/signature>
>
>


-- 

*Danesh Kuruppu*
Senior Software Engineer | WSO2

Email: [email protected]
Mobile: +94 (77) 1690552
Web: WSO2 Inc <https://wso2.com/signature>
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to