Observed since 20 Oct, 21:14 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
A configuration tool for ignition based systems
Ignition-based systems have a 'one-shot' system configuration, which needs to be generally available to all instances. This means that if you are deploying a service that requires configured secrets, you might be tempted to place them in the Ignition config. However, doing so would involve storing secrets in plain text (potentially uploading them to a hosting service). Not only is this insecure, but it also doesn't truly solve the problem since these secrets are likely to rotate, rendering any static values in the Ignition configuration invalid. This service is intended to allow secret provisioning after boot, similar to how you would provision other servers. This aligns with the general principles of other configuration tools such as Ansible and Puppet
This service uses ssh and scp to copy across configuration files and uses parent/child semantics where the parent provisions the child. A typical boot up flow may look like this:
afterglow child <...> providing private key
afterglow parent <...> including child public key connecting to childscp for each configured files.0 on successful provisioning--lock-path containing <file tag> = <sha256sum> key value pairs
In the case of copy failure the child process keeps running waiting up to timeout for a new parent connection which succeeds.
parent or childusage: afterglow [-h] [parent | child] ...
Copy files from one machine to another
positional arguments:
[parent | child]
child copy files onto this machine
parent copy files from this machine
usage: afterglow parent [-h] --private-key PRIVATE_KEY --child-key CHILD_KEY --ip IP --port PORT --files FILES [FILES ...] [--timeout TIMEOUT]
options:
-h, --help show this help message and exit
--private-key PRIVATE_KEY
Path to private key file
--child-key CHILD_KEY
Path to childs public key
--ip IP The ip addres to connect to
--port PORT The port to connect to
--files FILES [FILES ...]
Colon seperated file:path mapping
--timeout TIMEOUT The time window for which files are expeted to be copied across
usage: afterglow child [-h] --private-key PRIVATE_KEY --port PORT --files FILES [FILES ...] [--timeout TIMEOUT]
options:
-h, --help show this help message and exit
--private-key PRIVATE_KEY
Path to private key file
--port PORT The port on which the server will listen
--files FILES [FILES ...]
Colon seperated file:path mapping
--lock-path LOCK_PATH Path to write the lock file to upon successfull provisioning
--timeout TIMEOUT The time window for which files are expeted to be copied across
Simplify docker packaging
Docker or Podman (pass USE_PODMAN=1 to use podman)
The pyproject.toml file needs to have a version set correctly
build: Builds the Docker or Podman image using the specified Dockerfile and assigns appropriate tags based on the project's version defined in pyproject.toml.
run: Runs the Docker or Podman container with the specified runtime arguments (RUN_ARGS). It also allows additional runtime arguments to be passed (DOCKER_ARGS).
clean: Removes the Docker or Podman image and the running container associated with the project. It stops the running container, removes it, and deletes the image.
rebuild: clean build
rerun: rebuild run
push: Push image to docker hub
help: Show help information
docker run \
-v ~/.ssh:/root/.ssh:ro \
-v `pwd`:/host \
-p 127.0.0.1:8022:8022 \
dataligand/afterglow:latest child \
--files test_file:/host/child/files \
--lock-path /host/afterglow.lock \
--private-key /root/.ssh/id_ed25519 \
--port 8022
docker run \
-v ~/.ssh:/root/.ssh:ro \
-v `pwd`:/root/files:ro \
--network host \
dataligand/afterglow:latest parent \
--files test_file:/root/files/test_file \
--private-key /root/.ssh/id_ed25519 \
--child-key /root/.ssh/id_ed25519.pub \
--ip localhost \
--port 8022
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.1.0.dev0 | 23 Jul 2023 | 3 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 21:14 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:b6d77a1a310c81f9faff577ad6d894a112d2e661671b586e1c6b51b91529c691