To use these files, you must first have the following installed:
- Docker
- Docker Compose (already included in Docker Desktop)
The following steps will run a local instance of quick-spin using docker compose.
- Clone this repository.
- Change directory into the root of the project.
- Run the
docker compose upcommand.
git clone https://github.com/armory-io/quick-spin.git
cd quick-spin
docker compose upOpen Spinnaker UI in your web browser: http://localhost:9000
If you want to stop quick-spin, you can use:
Ctrl + ckeyboard shortcut.docker compose stop
This stops running containers without removing them. They can be started again with docker compose start
If you want to remove containers, networks, volumes, and images created by up:
docker compose down -v --rmi all
To run quick-spin using an image built locally (so not pulling from docker hub), do the following:
docker compose -f docker-compose-dev.yml upOn your host machine:
- Use
~/.spinnaker/config/quick-spin-profiles/spinnaker-quick-spin.ymlto define settings for all services. - Use
~/.spinnaker/config/quick-spin-profiles/{SERVICE_NAME}-quick-spin.ymlto define settings for a particular service.
By default, the quick-spin uses ~/.kube/config file to get kubernetes configuration.
You can define a different patch for the config file in docker-compose.yml e.g.
services:
quick-spin:
volumes:
- type: bind
source: ~/.kube/config
target: /home/spinnaker/.kube/configIf you want to connect the quick spin to local kubernetes cluster e.g. kind, minikube then you need to open your kubernetes config file and
replace 127.0.0.1 or localhost in server host with host.docker.internal e.g.
# ~/.kube/config
apiVersion: v1
clusters:
- cluster:
server: https://127.0.0.1:53133to
# ~/.kube/config
apiVersion: v1
clusters:
- cluster:
server: https://host.docker.internal:53133If you want to create a namespace (quick-spin-sa), a service account (quick-spin-sa) with needed permissions and a kubeconfig (~/.kube/config), you need to execute the shell script quick-spin/Docker/cluster-setup/create-resources.sh.
! The script uses LOCAL_KUBECONFIG_FILE variable, that needs to be updated with your kubeconfig full path. !
This kubeconfig is also used in docker-compose.yml.