From fd0799cbd79d44a3e4f96a5431499563b5a9b570 Mon Sep 17 00:00:00 2001 From: Robert Kaussow Date: Sun, 9 Apr 2023 22:20:51 +0000 Subject: [PATCH] fix: use scaler resolved dns for docker daemon --- _docs/index.md | 522 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 522 insertions(+) create mode 100644 _docs/index.md diff --git a/_docs/index.md b/_docs/index.md new file mode 100644 index 0000000..587a0a5 --- /dev/null +++ b/_docs/index.md @@ -0,0 +1,522 @@ +--- +title: droneci_autoscaler +type: docs +--- + +[![Source Code](https://img.shields.io/badge/gitea-source%20code-blue?logo=gitea&logoColor=white)](https://gitea.rknet.org/ansible/xoxys.droneci_autoscaler) +[![Build Status](https://img.shields.io/drone/build/ansible/xoxys.droneci_autoscaler?logo=drone&server=https%3A%2F%2Fdrone.rknet.org)](https://drone.rknet.org/ansible/xoxys.droneci_autoscaler) +[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg?label=license)](https://gitea.rknet.org/ansible/xoxys.droneci_autoscaler/src/branch/main/LICENSE) + +Setup [Drone CI autoscaler](https://autoscale.drone.io/). + + + +- [Requirements](#requirements) +- [Default Variables](#default-variables) + - [droneci_autoscaler_agent_architecture](#droneci_autoscaler_agent_architecture) + - [droneci_autoscaler_agent_concurrency](#droneci_autoscaler_agent_concurrency) + - [droneci_autoscaler_agent_distro](#droneci_autoscaler_agent_distro) + - [droneci_autoscaler_agent_dns](#droneci_autoscaler_agent_dns) + - [droneci_autoscaler_agent_image](#droneci_autoscaler_agent_image) + - [droneci_autoscaler_agent_os](#droneci_autoscaler_agent_os) + - [droneci_autoscaler_agent_package_upgrade](#droneci_autoscaler_agent_package_upgrade) + - [droneci_autoscaler_agent_packages](#droneci_autoscaler_agent_packages) + - [droneci_autoscaler_agent_runcmd](#droneci_autoscaler_agent_runcmd) + - [droneci_autoscaler_agent_token](#droneci_autoscaler_agent_token) + - [droneci_autoscaler_agent_version](#droneci_autoscaler_agent_version) + - [droneci_autoscaler_agent_volumes](#droneci_autoscaler_agent_volumes) + - [droneci_autoscaler_db_type](#droneci_autoscaler_db_type) + - [droneci_autoscaler_docker_auth_config](#droneci_autoscaler_docker_auth_config) + - [droneci_autoscaler_exposed_ports](#droneci_autoscaler_exposed_ports) + - [droneci_autoscaler_gc_enabled](#droneci_autoscaler_gc_enabled) + - [droneci_autoscaler_image](#droneci_autoscaler_image) + - [droneci_autoscaler_instances](#droneci_autoscaler_instances) + - [droneci_autoscaler_interval](#droneci_autoscaler_interval) + - [droneci_autoscaler_logs_color](#droneci_autoscaler_logs_color) + - [droneci_autoscaler_logs_debug](#droneci_autoscaler_logs_debug) + - [droneci_autoscaler_logs_pretty](#droneci_autoscaler_logs_pretty) + - [droneci_autoscaler_memory_limit](#droneci_autoscaler_memory_limit) + - [droneci_autoscaler_memory_reservation](#droneci_autoscaler_memory_reservation) + - [droneci_autoscaler_networks](#droneci_autoscaler_networks) + - [droneci_autoscaler_networks_applied](#droneci_autoscaler_networks_applied) + - [droneci_autoscaler_pool_max](#droneci_autoscaler_pool_max) + - [droneci_autoscaler_pool_min](#droneci_autoscaler_pool_min) + - [droneci_autoscaler_pool_ttl](#droneci_autoscaler_pool_ttl) + - [droneci_autoscaler_restart_policy](#droneci_autoscaler_restart_policy) + - [droneci_autoscaler_runner_env_file](#droneci_autoscaler_runner_env_file) + - [droneci_autoscaler_runner_privileged](#droneci_autoscaler_runner_privileged) + - [droneci_autoscaler_runner_volumes](#droneci_autoscaler_runner_volumes) + - [droneci_autoscaler_server_host](#droneci_autoscaler_server_host) + - [droneci_autoscaler_server_proto](#droneci_autoscaler_server_proto) + - [droneci_autoscaler_server_token](#droneci_autoscaler_server_token) + - [droneci_autoscaler_service_directory](#droneci_autoscaler_service_directory) + - [droneci_autoscaler_service_stopped](#droneci_autoscaler_service_stopped) + - [droneci_autoscaler_sshkey](#droneci_autoscaler_sshkey) + - [droneci_autoscaler_version](#droneci_autoscaler_version) + - [droneci_autoscaler_volumes](#droneci_autoscaler_volumes) + - [droneci_autoscaler_watchtower_enabled](#droneci_autoscaler_watchtower_enabled) +- [Dependencies](#dependencies) + +--- + +## Requirements + +- Minimum Ansible version: `2.1` + + +## Default Variables + +### droneci_autoscaler_agent_architecture + +#### Default value + +```YAML +droneci_autoscaler_agent_architecture: amd64 +``` + +### droneci_autoscaler_agent_concurrency + +#### Default value + +```YAML +droneci_autoscaler_agent_concurrency: 2 +``` + +### droneci_autoscaler_agent_distro + +#### Default value + +```YAML +droneci_autoscaler_agent_distro: ubuntu +``` + +### droneci_autoscaler_agent_dns + +#### Default value + +```YAML +droneci_autoscaler_agent_dns: [] +``` + +### droneci_autoscaler_agent_image + +#### Default value + +```YAML +droneci_autoscaler_agent_image: drone/drone-runner-docker:{{ droneci_autoscaler_agent_version + }} +``` + +### droneci_autoscaler_agent_os + +#### Default value + +```YAML +droneci_autoscaler_agent_os: linux +``` + +### droneci_autoscaler_agent_package_upgrade + +#### Default value + +```YAML +droneci_autoscaler_agent_package_upgrade: false +``` + +### droneci_autoscaler_agent_packages + +Install extra required packages during agents bootstrapping. + +#### Default value + +```YAML +droneci_autoscaler_agent_packages: [] +``` + +### droneci_autoscaler_agent_runcmd + +#### Default value + +```YAML +droneci_autoscaler_agent_runcmd: [] +``` + +### droneci_autoscaler_agent_token + +#### Default value + +```YAML +droneci_autoscaler_agent_token: myveryownsecret +``` + +### droneci_autoscaler_agent_version + +#### Default value + +```YAML +droneci_autoscaler_agent_version: latest +``` + +### droneci_autoscaler_agent_volumes + +#### Default value + +```YAML +droneci_autoscaler_agent_volumes: [] +``` + +### droneci_autoscaler_db_type + +Database type to use (default sqlite). All other DB variable will ony be used +it DB type is **not** sqlite. + +#### Default value + +```YAML +droneci_autoscaler_db_type: sqlite +``` + +### droneci_autoscaler_docker_auth_config + +Docker registries auth config file (config.json). + +#### Default value + +```YAML +droneci_autoscaler_docker_auth_config: | + { + "auths": { + "https://index.docker.io/v1/": { + "auth": "abc...xy=" + } + } + } +``` + +### droneci_autoscaler_exposed_ports + +#### Default value + +```YAML +droneci_autoscaler_exposed_ports: [] +``` + +#### Example usage + +```YAML +droneci_autoscaler_exposed_ports: + - "8080:8080" +``` + +### droneci_autoscaler_gc_enabled + +#### Default value + +```YAML +droneci_autoscaler_gc_enabled: false +``` + +### droneci_autoscaler_image + +#### Default value + +```YAML +droneci_autoscaler_image: drone/autoscaler:{{ droneci_autoscaler_version }} +``` + +### droneci_autoscaler_instances + +#### Default value + +```YAML +droneci_autoscaler_instances: [] +``` + +#### Example usage + +```YAML +droneci_autoscaler_instances: + - name: scaler_amd64 + pool_max: 50 + pool_ttl: 120m + agent_concurrency: 15 + agent_architecture: amd64 + sshkey: "dummy" + api_host: "drone-amd64.example.com" + docker_auth_config: | + { + "auths": { + "https://index.docker.io/v1/": { + "auth": "abc...xy=" + } + } + } + exposed_ports: + - "8080:8080" + provider_config: + - name: DRONE_HETZNERCLOUD_DATACENTER + value: fsn1-dc14 + - name: DRONE_HETZNERCLOUD_TOKEN + value: abc123 + - name: DRONE_HETZNERCLOUD_IMAGE + value: ubuntu-18.04 + - name: DRONE_HETZNERCLOUD_TYPE + value: + # SSH key id from hcloud API + - name: DRONE_HETZNERCLOUD_SSHKEY + value: + - name: DRONE_HETZNERCLOUD_USERDATA_FILE + value: /etc/scaler/userdata.yml +``` + +### droneci_autoscaler_interval + +#### Default value + +```YAML +droneci_autoscaler_interval: 1m +``` + +### droneci_autoscaler_logs_color + +#### Default value + +```YAML +droneci_autoscaler_logs_color: false +``` + +### droneci_autoscaler_logs_debug + +#### Default value + +```YAML +droneci_autoscaler_logs_debug: false +``` + +### droneci_autoscaler_logs_pretty + +#### Default value + +```YAML +droneci_autoscaler_logs_pretty: true +``` + +### droneci_autoscaler_memory_limit + +#### Default value + +```YAML +droneci_autoscaler_memory_limit: _unset_ +``` + +#### Example usage + +```YAML +droneci_autoscaler_memory_limit: 512m +``` + +### droneci_autoscaler_memory_reservation + +#### Default value + +```YAML +droneci_autoscaler_memory_reservation: _unset_ +``` + +#### Example usage + +```YAML +droneci_autoscaler_memory_reservation: 256m +``` + +### droneci_autoscaler_networks + +#### Default value + +```YAML +droneci_autoscaler_networks: + - name: droneci_default + external: true +``` + +#### Example usage + +```YAML +droneci_autoscaler_networks: + - name: default + # optional network driver, defaults to 'bride' + driver: host +``` + +### droneci_autoscaler_networks_applied + +#### Default value + +```YAML +droneci_autoscaler_networks_applied: + - droneci_default +``` + +### droneci_autoscaler_pool_max + +#### Default value + +```YAML +droneci_autoscaler_pool_max: 1 +``` + +### droneci_autoscaler_pool_min + +#### Default value + +```YAML +droneci_autoscaler_pool_min: 0 +``` + +### droneci_autoscaler_pool_ttl + +#### Default value + +```YAML +droneci_autoscaler_pool_ttl: 50m +``` + +### droneci_autoscaler_restart_policy + +#### Default value + +```YAML +droneci_autoscaler_restart_policy: always +``` + +### droneci_autoscaler_runner_env_file + +The file needs to be mounted to the runner **and** agent. + +#### Default value + +```YAML +droneci_autoscaler_runner_env_file: _unset_ +``` + +#### Example usage + +```YAML +droneci_autoscaler_runner_env_file: /etc/drone.conf +``` + +### droneci_autoscaler_runner_privileged + +#### Default value + +```YAML +droneci_autoscaler_runner_privileged: [] +``` + +### droneci_autoscaler_runner_volumes + +#### Default value + +```YAML +droneci_autoscaler_runner_volumes: [] +``` + +### droneci_autoscaler_server_host + +#### Default value + +```YAML +droneci_autoscaler_server_host: droneci +``` + +### droneci_autoscaler_server_proto + +#### Default value + +```YAML +droneci_autoscaler_server_proto: http +``` + +### droneci_autoscaler_server_token + +#### Default value + +```YAML +droneci_autoscaler_server_token: myveryownsecret +``` + +### droneci_autoscaler_service_directory + +#### Default value + +```YAML +droneci_autoscaler_service_directory: /var/lib/docker/services/droneci_autoscaler +``` + +### droneci_autoscaler_service_stopped + +#### Default value + +```YAML +droneci_autoscaler_service_stopped: false +``` + +### droneci_autoscaler_sshkey + +SSH private key that will by used by the autoscaler to connect to the agents. +If you dont provide a private key, a keypair will be generated automatically. + +#### Default value + +```YAML +droneci_autoscaler_sshkey: _unset_ +``` + +### droneci_autoscaler_version + +#### Default value + +```YAML +droneci_autoscaler_version: latest +``` + +### droneci_autoscaler_volumes + +Define required docker volumes. If you don't use sqlite you could remove the default volume. + +#### Default value + +```YAML +droneci_autoscaler_volumes: + - name: data + dest: /var/lib/drone_autoscaler + bind: false +``` + +#### Example usage + +```YAML +droneci_autoscaler_volumes: + # Instead of the name you could specify a path on the container host system, + # but you also have to enable bind mount for this volume + - name: data + # target location inside the container + dest: /var/lib/drone_autoscaler + # enable bind mount, if false volume will be configured as named volume + # keep in mind you MUST set bind in any case + bind: True +``` + +### droneci_autoscaler_watchtower_enabled + +#### Default value + +```YAML +droneci_autoscaler_watchtower_enabled: false +``` + + + +## Dependencies + +None.