mirror of
https://github.com/yavook/kiwi-scp.git
synced 2024-12-24 02:12:59 +00:00
project renamed
This commit is contained in:
parent
3faa629a13
commit
fd8a2f201e
16 changed files with 48 additions and 48 deletions
|
@ -2,7 +2,7 @@
|
|||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/kiwi-config.iml" filepath="$PROJECT_DIR$/.idea/kiwi-config.iml" />
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/kiwi-scp.iml" filepath="$PROJECT_DIR$/.idea/kiwi-scp.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
</project>
|
||||
|
|
26
README.md
26
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 <project-name>`.
|
||||
|
||||
|
||||
### 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:
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
<body>
|
||||
<h1>Another Hello World!</h1>
|
||||
|
||||
<p>This service uses an off-the-shelf image and the conf-directory feature of kiwi-config.</p>
|
||||
<p>This service uses an off-the-shelf image and the conf-directory feature of kiwi-scp.</p>
|
||||
|
||||
<p><em>Greetings, nginx.</em></p>
|
||||
</body>
|
||||
|
|
|
@ -15,9 +15,9 @@
|
|||
|
||||
<body>
|
||||
<h1>Hello World!</h1>
|
||||
<h2>kiwi-config works.</h2>
|
||||
<h2>kiwi-scp works.</h2>
|
||||
|
||||
<p>This is an example service on a custom image assembled by kiwi-config.<br /> But wait, there's more!</p>
|
||||
<p>This is an example service on a custom image assembled by kiwi-scp.<br /> But wait, there's more!</p>
|
||||
|
||||
<a href="//localhost:8081"><h3>Adminer</h3></a>
|
||||
<p>There's a mySQL database included in this project. Login with user <q>root</q> and password <q>changeme</q>.</p>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
######################################
|
||||
# kiwi-config instance configuration #
|
||||
######################################
|
||||
###################################
|
||||
# kiwi-scp instance configuration #
|
||||
###################################
|
||||
|
||||
version: '0.1.1'
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
26
kiwi
26
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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
######################################
|
||||
# kiwi-config instance configuration #
|
||||
######################################
|
||||
###################################
|
||||
# kiwi-scp instance configuration #
|
||||
###################################
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
|
Loading…
Reference in a new issue