/keystore-generator

Generates SSL keys

Primary LanguagePythonApache License 2.0Apache-2.0

keystore-generator

If you are beginning your journey with Senzing, please start with Senzing Quick Start guides.

You are in the Senzing Garage where projects are "tinkered" on. Although this GitHub repository may help you understand an approach to using Senzing, it's not considered to be "production ready" and is not considered to be part of the Senzing product. Heck, it may not even be appropriate for your application of Senzing!

Synopsis

Generates a client and server java keystore that is used to provide client SSL authentication for Senzing API Server and Senzing POC Server.

Overview

The keystore-generator.py python script is a "run-to-completion" job that generates a client and server java keystore in a stipulated folder.

The senzing/kenstore-generator Docker image is a wrapper for use in Docker formations (e.g. docker-compose, kubernetes).

To see all of the subcommands, run:

$ ./keystore-generator.py
usage: keystore-generator.py [-h] {aws,sleep,version,docker-acceptance-test} ...

Initialize Senzing installation. For more information, see https://github.com/senzing-garage/keystore-generator

positional arguments: {aws,sleep,version,docker-acceptance-test}
Subcommands (SENZING_SUBCOMMAND):
    aws                 Create a keystore for AWS
    sleep               Do nothing but sleep. For Docker testing.
    version             Print version of program.
    docker-acceptance-test
                        For Docker acceptance testing.

optional arguments:
  -h, --help            show this help message and exit

Contents

  1. Preamble
    1. Legend
  2. Expectations
  3. Demonstrate using Docker
  4. Demonstrate using docker-compose
  5. Configuration
  6. License
  7. References

Preamble

At Senzing, we strive to create GitHub documentation in a "don't make me think" style. For the most part, instructions are copy and paste. Whenever thinking is needed, it's marked with a "thinking" icon 🤔. Whenever customization is needed, it's marked with a "pencil" icon ✏️. If the instructions are not clear, please let us know by opening a new Documentation issue describing where we can improve. Now on with the show...

Legend

  1. 🤔 - A "thinker" icon means that a little extra thinking may be required. Perhaps there are some choices to be made. Perhaps it's an optional step.
  2. ✏️ - A "pencil" icon means that the instructions may need modification before performing.
  3. ⚠️ - A "warning" icon means that something tricky is happening, so pay attention.

Expectations

  • Space: This repository and demonstration require 6 GB free disk space.
  • Time: Budget 15 minutes to get the demonstration up-and-running, depending on CPU and network speeds.
  • Background knowledge: This repository assumes a working knowledge of:

Demonstrate using Docker

  1. ✏️ Specify the subcommand Example:

    export SENZING_SUBCOMMAND=aws
  2. Run Docker container. Example:

    sudo --preserve-env docker run \
      --env SENZING_SUBCOMMAND \
      --rm \
      senzing/keystore-generator

Demonstrate using docker-compose

  1. ✏️ Specify a new directory to hold demonstration artifacts on the local host. Example:

    export SENZING_VOLUME=~/my-senzing
    1. ⚠️ macOS - File sharing must be enabled for SENZING_VOLUME.
    2. ⚠️ Windows - File sharing must be enabled for SENZING_VOLUME.
  2. Set environment variables. Example:

    export SENZING_ETC_DIR=${SENZING_VOLUME}/etc
  3. Create directories. Example:

    mkdir -p ${SENZING_ETC_DIR}
  4. ✏️ Specify environment... Example:

    export SENZING_SUBCOMMAND=aws
  5. Get versions of Docker images. Example:

    curl -X GET \
        --output ${SENZING_VOLUME}/docker-versions-stable.sh \
        https://raw.githubusercontent.com/Senzing/knowledge-base/main/lists/docker-versions-stable.sh
    source ${SENZING_VOLUME}/docker-versions-stable.sh
  6. Download docker-compose.yaml and Docker images. Example:

    curl -X GET \
        --output ${SENZING_VOLUME}/docker-compose.yaml \
        "https://raw.githubusercontent.com/Senzing/keystore-generator/main/docker-compose.yaml"
    cd ${SENZING_VOLUME}
    sudo --preserve-env docker-compose pull
  7. Bring up Senzing docker-compose stack. Example:

    cd ${SENZING_VOLUME}
    sudo --preserve-env docker-compose up
  8. Allow time for the components to be downloaded, start, and initialize.

    1. There will be errors in some Docker logs as they wait for dependent services to become available. docker-compose isn't the best at orchestrating Docker container dependencies.

Configuration

Configuration values specified by environment variable or command line parameter.

License

View license information for the software container in this Docker image. Note that this license does not permit further distribution.

This Docker image may also contain software from the Senzing GitHub community under the Apache License 2.0.

Further, as with all Docker images, this likely also contains other software which may be under other licenses (such as Bash, etc. from the base distribution, along with any direct or indirect dependencies of the primary software being contained).

As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies with any relevant licenses for all software contained within.

References

  1. Development
  2. Errors
  3. Examples
  4. Related artifacts:
    1. DockerHub
    2. Helm Chart