Agree with the changes proposed. It is rather annoying to have to edit
gateway.sh to apply changes when external environment variables are useful.
This work would also help support a Docker image (KNOX-1285) since we would
run into the same customization issues.

Kevin Risden


On Thu, Oct 11, 2018 at 11:12 AM Lars Francke <lars.fran...@gmail.com>
wrote:

> Thanks both of you.
>
> No, these changes would benefit me and this is my use case but we would not
> need to add anything parcel or cloudera specific. And I think that while I
> have a specific need they are useful in general as well.
>
> It would probably be an overhaul of gateway.sh, knox-env.sh and knoxcli.sh.
> Maybe a few changes to Launcher.
>
>
>
> On Thu, Oct 11, 2018, 16:50 larry mccay <larry.mc...@gmail.com> wrote:
>
> > This sounds like a worthwhile piece of work, Lars.
> > Would the "parcel" need to be added to the Knox project?
> >
> > +1 to Phil's response.
> >
> >
> > On Thu, Oct 11, 2018 at 9:33 AM Phil Zampino <pzamp...@apache.org>
> wrote:
> >
> > > Cloudera specifics aside, some of these things have been on my personal
> > > "back burner" todo list; I just haven't as of yet been able to bring
> them
> > > to the front burner ;-)
> > >
> > > Please feel free to create issues for these, and provide patches as
> > you're
> > > able.
> > >
> > > Thanks for this useful feedback,
> > >    Phil
> > >
> > >
> > > On Thu, Oct 11, 2018 at 8:43 AM Lars Francke <lars.fran...@gmail.com>
> > > wrote:
> > >
> > > > Hi again,
> > > >
> > > > (long intro, jump to the line with the XXXXX if you're not interested
> > in
> > > > the background)
> > > >
> > > > I'm sorry for all the mails, they all come from my quest to get Knox
> > > > packaged up as a Cloudera Parcel plus a CSD (Custom Service
> Descriptor)
> > > to
> > > > run it from Cloudera Manager (CM) similar to what Ambari currently
> > > allows.
> > > > I did the same for NiFi and was facing similar issues there (e.g. <
> > > > https://issues.apache.org/jira/browse/NIFI-5350>, <
> > > > https://issues.apache.org/jira/browse/NIFI-5573> and others).
> > > >
> > > > For people unfamiliar with Cloudera Manager I'll explain how it
> works.
> > > That
> > > > should make it clearer why I have the issues I describe below.
> > > >
> > > > Cloudera Manager extracts the "things" it manages into a directory
> > (e.g.
> > > > /opt/cloudera/parcels/KNOX) and they are owned by root:root. This is
> > not
> > > to
> > > > be changed by any process (e.g. no configuration file changes, no
> > > changing
> > > > of symlinks, no storing of PIDs, logs etc.).
> > > >
> > > > Every time a process (e.g. Knox Gateway) is started CM creates a new
> > > > directory (/var/run/cloudera-scm-agent/process/XXX) where it
> > > copies/creates
> > > > the necessary config files + keytabs for _this run_ of the tool.
> > > >
> > > > It then starts the processes by pointing them at this directory, so
> > they
> > > > can pick up their config there and it also captures stdout & stderr
> in
> > > this
> > > > folder.
> > > >
> > > > This is different from Ambari. Ambari extracts Knox and creates
> > symlinks
> > > > from its conf, logs, pids and data directory to /etc/XXX. This is
> > > possible
> > > > here because those directories (/etc/...) don't change.
> > > >
> > > >
> > > > XXXXXXXXX
> > > >
> > > >
> > > > The problems I have with Knox so far (I'm sure I'll find more the
> > > further I
> > > > get) are:
> > > >
> > > > * gateway.sh has no way to take in options from the "outside". With
> > > Hadoop,
> > > > HBase, (now) NiFi you can pass in arbitrary Java options using
> > variables
> > > > like HADOOP_JAVA_OPTS and similar.
> > > >
> > > > In theory all the "setup" is already there for Knox as well using
> > > variables
> > > > like APP_CONF_DIR but unfortunately, they get set to hardcoded values
> > at
> > > > the beginning of the script.
> > > >
> > > > Proposal: Add at least a APP_JAVA_OPTS variable so I can pass in
> > > arbitrary
> > > > stuff to be added to the Java command line. But really, I'd love to
> > just
> > > > remove the defaults for APP_LOG_DIR etc. IFF they are already set
> > > > externally
> > > >
> > > > * gateway.sh checks whether various directories exist. These are
> > > hardcoded
> > > > (e.g. APP_HOME_DIR/conf). But those directories are configurable
> using
> > > > GATEWAY_HOME etc. so those checks should either be removed or fixed,
> so
> > > > they take those variables into account
> > > >
> > > > * knoxcli create-master takes a --master argument which I only found
> > out
> > > by
> > > > looking at Ambari. The source says it's for testing only. It seems as
> > if
> > > > that should be documented though. I think it's pretty useful to allow
> > the
> > > > master being created non-interactively
> > > >
> > > > * gateway.sh does allow one thing to be overridden externally and
> that
> > is
> > > > the pid dir using ENV_PID_DIR. Unfortunately, knox-env.sh (which is
> > being
> > > > sourced unconditionally) overrides this variable with an empty
> value. I
> > > > think this line should just be removed from knox-env.sh
> > > >
> > > > * Launcher looks for a file called gateway.cfg but it always and
> > > > unconditionally looks in its "own" directory (launcherDir). I need a
> > way
> > > to
> > > > point this to a different location. It allows me to define
> GATEWAY_HOME
> > > as
> > > > a system property. While I can also define that as an environment
> > > variable
> > > > the System property is checked first. And if it finds a
> > gateway-site.xml
> > > > there it uses that. I need it to use the one from the environment
> > > variable.
> > > >
> > > > * gateway.sh allows the process to run in the foreground but still
> > > captures
> > > > stdout & stderr to files. I would argue that it makes more sense to
> > leave
> > > > them as is and print them to the console instead.
> > > >
> > > > I'm happy to create issues for all of these and also provide patches
> > for
> > > > some/all of them depending on my available time. I just wanted to
> bring
> > > > this up before I started to see if anyone has any better ideas and/or
> > > > things that I might have missed.
> > > >
> > > > Thanks for reading!
> > > >
> > > > Cheers,
> > > > Lars
> > > >
> > >
> >
>

Reply via email to