I am not sure if the fix in
https://github.com/apache/pulsar/commit/04b5da0f95794259694cc781e8960b7e52fac06b
is sufficient.

I would like to see there is at least one integration test that covers
running functions on k8s to ensure we don't break the basic stuff.

- Sijie

On Fri, Jan 7, 2022 at 9:58 PM Michael Marshall <mmarsh...@apache.org>
wrote:

> > Is Functions being verified?
>
> I discussed this a bit in PR 13376's description and comments, please
> let me know if you have additional questions. I haven't done any extra
> verification.
>
> Note that since [0] is in both 2.8.x and 2.9.x, the upgrade scenario
> that led us to revert the first non-root work is no longer an issue.
>
> I plan to follow up with a PR to the Pulsar Helm Chart to make the
> fsGroup configurable.
>
> - Michael
>
> [0]
> https://github.com/apache/pulsar/commit/04b5da0f95794259694cc781e8960b7e52fac06b
>
> On Thu, Jan 6, 2022 at 7:00 PM Sijie Guo <guosi...@gmail.com> wrote:
> >
> > Is Functions being verified?
> >
> > - Sijie
> >
> > On Wed, Jan 5, 2022 at 11:26 AM Michael Marshall <mmarsh...@apache.org>
> > wrote:
> >
> > > PR 13376 is ready for review, PTAL.
> > >
> > > What approach should we take regarding docker image size?
> > > I propose providing a minimal image along with documentation
> > > on how to add your own debugging tools. Is that sufficient?
> > >
> > > I'd like to include this feature in 2.10.0.
> > >
> > > Note that you can test the new docker image here:
> > > michaelmarshall/pulsar:2.10.0-SNAPSHOT-1dec8b9
> > >
> > > Thanks,
> > > Michael
> > >
> > >
> > >
> > > On Wed, Dec 22, 2021 at 1:51 PM Michael Marshall <mmarsh...@apache.org
> >
> > > wrote:
> > > >
> > > > Thanks for raising this important topic, Enrico.
> > > >
> > > > > Basically if you are running as non root, you cannot add tools on
> > > demand,
> > > > > so we need to add basic tools, like netstat/vim/unzip.... otherwise
> > > when
> > > > > you have a problem you are trapped.
> > > >
> > > > I agree that running as a non root user presents challenges for
> > > > debugging. However, I don't think we should optimize our production
> > > > image for debugging. We should instead optimize for a minimal docker
> > > > image with as few dependencies as possible to decrease the image's
> > > > attack surface.
> > > >
> > > > Also, I think it would be valuable to audit the current
> > > > dependencies we already ship in our docker image. For example, this
> > > > single `RUN` command [0] adds 1 GB of dependencies to our
> > > > docker image.
> > > >
> > > > If there is a need for an image with debug tools, we could publish a
> > > > "debug" image that extends our production image with extra tooling.
> > > > Users could swap out the prod image with the debug image, as needed.
> > > > However, it is pretty easy and quick to extend a public docker image
> > > > to add your own tooling. By documenting how to extend our docker
> > > > image, we could avoid decisions about which tools should be in our
> > > > image.
> > > >
> > > > > there are ways to inject tools, but they are very hard to execute
> for
> > > > > people who is not very experienced
> > > >
> > > > We can solve this through additional documentation. Freeznet asked a
> > > > similar question about debugging on the PR. I provided some methods
> for
> > > > debugging here [1].
> > > >
> > > > Thanks,
> > > > Michael
> > > >
> > > > [0]
> > >
> https://github.com/apache/pulsar/blob/5dd60dbd748e446f8da396b448a5bb16a2ae6902/docker/pulsar/Dockerfile#L46-L55
> > > > [1]
> https://github.com/apache/pulsar/pull/13376#discussion_r773580954
> > > >
> > > >
> > > >
> > > >
> > > > On Wed, Dec 22, 2021 at 1:29 AM Enrico Olivelli <eolive...@gmail.com
> >
> > > wrote:
> > > > >
> > > > > Michael,
> > > > >
> > > > > I would like to add this item to the list
> > > > > https://github.com/apache/pulsar/pull/10815
> > > > >
> > > > > Basically if you are running as non root, you cannot add tools on
> > > demand,
> > > > > so we need to add basic tools, like netstat/vim/unzip.... otherwise
> > > when
> > > > > you have a problem you are trapped.
> > > > >
> > > > > there are ways to inject tools, but they are very hard to execute
> for
> > > > > people who is not very experienced
> > > > >
> > > > > Enrico
> > > > >
> > > > >
> > > > > Il giorno mer 22 dic 2021 alle ore 04:40 Haiting Jiang <
> > > > > jianghait...@apache.org> ha scritto:
> > > > >
> > > > > > > 1. Pulsar configuration is read in only from configuration
> files in
> > > > > > > `/pulsar/conf`. A non root user must be able to update these
> files
> > > to
> > > > > > > have run with custom configuration.
> > > > > >
> > > > > > About the configurations, I also see similar require like this
> > > lately [0].
> > > > > > IMHO, update any configs without redeploy service is a useful
> > > feature.
> > > > > > I would like post a PIP for this later.
> > > > > > Basic idea is like make all configs dynamic by default except
> > > > > > `metadataStoreUrl` and all configs are stored under path
> > > > > > "/admin/configuration" in metadata store.
> > > > > >
> > > > > > [0] https://github.com/apache/pulsar/pull/13074
> > > > > >
> > > > > > On 2021/12/21 20:16:44 Michael Marshall wrote:
> > > > > > > All tests are now passing for this PR [0]. I built the docker
> image
> > > > > > > and pushed it to my personal repository to simplify testing
> [1] for
> > > > > > > anyone interested in verifying the changes.
> > > > > > >
> > > > > > > I would like our docker image to be as close to immutable as
> > > possible.
> > > > > > > As far as I can tell, here are the only reasons the image
> cannot be
> > > > > > > immutable:
> > > > > > >
> > > > > > > 1. Pulsar configuration is read in only from configuration
> files in
> > > > > > > `/pulsar/conf`. A non root user must be able to update these
> files
> > > to
> > > > > > > have run with custom configuration.
> > > > > > > 2. The Pulsar function worker unpacks nar files to
> > > > > > > `/pulsar/download/pulsar_functions` by default.
> > > > > > > 3. Pulsar tiered storage writes to `/pulsar` by default when
> using
> > > > > > > filesystem storage.
> > > > > > > 4. The Presto SQL worker writes to `/pulsar/lib/presto/` by
> > > default.
> > > > > > > 5. Pulsar-admin and functions write to `/pulsar/log` by default
> > > > > > > (possibly other components too).
> > > > > > >
> > > > > > > Note that even though bookkeepers and zookeepers write to
> > > > > > > `/pulsar/data`, they should be writing to docker volumes, in
> which
> > > > > > > case, the host's file system permissions are all that matter.
> > > > > > >
> > > > > > > If we can remove any of the above reasons, we can decrease the
> > > > > > > privilege in the docker image.
> > > > > > >
> > > > > > > The PR has more detail. Please take a look.
> > > > > > >
> > > > > > > Thanks,
> > > > > > > Michael
> > > > > > >
> > > > > > > [0] https://github.com/apache/pulsar/pull/13376
> > > > > > > [1] michaelmarshall/pulsar:2.10.0-SNAPSHOT-1dec8b9
> > > > > > >
> > > > > > >
> > > > > > > On Fri, Dec 17, 2021 at 12:33 AM Michael Marshall <
> > > mmarsh...@apache.org>
> > > > > > wrote:
> > > > > > > >
> > > > > > > > Hi Pulsar Community,
> > > > > > > >
> > > > > > > > I opened a PR to make our pulsar and pulsar-all docker images
> > > non root
> > > > > > > > and OpenShift compliant [0]. As some may remember, we had
> issues
> > > with
> > > > > > > > these changes before due to lack of testing. I plan to test
> > > thoroughly
> > > > > > > > before we merge this PR, and it'd be great to have others
> test
> > > too. I
> > > > > > > > published a build of my PR [1]. I also have an issue [2]
> > > tracking this
> > > > > > > > work.
> > > > > > > >
> > > > > > > > Please take a look. I hope to make our 2.10 release a non
> root
> > > release!
> > > > > > > >
> > > > > > > > Thanks,
> > > > > > > > Michael
> > > > > > > >
> > > > > > > > [0] https://github.com/apache/pulsar/pull/13376
> > > > > > > > [1] michaelmarshall/pulsar:2.10.0-SNAPSHOT
> > > > > > > > [2] https://github.com/apache/pulsar/issues/11269
> > > > > > >
> > > > > >
> > >
>

Reply via email to