Hi Enrico,

Thank you for your feedback!

I want to add more context to the issues you mentioned here:

1. Migration plan: The proposed changes are backward compatible, it still
allows the current configuration scheme (using command line), only that it
allows an optional alternative way of providing function configs. All the
existing functions and code will not be affected. Also, this change only
affects the `JavaInstanceStarter` (or equivalent in other languages) which
is not exposed to end users. It is used by Pulsar Worker which composes a
start shell command to call the `JavaInstanceRunner`. We don't need to
change anything in the Pulsar Worker as it still can use the old
configuration scheme(using command line).


2. Security concerns: For important security configs, the file will only be
read once when the function instance starts, and later changes to the
config file won't take effect.  Secondly, for scenarios that do use config
files, they can choose to generate the config file right before the
function instance launches. I believe it provides a similar security
guarantee as the command line args. For example, if an attacker can change
the mounted ConfigMap in k8s, then it is likely they can modify the start
command as well.

In the proposed changes we mentioned dynamically reading configs from
files, but that will only be limited to some nonsensitive config entries,
currently, there is only one: `parallelism`. That being said, we need to be
careful in the implementation to make sure adding this proposed change
should not change any existing functionalities and security guarantees.

Basically, this proposed change is not to replace the existing
configuration scheme, but to add a new option on top of the existing
configuration scheme.

Hope this helps a bit. Let me know if these address your concerns and thank
you for your valuable feedback again!

Cheers,
Yufei



On Fri, Dec 9, 2022 at 8:02 AM Yufei Zhang <affei...@gmail.com> wrote:

> Hi Enrico,
>
> Sure, we can go back to the discussion thread and I'll pause this voting
> thread for now until we address the concerns in the design.
>
> Cheers,
> Yufei
>
> On Fri, Dec 9, 2022 at 6:05 AM Enrico Olivelli <eolive...@gmail.com>
> wrote:
>
>> -1 (binding)
>> sorry I missed the discussion.
>>
>> It is not clear to me about the security model of this change.
>> The command line is not updatable for a process but other users may be
>> able
>> to update the configuration file or access tokens or other security
>> parameters.
>>
>> Also we need to define a migration plan and draw well the upgrade story
>> for
>> an existing cluster with running functions. In k8s it is possible that the
>> function use a different docker image than the function worker.
>>
>> I will follow up on the discussion thread
>>
>>
>> Enrico
>>
>> Il Gio 8 Dic 2022, 05:11 Rui Fu <r...@apache.org> ha scritto:
>>
>> > +1
>> >
>> > Best,
>> >
>> > Rui Fu
>> > On Dec 8, 2022, 07:48 +0800, Yufei Zhang <affei...@gmail.com>, wrote:
>> > > Hi all,
>> > >
>> > > I'm starting the vote for PIP-225: Pulsar Functions fetch parameters
>> from
>> > > local config file:
>> > > https://github.com/apache/pulsar/issues/18744
>> > >
>> > > Here is the discussion thread:
>> > > https://lists.apache.org/thread/3m6z7jgn71nzd3ng3x73vsxvd4b1jjcp
>> > >
>> > > The vote will be open for at least 3 days.
>> > >
>> > > Cheers,
>> > > Yufei
>> >
>>
>

Reply via email to