Please note I've pushed the meeting again to Thursday based on
availability. Sorry for the constant notifications.


Regards,
Chamila de Alwis
Committer and PMC Member - Apache Stratos
Senior Software Engineer | WSO2
Blog: https://medium.com/@chamilad



On Mon, Aug 28, 2017 at 10:39 AM, Chamila De Alwis <chami...@wso2.com>
wrote:

> I've rescheduled the meeting to 30th August (Wednesday) 1pm-2pm, as Lakmal
> is unavailable today.
>
>
> Regards,
> Chamila de Alwis
> Committer and PMC Member - Apache Stratos
> Senior Software Engineer | WSO2
> Blog: https://medium.com/@chamilad
>
>
>
> On Wed, Aug 23, 2017 at 5:31 PM, Chamila De Alwis <chami...@wso2.com>
> wrote:
>
>> I agree. We could omit Secure Vaulted or possible fields like "password"
>> values from being logged.
>>
>> I've scheduled a meeting on 28th Monday 2.00PM. Let's consolidate these
>> into a plan then.
>>
>>
>> Regards,
>> Chamila de Alwis
>> Committer and PMC Member - Apache Stratos
>> Senior Software Engineer | WSO2
>> Blog: https://medium.com/@chamilad
>>
>>
>>
>> On Wed, Aug 23, 2017 at 5:26 PM, Nuwan Dias <nuw...@wso2.com> wrote:
>>
>>> Logging might be tricky. Some of these configs we're talking about are
>>> related to credentials. We shouldn't log credentials in any place. So we
>>> probably will have to find a way to omit logging certain variables if we go
>>> down the path of logging.
>>>
>>> On Wed, Aug 23, 2017 at 5:21 PM, Chamila De Alwis <chami...@wso2.com>
>>> wrote:
>>>
>>>> I had an offline chat with IsuruH and Jayanga, during which following
>>>> points came into light.
>>>>
>>>> 1. To address the troubleshooting story, a separate log can be written
>>>> at the startup where the ConfigProvider executes that would contain the
>>>> configurations overridden for the particular product. The security of this
>>>> log should be handled in the same way for other logs. For debugging, this
>>>> log file can be requested from a deployment.
>>>> 2. There is a possibility that product start-up time might degrade if
>>>> this logging is introduced.
>>>> 3. Not all configurations need to be set via environment variables.
>>>> There can be an attribute in the config annotation which denotes the
>>>> environment variable that can be used to override the particular
>>>> configuration. This can also help in filling the documentation gap that is
>>>> introduced, i.e. the list of environment variables that can be used in a
>>>> particular product can be autogenerated when configuration doc generation
>>>> story is completed.
>>>> 4. Complex types do not need to be supported in environment variable
>>>> story. This would vary depending on the likelihood that configuration would
>>>> be overridden through an environment variable.
>>>>
>>>> Let's schedule a meeting to discuss the concerns, including the above,
>>>> and come to a conclusion.
>>>>
>>>>
>>>> Regards,
>>>> Chamila de Alwis
>>>> Committer and PMC Member - Apache Stratos
>>>> Senior Software Engineer | WSO2
>>>> Blog: https://medium.com/@chamilad
>>>>
>>>>
>>>>
>>>> On Wed, Aug 23, 2017 at 3:01 PM, Chamila De Alwis <chami...@wso2.com>
>>>> wrote:
>>>>
>>>>> IMO logging values would be a security risk. It would be more
>>>>> manageable if information on where certain values are retrieved from can 
>>>>> be
>>>>> displayed if that log level is enabled.
>>>>>
>>>>>
>>>>> Regards,
>>>>> Chamila de Alwis
>>>>> Committer and PMC Member - Apache Stratos
>>>>> Senior Software Engineer | WSO2
>>>>> Blog: https://medium.com/@chamilad
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Aug 23, 2017 at 3:00 PM, Isuru Haththotuwa <isu...@wso2.com>
>>>>> wrote:
>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Aug 23, 2017 at 2:46 PM, Lakmal Warusawithana <
>>>>>> lak...@wso2.com> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Aug 23, 2017 at 2:39 PM, Isuru Haththotuwa <isu...@wso2.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> While I fully agree that its necessary to be able to inject configs
>>>>>>>> via environment variables to be container friendly, I think Jayanga do 
>>>>>>>> have
>>>>>>>> a point. When we are troubleshooting an issue, the first thing to 
>>>>>>>> check is
>>>>>>>> the configurations. When up configuration values are looked up via
>>>>>>>> environment variables, how do we know what are the configuration 
>>>>>>>> parameters
>>>>>>>> that are used in the system? One possible option is to write to a log 
>>>>>>>> as
>>>>>>>> Chamila has mentioned, or else write the currently used config params 
>>>>>>>> to a
>>>>>>>> log file at startup. WDYT?  However this does not take into account the
>>>>>>>> possibility of changing an environment value even after the server has
>>>>>>>> started.
>>>>>>>>
>>>>>>>
>>>>>>> @Isuru, it is coming with correct namespace right? and first
>>>>>>> priority is given to environment variables. So there should not be an 
>>>>>>> issue
>>>>>>> with identifying the our config from environment variables IMO.
>>>>>>>
>>>>>> Yes. What I want to highlight is the troubleshooting perspective. We
>>>>>> can have a particular set of config values coming from environment
>>>>>> variables, another set of config values from deployment.yaml and defaults
>>>>>> from the code. If we have log file file with all the currently used
>>>>>> configurations values (irrespective of whether they are coming from
>>>>>> environment variables, deployment.yaml or defaults in code), which can be
>>>>>> written at server startup, it would be useful for the troubleshooting
>>>>>> purpose IMHO.
>>>>>>
>>>>>>>
>>>>>>>> On Wed, Aug 23, 2017 at 1:35 PM, Chamila De Alwis <
>>>>>>>> chami...@wso2.com> wrote:
>>>>>>>>
>>>>>>>>> Hi Jayanga,
>>>>>>>>>
>>>>>>>>> From Support's point of view, requesting all the data that can
>>>>>>>>> have an effect is not an overhead IMO. Especially since we already do 
>>>>>>>>> that
>>>>>>>>> now, we request for possible environmental factors, at least after all
>>>>>>>>> other efforts are exhausted. When this change is introduced, we would 
>>>>>>>>> not
>>>>>>>>> additionally ask for anything.
>>>>>>>>>
>>>>>>>>> Furthermore, environment variables would mainly be used in
>>>>>>>>> scenarios where Container Cluster Management systems are used, in 
>>>>>>>>> which
>>>>>>>>> case there is a clear cut definition of which environment variables 
>>>>>>>>> with
>>>>>>>>> what values are being applied to Containers. This is how most systems 
>>>>>>>>> are
>>>>>>>>> debugged in CMSs like Kubernetes even now, where commands like 
>>>>>>>>> `kubectl
>>>>>>>>> describe` would give you all the runtime information.
>>>>>>>>>
>>>>>>>>> Non-Containerized environments like VMs would mostly use the file
>>>>>>>>> based approach where it is easy to be coupled with Config Automation 
>>>>>>>>> tools
>>>>>>>>> like Puppet.
>>>>>>>>>
>>>>>>>>> The concern of troubleshooting can be tackled by enabling a
>>>>>>>>> verbose log that would display the environment variable name from 
>>>>>>>>> which a
>>>>>>>>> certain value was retrieved, at the time configs are loaded. This 
>>>>>>>>> would
>>>>>>>>> obviously have to be verbose than INFO, however it would greatly help 
>>>>>>>>> any
>>>>>>>>> debugging process. This is how tools like Puppet handle environment
>>>>>>>>> variable injected configs.
>>>>>>>>>
>>>>>>>>> The argument for file-less environment variables in the lookup
>>>>>>>>> hierarchy is how quickly it becomes cumbersome to handle configuration
>>>>>>>>> files across different Container images. Having files would soon 
>>>>>>>>> present us
>>>>>>>>> with a situation similar to what we handle now in C4 with 
>>>>>>>>> configuration
>>>>>>>>> repositories for different "patterns" of deployment in Containers, 
>>>>>>>>> that
>>>>>>>>> requires a separate effort to be maintained for different releases. 
>>>>>>>>> Having
>>>>>>>>> low-config convention-based environment variables support is a 
>>>>>>>>> valuable
>>>>>>>>> addition to the C5 configuration lookup model since we've already 
>>>>>>>>> reduced
>>>>>>>>> the number of configuration files. deployment.yaml will anyway be 
>>>>>>>>> there,
>>>>>>>>> and I'm willing to bet that most clients would use that to make
>>>>>>>>> configuration changes. However, there are a set of clients who would
>>>>>>>>> require the convention-based environment variables for a
>>>>>>>>> smoother integration to Containerization than others.
>>>>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Regards,
>>>>>>>>> Chamila de Alwis
>>>>>>>>> Committer and PMC Member - Apache Stratos
>>>>>>>>> Senior Software Engineer | WSO2
>>>>>>>>> Blog: https://medium.com/@chamilad
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Wed, Aug 23, 2017 at 1:03 PM, Jayanga Dissanayake <
>>>>>>>>> jaya...@wso2.com> wrote:
>>>>>>>>>
>>>>>>>>>> @Nuwan, configs should be able to inject via
>>>>>>>>>> environment properties. What I am saying is all these configs should 
>>>>>>>>>> be
>>>>>>>>>> specified the in the deployment.yaml as {env:placeholder name}.
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>> Jayanga.
>>>>>>>>>>
>>>>>>>>>> *Jayanga Dissanayake*
>>>>>>>>>> Associate Technical Lead
>>>>>>>>>> WSO2 Inc. - http://wso2.com/
>>>>>>>>>> lean . enterprise . middleware
>>>>>>>>>> email: jaya...@wso2.com
>>>>>>>>>> mobile: +94772207259 <+94%2077%20220%207259>
>>>>>>>>>> <http://wso2.com/signature>
>>>>>>>>>>
>>>>>>>>>> On Wed, Aug 23, 2017 at 12:51 PM, Nuwan Dias <nuw...@wso2.com>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> @Jayanga, how do you make the server run elegantly on containers
>>>>>>>>>>> without being able to inject properties via env variables?
>>>>>>>>>>>
>>>>>>>>>>> On Wed, Aug 23, 2017 at 12:43 PM, Jayanga Dissanayake <
>>>>>>>>>>> jaya...@wso2.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi All,
>>>>>>>>>>>>
>>>>>>>>>>>> -1, for injecting configs without specifying it in the
>>>>>>>>>>>> deployment.yaml
>>>>>>>>>>>>
>>>>>>>>>>>> Reason: When analyzing most of the issues we request config
>>>>>>>>>>>> files (with C5 deployment.yaml) from the users to identify what 
>>>>>>>>>>>> are the
>>>>>>>>>>>> configuration changes. If we have at-least the place holders in 
>>>>>>>>>>>> the config
>>>>>>>>>>>> files, there is a guarantee that we know what are the injected
>>>>>>>>>>>> configuration and we could request the actual values of the 
>>>>>>>>>>>> configs we need.
>>>>>>>>>>>>
>>>>>>>>>>>> But with the suggested approach, we have to request the
>>>>>>>>>>>> 1)config files, 2)all the environment variables and get the union 
>>>>>>>>>>>> to
>>>>>>>>>>>> identify the changed configurations. IMO an additional effort.
>>>>>>>>>>>>
>>>>>>>>>>>> Hence considering the overhead on the support front I am -1 for
>>>>>>>>>>>> the suggested approach.
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks,
>>>>>>>>>>>> Jayanga.
>>>>>>>>>>>>
>>>>>>>>>>>> *Jayanga Dissanayake*
>>>>>>>>>>>> Associate Technical Lead
>>>>>>>>>>>> WSO2 Inc. - http://wso2.com/
>>>>>>>>>>>> lean . enterprise . middleware
>>>>>>>>>>>> email: jaya...@wso2.com
>>>>>>>>>>>> mobile: +94772207259 <+94%2077%20220%207259>
>>>>>>>>>>>> <http://wso2.com/signature>
>>>>>>>>>>>>
>>>>>>>>>>>> On Wed, Aug 23, 2017 at 9:16 AM, Danesh Kuruppu <
>>>>>>>>>>>> dan...@wso2.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> 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 <
>>>>>>>>>>>>> dan...@wso2.com> 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 <
>>>>>>>>>>>>>> chami...@wso2.com> 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: dan...@wso2.com
>>>>>>>>>>>>>> Mobile: +94 (77) 1690552 <+94%2077%20169%200552>
>>>>>>>>>>>>>> Web: WSO2 Inc <https://wso2.com/signature>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>>
>>>>>>>>>>>>> *Danesh Kuruppu*
>>>>>>>>>>>>> Senior Software Engineer | WSO2
>>>>>>>>>>>>>
>>>>>>>>>>>>> Email: dan...@wso2.com
>>>>>>>>>>>>> Mobile: +94 (77) 1690552 <+94%2077%20169%200552>
>>>>>>>>>>>>> Web: WSO2 Inc <https://wso2.com/signature>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>> Architecture mailing list
>>>>>>>>>>>>> Architecture@wso2.org
>>>>>>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> Architecture mailing list
>>>>>>>>>>>> Architecture@wso2.org
>>>>>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Nuwan Dias
>>>>>>>>>>>
>>>>>>>>>>> Software Architect - WSO2, Inc. http://wso2.com
>>>>>>>>>>> email : nuw...@wso2.com
>>>>>>>>>>> Phone : +94 777 775 729 <+94%2077%20777%205729>
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Architecture mailing list
>>>>>>>>>>> Architecture@wso2.org
>>>>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Architecture mailing list
>>>>>>>>>> Architecture@wso2.org
>>>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Thanks and Regards,
>>>>>>>>
>>>>>>>> Isuru H.
>>>>>>>> +94 716 358 048 <+94%2071%20635%208048>* <http://wso2.com/>*
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Lakmal Warusawithana
>>>>>>> Director - Cloud Architecture; WSO2 Inc.
>>>>>>> Mobile : +94714289692 <071%20428%209692>
>>>>>>> Blogs : https://medium.com/@lakwarus/
>>>>>>>             http://lakmalsview.blogspot.com/
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Thanks and Regards,
>>>>>>
>>>>>> Isuru H.
>>>>>> +94 716 358 048 <+94%2071%20635%208048>* <http://wso2.com/>*
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>>
>>> --
>>> Nuwan Dias
>>>
>>> Software Architect - WSO2, Inc. http://wso2.com
>>> email : nuw...@wso2.com
>>> Phone : +94 777 775 729 <+94%2077%20777%205729>
>>>
>>
>>
>
_______________________________________________
Architecture mailing list
Architecture@wso2.org
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to