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 > > > > > > > > > > > > > > > > >