@adp-psych/container-tools
v3.0.0
Published
Tools for using containers for psychology experiments
Maintainers
Readme
@adp-psych/container-tools
Tools for using containers for psychology experiments.
Usage
Installation
Install the package from npm (requires Node.js):
npm install --save-dev @adp-psych/container-toolsDependencies
These tools depend on the following software:
podman: A tool for running OCI containers. [Installation instructions]
buildah: A tool for building OCI images. [Installation instructions]
doctl: The DigitalOcean command-line interface. [Installation instructions]
kubectl: The Kubernetes command-line interface. [Installation instructions]
Helm: The Kubernetes package manager. [Installation instructions]
The above software must be installed and available via the system path for these tools to work.
Accounts
These tools require you to have a DigitalOcean account to host your experiments and a container registry account to host your containers (e.g., Quay.io).
DigitalOcean
Sign up for a DigitalOcean account and create a personal access token. I recommend creating a separate personal access token for each computer that will have access to your DigitalOcean account, and naming each token after the computer that will use it.
Configure doctl to access your account (replace $TOKEN with your token):
doctl auth init -t "$TOKEN"Then
create another personal access token
named ExternalDNS for
ExternalDNS to use.
Quay.io
Configure podman to access your account:
podman login quay.ioExecution
Show the usage information for each command:
npx build-container --help
npx build-helm-chart --help
npx build-kubernetes-configuration --help
npx create-digitalocean-domain --help
npx create-kubernetes-cluster --help
npx install-cert-manager --help
npx install-experiment --help
npx install-external-dns --help
npx install-wave --helpDevelopment
Cleaning
Remove generated files:
npm run cleanDocumentation
Generate documentation into the doc directory with
JSDoc:
npm run docLinting
Lint the project with ESLint and npm-package-json-lint:
npm run lintTesting
Test the command by running it:
npm run testDependencies
Check for new dependencies with npm-check:
npm run npm-checkRelease
Publish a release with np:
npm run releaseLegal Information
Copyright
Copyright © 2021, 2022 Anthony Di Pietro
License
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.
