kubecraft v0.0.8
Kubecraft
Kubecraft is a Kubernetes deployment utility.
Prerequisits
- Docker Desktop
- kubectl
- Kompose
- Node and NPM
Dockerfile/docker-compose.yamlfiles: your application must have either aDockerfile(Docker) or adocker-compose.yaml(docker-compose).
Setup
Add or update your
.envfile to include the following values:DOCKER_REGISTRY=[Your Docker Registry URL](e.g.myregistry.azurecr.io)- If you are not using a
package.jsonfile, 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
kubecrafteither locally or globally:Local installation:
npm install -d kubecraftAdd 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.envto thedocker-compose.yamlfile. Producesdocker-compose-resolved.yamlkomposeConvert- Convertdocker-compose-resolved.yamlto a Kubernetes configuration. Produceskompose.yamlapply- Apply thekompose.yamlconfiguration to the currently active cluster.expose- Expose your application using a Load Balancer. When completed, provides the newly deployed service's IP address.