From 9a15619856fa03d0b3f636f952ceefcedc155fc3 Mon Sep 17 00:00:00 2001 From: Yusaku Mandai Date: Sun, 31 Aug 2025 15:56:57 +0900 Subject: [PATCH] colima: add template --- colima/default/README.md | 22 ++++ colima/default/colima.yaml | 219 +++++++++++++++++++++++++++++++++++++ 2 files changed, 241 insertions(+) create mode 100644 colima/default/README.md create mode 100644 colima/default/colima.yaml diff --git a/colima/default/README.md b/colima/default/README.md new file mode 100644 index 0000000..ac5ad40 --- /dev/null +++ b/colima/default/README.md @@ -0,0 +1,22 @@ +# colima settings + +## What changed + +- cpu + - increased to 8 (depends on your machine) +- disk + - 120 +- memory + - increased to 16 +- network.address + - changed to true. This is needed to use +- network.network + - added 1.1.1.1, 8.8.8.8 DNS entries +- vmType + - `vz` +- rosetta: + - `true`. rossetta is needed to be installed (`softwareupdate --install-rosetta`) +- mountType: + - `virtiofs`. Much faster if using `vz` +- mountInotify + - `true` for hot-reloading diff --git a/colima/default/colima.yaml b/colima/default/colima.yaml new file mode 100644 index 0000000..f47621c --- /dev/null +++ b/colima/default/colima.yaml @@ -0,0 +1,219 @@ +# Number of CPUs to be allocated to the virtual machine. +# Default: 2 +cpu: 8 + +# Size of the disk in GiB to be allocated to the virtual machine. +# NOTE: value can only be increased after virtual machine has been created. +# +# Default: 100 +disk: 128 + +# Size of the memory in GiB to be allocated to the virtual machine. +# Default: 2 +memory: 16 + +# Architecture of the virtual machine (x86_64, aarch64, host). +# +# NOTE: value cannot be changed after virtual machine is created. +# Default: host +arch: host + +# Container runtime to be used (docker, containerd). +# +# NOTE: value cannot be changed after virtual machine is created. +# Default: docker +runtime: docker + +# Set custom hostname for the virtual machine. +# Default: colima +# colima-profile_name for other profiles +hostname: colima + +# Kubernetes configuration for the virtual machine. +kubernetes: + # Enable kubernetes. + # Default: false + enabled: false + + # Kubernetes version to use. + # This needs to exactly match a k3s version https://github.com/k3s-io/k3s/releases + # Default: latest stable release + version: v1.31.2+k3s1 + + # Additional args to pass to k3s https://docs.k3s.io/cli/server + # Default: traefik is disabled + k3sArgs: + - --disable=traefik + +# Auto-activate on the Host for client access. +# Setting to true does the following on startup +# - sets as active Docker context (for Docker runtime). +# - sets as active Kubernetes context (if Kubernetes is enabled). +# Default: true +autoActivate: true + +# Network configurations for the virtual machine. +network: + # Assign reachable IP address to the virtual machine. + # NOTE: this is currently macOS only and ignored on Linux. + # Default: false + address: true + + # Custom DNS resolvers for the virtual machine. + # + # EXAMPLE + # dns: [8.8.8.8, 1.1.1.1] + # + # Default: [] + dns: + - 1.1.1.1 + - 8.8.8.8 + + # DNS hostnames to resolve to custom targets using the internal resolver. + # This setting has no effect if a custom DNS resolver list is supplied above. + # It does not configure the /etc/hosts files of any machine or container. + # The value can be an IP address or another host. + # + # EXAMPLE + # dnsHosts: + # example.com: 1.2.3.4 + dnsHosts: + host.docker.internal: host.lima.internal + + # Replicate host IP addresses in the VM. This enables port forwarding to specific + # host IP addresses. + # e.g. `docker run --port 10.0.1.2:8080:8080 alpine` would only forward to the + # specified IP address. + # + # Default: false + hostAddresses: false + +# ===================================================================== # +# ADVANCED CONFIGURATION +# ===================================================================== # + +# Forward the host's SSH agent to the virtual machine. +# Default: false +forwardAgent: false + +# Docker daemon configuration that maps directly to daemon.json. +# https://docs.docker.com/engine/reference/commandline/dockerd/#daemon-configuration-file. +# NOTE: some settings may affect Colima's ability to start docker. e.g. `hosts`. +# +# EXAMPLE - disable buildkit +# docker: +# features: +# buildkit: false +# +# EXAMPLE - add insecure registries +# docker: +# insecure-registries: +# - myregistry.com:5000 +# - host.docker.internal:5000 +# +# Colima default behaviour: buildkit enabled +# Default: {} +docker: {} + +# Virtual Machine type (qemu, vz) +# NOTE: this is macOS 13 only. For Linux and macOS <13.0, qemu is always used. +# +# vz is macOS virtualization framework and requires macOS 13 +# +# NOTE: value cannot be changed after virtual machine is created. +# Default: qemu +vmType: vz + +# Utilise rosetta for amd64 emulation (requires m1 mac and vmType `vz`) +# Default: false +rosetta: true + +# Enable nested virtualization for the virtual machine (requires m3 mac and vmType `vz`) +# Default: false +nestedVirtualization: false + +# Volume mount driver for the virtual machine (virtiofs, 9p, sshfs). +# +# virtiofs is limited to macOS and vmType `vz`. It is the fastest of the options. +# +# 9p is the recommended and the most stable option for vmType `qemu`. +# +# sshfs is faster than 9p but the least reliable of the options (when there are lots +# of concurrent reads or writes). +# +# NOTE: value cannot be changed after virtual machine is created. +# Default: virtiofs (for vz), sshfs (for qemu) +mountType: virtiofs + +# Propagate inotify file events to the VM. +# NOTE: this is experimental. +mountInotify: true + +# The CPU type for the virtual machine (requires vmType `qemu`). +# Options available for host emulation can be checked with: `qemu-system-$(arch) -cpu help`. +# Instructions are also supported by appending to the cpu type e.g. "qemu64,+ssse3". +# Default: host +cpuType: host + +# Custom provision scripts for the virtual machine. +# Provisioning scripts are executed on startup and therefore needs to be idempotent. +# +# EXAMPLE - script executed as root +# provision: +# - mode: system +# script: apt-get install htop vim +# +# EXAMPLE - script executed as user +# provision: +# - mode: user +# script: | +# [ -f ~/.provision ] && exit 0; +# echo provisioning as $USER... +# touch ~/.provision +# +# Default: [] +provision: [] + +# Modify ~/.ssh/config automatically to include a SSH config for the virtual machine. +# SSH config will still be generated in $COLIMA_HOME/ssh_config regardless. +# Default: true +sshConfig: true + +# The port number for the SSH server for the virtual machine. +# When set to 0, a random available port is used. +# +# Default: 0 +sshPort: 0 + +# Configure volume mounts for the virtual machine. +# Colima mounts user's home directory by default to provide a familiar +# user experience. +# +# EXAMPLE +# mounts: +# - location: ~/secrets +# writable: false +# - location: ~/projects +# writable: true +# +# Colima default behaviour: $HOME and /tmp/colima are mounted as writable. +# Default: [] +mounts: [] + +# Specify a custom disk image for the virtual machine. +# When not specified, Colima downloads an appropriate disk image from Github at +# https://github.com/abiosoft/colima-core/releases. +# The file path to a custom disk image can be specified to override the behaviour. +# +# Default: "" +diskImage: "" + +# Environment variables for the virtual machine. +# +# EXAMPLE +# env: +# KEY: value +# ANOTHER_KEY: another value +# +# Default: {} +env: {}