There are some teams adapting keywhiz to their environments, but I’d rather not speak publicly for them. I think usually takes longer to add infrastructure than pulling in other projects like a database or library, so the project is still really recently open-sourced. We’ve tried to consider what types of features or problems others may run in to, but I am certain there are many we have not thought of.
We will continue to keep working on softening edges, adding functionality, and documenting areas of knowledge, starting with questions people bring up. As much as possible, we try to not lock people to more infrastructure decisions than necessary while also trying to provide something work-able to start from. A great example is that Keywhiz requires some sort of PKI system. PKI can be crazy complex and many organizations have something in place, all wildly different. We suggest certstrap as somewhere to start that’s as easy as we can think ok.
Thanks for writing your email. It’s really useful information on difficult spots. I’ll try to touch on the specifics you mentioned for you and posterity.
What are the CLI options?
The CLI options are best viewed by getting the usage. If invoked as keywhiz.cli --help
, it will output them all. There’s a more detailed wiki page for it with some examples.
Should I run things in daemons and with what kind of isolation?
I assume you’re referring to Keywhiz server. Keywhiz server starts with an embedded jetty server and the process will not exit until shutdown. I definitely recommend service supervision and we use runit. For KeywhizFs we use monit and other monitoring to ensure mountpoints are working.
What kind of working knowledge should I assemble before I attempt to even touch this product?
This is hard for me to enumerate, but I’d say rudimentary knowledge of certificates and TLS, using the mount command and some unix basics around fstab, DevOps knowledge around service deployment and databases, and probably some modern Java.
What database(s) is required locally for testing?
Keywhiz initially used PostgreSQL. We’re adding support for MySQL on master, and very soon the default with be H2 for development & test environments. H2 is an embedded, in-memory DB so no additional setup will be needed (as opposed to installing/setting-up PostgreSQL).
How do I compile keywhiz.model to run it’s test DB against a remote database?
All the relevant settings are in keywhiz-model’s pom.xml. I suppose it would just be changing the DB URLs and information you need for authentication. I wouldn’t typically use a remote database for this. The coming changes to supporting more database types will make the relevant settings more clear and easier to change by using maven profiles.
Where’s the “config file”?
When Keywhiz server is invoked, it requires a path to a configuration file as a command-line argument. This is is a DropWizard configuration with some Keywhiz-specific settings.
Where are sample configurations?
keywhiz-development.yaml is a sample configuration. All of the secret values and keystores should be changed for a staging and production deployment.
Where are some architecture diagrams?
Here’s an overview:
+---------------+ +----------------+
|KeywhizFs mount+--+ +> |Keywhiz server 1+---+
+---------------+ | | +----------------+ |
| | | +------------+
+---------------+ | | +----------------+ | |R/W database|
|KeywhizFs mount+--> +> |Keywhiz server 2+-----> |cluster |
+---------------+ | +-----------------+ | +----------------+ | +------------+
+> |TCP load balancer+--+ |
+---------------+ | +-----------------+ | . | +------------+
|KeywhizFs mount+--> | . | |R/O database|
+---------------+ | | . +-> |cluster |
| | | +------------+
+---------------+ | | +----------------+ |
|KeywhizFs mount+--+ +> |Keywhiz server 3+---+
+---------------+ +----------------+
--
You received this message because you are subscribed to the Google Groups "keywhiz-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to keywhiz-user...@googlegroups.com.
To post to this group, send email to keywhi...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/keywhiz-users/ab73333f-7d2e-4468-8492-56886138f5b5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
You received this message because you are subscribed to a topic in the Google Groups "keywhiz-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/keywhiz-users/aqwkEKLnkyE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to keywhiz-user...@googlegroups.com.
To post to this group, send email to keywhi...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/keywhiz-users/CAEVqHxnyV2V%2B8RKFjFA8P22SfqJEZ-FVuGj2N4fu7RZ2dX_9VQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/keywhiz-users/CAK296eNnga7hS0C%2B7-1ZgVDmijeJiZwfpD9OB-rYmaGT-%2BmQ_w%40mail.gmail.com.
git clone https://github.com/square/keywhiz.git && cd keywhiz
then ran
mvn package -am -pl server -P mysql
0.7.9 looks familiar, but I'll confirm when back in the office on monday.
I was trying to build on an Ubuntu 14.04 VM (xen).
mysql is db of choice (I had set up a mariadb galera cluster).
It's all dev at the moment.
As for docker, management are looking at deploying our own company's app using docker, so it would definitely be something I'd consider.
Hope this helps. If you need any more info, I can look at it again on Monday. I can probably throw a little more time at it then, but not much.
If you want me to run through an install and flag things in more detail, happy to do so.
Nearly bedtime here, so have a good weekend and talk to you guys next week.
Al
You received this message because you are subscribed to a topic in the Google Groups "keywhiz-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/keywhiz-users/aqwkEKLnkyE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to keywhiz-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/keywhiz-users/CAGKXR4suF-oFD9_ucPciedt9iyPyrx50QYVgMuH-XcCWtD_j3A%40mail.gmail.com.