kubecraft v0.0.8
Kubecraft
Kubecraft is a Kubernetes deployment utility.
Prerequisits
- Docker Desktop
- kubectl
- Kompose
- Node and NPM
Dockerfile
/docker-compose.yaml
files: your application must have either aDockerfile
(Docker) or adocker-compose.yaml
(docker-compose).
Setup
Add or update your
.env
file to include the following values:DOCKER_REGISTRY=[Your Docker Registry URL]
(e.g.myregistry.azurecr.io
)- If you are not using a
package.json
file, addVERSION=[semver]
(e.g,VERSION=0.0.1
)
Log in to your docker registry:
docker login --username [Docker Registry user name] --pasword [Docker Registry password] [Docker Registry URL]
Install
kubecraft
either locally or globally:Local installation:
npm install -d kubecraft
Add a script in
package.json
, for example:{ "name": "my-service", "license": "MIT", "version": "0.0.2", "main": "src/start.js", "repository": "...", "scripts": { "start": "babel-node ./src/start.dev.js", "deploy": "kubecraft deploy" },
Global installation
npm install -g kubecraft
Run kubecraft
If you installed kubecraft
globally, simply execute kubecraft [command]
with one of the commands listed beloy in the root folder for your project (assuming that is where either the Dockerfile
or the docker-compose.yaml
file are located)
If you installed kubecraft
locally, you should be able to either use an npm script, or you could run
export PATH=$PWD/bin:$PATH
to make the kubecraft
command available in your terminal session.
Kubecraft commands
kubecraft [command]
deploy
- Deploy the your application to Kubernetes (combination of all the commands below)createDockerCompose
: Create a basic docker-compose for you application (if one does not exist)buildAndPush
: Build your Docker image and push it to the Docker regsitryprep
- Prepare your application for deployement (build, configure and convert docker-compose to a Kubernetes config)dockerComposeConfig
: Produce a concrete docker-compose file, applying any enviornment variables defined in.env
to thedocker-compose.yaml
file. Producesdocker-compose-resolved.yaml
komposeConvert
- Convertdocker-compose-resolved.yaml
to a Kubernetes configuration. Produceskompose.yaml
apply
- Apply thekompose.yaml
configuration to the currently active cluster.expose
- Expose your application using a Load Balancer. When completed, provides the newly deployed service's IP address.