fix: use scaler resolved dns for docker daemon

This commit is contained in:
Robert Kaussow 2023-04-09 22:20:51 +00:00
parent 6e495519b9
commit fd0799cbd7
1 changed files with 522 additions and 0 deletions

522
_docs/index.md Normal file
View File

@ -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/).
<!--more-->
- [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.