diff --git a/.idea/kiwi-config.iml b/.idea/kiwi-scp.iml similarity index 100% rename from .idea/kiwi-config.iml rename to .idea/kiwi-scp.iml diff --git a/.idea/modules.xml b/.idea/modules.xml index b44487f..c3e3153 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,7 +2,7 @@ - + - \ No newline at end of file + diff --git a/README.md b/README.md index 4ea4bf8..bd9f05a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# kiwi-config +# kiwi: simple, consistent, powerful The simple tool for managing container servers @@ -6,7 +6,7 @@ The simple tool for managing container servers ## Quick start - Learn to use `docker` with `docker-compose` -- Install kiwi-config +- Install kiwi-scp - Look at [the example instance](./example) - Look at the output of `kiwi --help` - Start building your own instances @@ -18,7 +18,7 @@ A convenience installer is available as [install.sh](./install.sh) in this direc You can `curl | sh` it using the following one-liner. ```shell script -curl --proto '=https' --tlsv1.2 -sSf 'https://raw.githubusercontent.com/ldericher/kiwi-config/master/install.sh' | sh +curl --proto '=https' --tlsv1.2 -sSf 'https://raw.githubusercontent.com/ldericher/kiwi-scp/master/install.sh' | sh ``` The installer downloads the `kiwi` launcher script and installs it to a location of your choice. @@ -26,12 +26,12 @@ Please consider installing into a directory inside your `$PATH`. Run in a root shell or use `sudo sh` instead for system-wide installation. You should now be able to run `kiwi init --show` and see the default configuration file. -This downloads the latest version of the main kiwi-config executable and sets it up for you. +This downloads the latest version of the main kiwi-scp executable and sets it up for you. ### Adjusting environment for `kiwi` -`kiwi-config` depends on Python 3.6 (or later), [pipenv](https://pipenv.pypa.io/), and +`kiwi-scp` depends on Python 3.6 (or later), [pipenv](https://pipenv.pypa.io/), and [less](http://www.greenwoodsoftware.com/less/) being in your `$PATH`. In some cases, notably when using a multi-version system such as @@ -52,29 +52,29 @@ contain: ## Get started -### Create a kiwi-config instance +### Create a kiwi-scp instance -Any directory is implicitly a valid `kiwi-config` instance using the default configuration. +Any directory is implicitly a valid `kiwi-scp` instance using the default configuration. To prevent surprises however, you should run `kiwi init` in an empty directory and follow its directions before actually using `kiwi` more. ### Concept -A `kiwi-config` instance is a directory containing a bunch of static configuration files. +A `kiwi-scp` instance is a directory containing a bunch of static configuration files. "Static" there as in "those don't change during normal service operation". These files could be anything from actual `.conf` files to entire html-web-roots. Non-static, but persistent files are to be kept in a "service data directory", by default `/var/kiwi`. In your `docker-compose.yml` files, you can refer to that directory as **${TARGETROOT}**. -Start the current directory as a `kiwi-config` instance using `kiwi up`, or stop it using `kiwi down`. +Start the current directory as a `kiwi-scp` instance using `kiwi up`, or stop it using `kiwi down`. This also creates kiwi's internal hub network, which you can use as **kiwi_hub** in your `docker-compose.yml` files. ### Projects -A `kiwi-config` instance usually contains several projects. +A `kiwi-scp` instance usually contains several projects. A project is a collection of dependent or at least logically connected services, described by a `docker-compose.yml`. A well-known example would be webserver + php + database. @@ -89,14 +89,14 @@ Each project will have its own place in the service data directory, which you ca Finally, start a project using `kiwi up `. -### Advanced kiwi-config +### Advanced kiwi-scp -`kiwi-config` extends the logical bounds of `docker-compose` to handling multiple projects. +`kiwi-scp` extends the logical bounds of `docker-compose` to handling multiple projects. #### The `kiwi_hub` -With kiwi-config, you get the internal kiwi_hub network for free. +With kiwi-scp, you get the internal kiwi_hub network for free. It allows for network communication between services in different projects. Be aware, services only connected to the kiwi_hub can't use a port mapping! In most cases, you will want to use this: diff --git a/example/hello-world.project/conf/html/index.html b/example/hello-world.project/conf/html/index.html index 869330c..a1d4a7e 100644 --- a/example/hello-world.project/conf/html/index.html +++ b/example/hello-world.project/conf/html/index.html @@ -16,7 +16,7 @@

Another Hello World!

-

This service uses an off-the-shelf image and the conf-directory feature of kiwi-config.

+

This service uses an off-the-shelf image and the conf-directory feature of kiwi-scp.

Greetings, nginx.

diff --git a/example/hello-world.project/web/index.html b/example/hello-world.project/web/index.html index 407e6bd..178aba6 100644 --- a/example/hello-world.project/web/index.html +++ b/example/hello-world.project/web/index.html @@ -15,9 +15,9 @@

Hello World!

-

kiwi-config works.

+

kiwi-scp works.

-

This is an example service on a custom image assembled by kiwi-config.
But wait, there's more!

+

This is an example service on a custom image assembled by kiwi-scp.
But wait, there's more!

Adminer

There's a mySQL database included in this project. Login with user root and password changeme.

diff --git a/example/kiwi.yml b/example/kiwi.yml index 1c2d4dc..38b90bb 100644 --- a/example/kiwi.yml +++ b/example/kiwi.yml @@ -1,6 +1,6 @@ -###################################### -# kiwi-config instance configuration # -###################################### +################################### +# kiwi-scp instance configuration # +################################### version: '0.1.1' diff --git a/install.sh b/install.sh index 0253da3..f4a3b06 100755 --- a/install.sh +++ b/install.sh @@ -7,7 +7,7 @@ # default installation directory INSTALL_DIR_DEFAULT="/usr/local/bin" # URI of "kiwi" launcher script -KIWI_URI="https://raw.githubusercontent.com/ldericher/kiwi-config/master/kiwi" +KIWI_URI="https://raw.githubusercontent.com/ldericher/kiwi-scp/master/kiwi" ############# # FUNCTIONS # @@ -47,7 +47,7 @@ if [ -x "${install_kiwi}" ]; then # kiwi is installed: Choose that directory install_dir="$(dirname "${install_kiwi}")" - if ! yes_no "kiwi-config found in '${install_dir}'. Overwrite?"; then + if ! yes_no "kiwi executable found in '${install_dir}'. Overwrite?"; then die "Uninstall existing '${install_kiwi}' first" fi diff --git a/kiwi b/kiwi index cfaf18b..0da25e8 100755 --- a/kiwi +++ b/kiwi @@ -9,23 +9,23 @@ KIWI_CONF_NAME="kiwi.yml" # version tag filename KIWI_VERSION_TAG="etc/version_tag" -# dependencies to run kiwi-config +# dependencies to run kiwi-scp KIWI_DEPS="python3 pipenv less docker docker-compose" # base install dir -KIWI_BASEDIR="${HOME}/.local/lib/kiwi-config" +KIWI_BASEDIR="${HOME}/.local/lib/kiwi-scp" # per-user env setup script KIWI_ENVFILE="${HOME}/.kiwienv" # repository uri -KIWI_REPO="https://github.com/ldericher/kiwi-config" +KIWI_REPO="https://github.com/ldericher/kiwi-scp" # use latest version by default KIWI_VERSION="master" # URI of "kiwi" launcher script -KIWI_URI="https://raw.githubusercontent.com/ldericher/kiwi-config/master/kiwi" -INSTALLER_URI="https://raw.githubusercontent.com/ldericher/kiwi-config/master/install.sh" +KIWI_URI="https://raw.githubusercontent.com/ldericher/kiwi-scp/master/kiwi" +INSTALLER_URI="https://raw.githubusercontent.com/ldericher/kiwi-scp/master/install.sh" # canary file: limit curl requests -CANARY_FILENAME="/var/lock/kiwi-config.canary" +CANARY_FILENAME="/var/lock/kiwi-scp.canary" CANARY_MAXAGE=600 @@ -33,7 +33,7 @@ CANARY_MAXAGE=600 # DYNAMIC STRINGS # ################### -# uri of correct kiwi-config archive +# uri of correct kiwi-scp archive kiwi_archive_uri() { echo "${KIWI_REPO}/archive/${KIWI_VERSION}.tar.gz" } @@ -50,7 +50,7 @@ kiwi_root() { # main script in installed version kiwi_executable() { - echo "$(kiwi_root)/kiwi-config.py" + echo "$(kiwi_root)/kiwi-scp.py" } # cache current work directory @@ -150,7 +150,7 @@ if [ "${run_kiwi_check}" = "yes" ]; then echo "" >/dev/stderr echo "####################" >/dev/stderr echo "Please manually update your kiwi launcher by re-running the installation process:" >/dev/stderr - echo "https://github.com/ldericher/kiwi-config/#installation" >/dev/stderr + echo "https://github.com/ldericher/kiwi-scp/#installation" >/dev/stderr echo "####################" >/dev/stderr echo "" >/dev/stderr @@ -163,14 +163,14 @@ fi # check if pwd is a kiwi folder if [ -f "./${KIWI_CONF_NAME}" ]; then - # determine needed kiwi-config version + # determine needed kiwi-scp version re_version_line='version\s*:\s*' eval "$(grep -E "${re_version_line}" "./${KIWI_CONF_NAME}" | sed -r "s/${re_version_line}/KIWI_VERSION=/")" fi -# install if kiwi-config not found +# install if kiwi-scp not found if [ ! -x "$(kiwi_executable)" ]; then - printf "Installing kiwi-config v%s into %s ... " "${KIWI_VERSION}" "${KIWI_BASEDIR}" + printf "Installing kiwi-scp v%s into %s ... " "${KIWI_VERSION}" "${KIWI_BASEDIR}" # switch to temp dir tmpdir=$(mktemp -d) @@ -180,7 +180,7 @@ if [ ! -x "$(kiwi_executable)" ]; then curl --proto '=https' --tlsv1.2 -sSfL "$(kiwi_archive_uri)" | tar xz # read archive version tag - cd "kiwi-config-${KIWI_VERSION}" || : + cd "kiwi-scp-${KIWI_VERSION}" || : KIWI_VERSION=$(cat "./src/${KIWI_VERSION_TAG}") if [ -x "$(kiwi_executable)" ]; then diff --git a/src/etc/command_help.txt b/src/etc/command_help.txt index 30381fd..33c0376 100644 --- a/src/etc/command_help.txt +++ b/src/etc/command_help.txt @@ -5,7 +5,7 @@ Commands for Operation: restart Restart the whole instance, a project or service(s) inside a project Commands for Instance Management: - init Initialize or reconfigure kiwi-config instance + init Initialize or reconfigure kiwi-scp instance show Show projects in this instance, services inside a project or service(s) inside a project cmd Run raw docker-compose command in a project diff --git a/src/etc/kiwi_header.yml b/src/etc/kiwi_header.yml index 95d3b8f..70a66ca 100644 --- a/src/etc/kiwi_header.yml +++ b/src/etc/kiwi_header.yml @@ -1,3 +1,3 @@ -###################################### -# kiwi-config instance configuration # -###################################### +################################### +# kiwi-scp instance configuration # +################################### diff --git a/src/etc/kiwi_help.txt b/src/etc/kiwi_help.txt index 97b462c..08d0224 100644 --- a/src/etc/kiwi_help.txt +++ b/src/etc/kiwi_help.txt @@ -1,4 +1,4 @@ -kiwi-config is the simple tool for managing container servers. +kiwi is the simple tool for managing container servers. Features: - Group services into projects using their own docker-compose.yml diff --git a/src/kiwi/_constants.py b/src/kiwi/_constants.py index 11726b0..8c33fed 100644 --- a/src/kiwi/_constants.py +++ b/src/kiwi/_constants.py @@ -7,14 +7,14 @@ import os # location of "src" directory to use KIWI_ROOT = os.getenv('KIWI_ROOT', ".") -# default name of kiwi-config file +# default name of kiwi-scp file KIWI_CONF_NAME = os.getenv('KIWI_CONF_NAME', "kiwi.yml") ############ # FILE NAMES -# text files inside kiwi-config "src" directory +# text files inside kiwi-scp "src" directory HEADER_KIWI_CONF_NAME = f"{KIWI_ROOT}/etc/kiwi_header.yml" DEFAULT_KIWI_CONF_NAME = f"{KIWI_ROOT}/etc/kiwi_default.yml" VERSION_TAG_NAME = f"{KIWI_ROOT}/etc/version_tag" @@ -32,5 +32,5 @@ IMAGES_DIRECTORY_NAME = f"{KIWI_ROOT}/images" # DOCKER IMAGE NAMES # name for auxiliary docker images -LOCAL_IMAGES_NAME = 'localhost/kiwi-config/auxiliary' +LOCAL_IMAGES_NAME = 'localhost/kiwi-scp/auxiliary' DEFAULT_IMAGE_NAME = 'alpine:latest' diff --git a/src/kiwi/config.py b/src/kiwi/config.py index d5de124..00c0dfc 100644 --- a/src/kiwi/config.py +++ b/src/kiwi/config.py @@ -14,7 +14,7 @@ class Config: __yml_content = {} __keys = { - 'version': "kiwi-config version to use in this instance", + 'version': "kiwi-scp version to use in this instance", 'runtime:storage': "local directory for service data", 'runtime:shells': "shell preference for working in service containers", diff --git a/src/kiwi/subcommand.py b/src/kiwi/subcommand.py index 072ce3f..b5955d3 100644 --- a/src/kiwi/subcommand.py +++ b/src/kiwi/subcommand.py @@ -37,7 +37,7 @@ class SubCommand: """actually run command with parsed CLI args""" # run for entire instance - logging.info(f"{self._action} kiwi-config instance at '{os.getcwd()}'") + logging.info(f"{self._action} kiwi-scp instance at '{os.getcwd()}'") return self._run_instance(runner, args) diff --git a/src/kiwi/subcommands/init.py b/src/kiwi/subcommands/init.py index acca724..d5174be 100644 --- a/src/kiwi/subcommands/init.py +++ b/src/kiwi/subcommands/init.py @@ -15,7 +15,7 @@ class InitCommand(SubCommand): super().__init__( 'init', action=f"Initializing '{KIWI_CONF_NAME}' in", - description="Initialize or reconfigure kiwi-config instance" + description="Initialize or reconfigure kiwi-scp instance" ) # -f switch: Initialize with default config diff --git a/src/kiwi/subcommands/show.py b/src/kiwi/subcommands/show.py index a321a97..23ee8ce 100644 --- a/src/kiwi/subcommands/show.py +++ b/src/kiwi/subcommands/show.py @@ -35,7 +35,7 @@ class ShowCommand(ServiceCommand): ) def _run_instance(self, runner, args): - print(f"kiwi-config instance at '{os.getcwd()}'") + print(f"kiwi-scp instance at '{os.getcwd()}'") print("#########") projects = Projects.from_dir()