Configuration ENVs

General & Commonly used

ENVTypeDescriptionDefault Value
ANKA_ANKA_REGISTRY(string)The Anka Registry address used for communication from the Controller to the Registry as well as the address used by Nodes to pull VM Templates and Tags.)
ANKA_CLEAN_MAC_ADDRESS_INTERVAL(duration)Delay between cleaning mac addresses.)1h0m0s
ANKA_DEFRAG_DB_INTERVAL(duration)The interval for defragging ETCD (0 is disable).)0
ANKA_ETCD_ENDPOINTS(string)Comma separated list of etcd addresses. These endpoints are used for the Application DB (instance, group, node information) and the Queue DB (if not defined separately with ANKA_QUEUE_ETCD_ENDPOINTS).)127.0.0.1:2379
ANKA_FILL_MAC_ADDRESS_RANGE_INTERVAL(duration)Interval to execute the mac address range validation.)3h0m0s
ANKA_INSTANCE_TIME_OUT(duration)The time that instances stay in ‘Terminated’ or ‘Terminating’ state.)1m0s
ANKA_LISTEN_ADDR(string)The address and port to listen on (format: [address]:port).):80
ANKA_LOCAL_ANKA_REGISTRY(string)Do not set unless ANKA_ANKA_REGISTRY is set to a URL/IP the controller does not have access to. The Controller uses this to communicate with the Registry and is separate from the ANKA_ANKA_REGISTRY, which is used by external services like Anka Nodes. This is for situations where the Controller and Registry are on the same network and you want to use localhost/local DNS for communication between them (format: http[s]://address:[port]).)
ANKA_MAC_ADDR_RANGE(string)Pass the range of mac addresses to use. manage-mac-addresses must be set to true to use this option. format is - (example: 00:00:00:00:00:00-FF:FF:FF:FF:FF:FF).)
ANKA_MAC_ADDR_RANGE_MAX_RETRIES(int)Times to retry to get mac address from the database before giving up and returning an error.)100
ANKA_MANAGE_MAC_ADDRESSES(boolean)Enables the controller to manage mac addresses of VMs. Check our docs for more info and caveats.)false
ANKA_NUM_WORKERS(int)The number of concurrent workers processing node tasks.)2
ANKA_PUSH_REGISTRY(string)Comma separated list of Registry addresses to use for push operations (saveImage/Jenkins cache building).)
ANKA_QUEUE_ETCD_ENDPOINTS(string)Comma seperated list of ETCD endpoints to use for queue data (only available in standalone mode).)
ANKA_STANDALONE(boolean)Run controller service with built etcd database in a single binary/service.)false

Logging

ENVTypeDescriptionDefault Value
ANKA_CMD_LOG_MAX_DAYS(int)Number of days to keep cmd logs (0 will use the value in log-max-days).)7
ANKA_CMD_LOG_MAX_MB(int)MB limit for cmd log files (0 will use the value in log-max-mb).)1024
ANKA_ENABLE_CENTRAL_LOGGING(boolean)Enables central logging. This will forward all logs available to the service into the registry’s data directory using the REST API of the Registry.)false
ANKA_ENABLE_EVENT_LOGGING(boolean)(Enterprise Plus Only) Enables event logging. They will show under the Controller’s Logs section after the first instance is created.)false
ANKA_ERROR_LOG_MAX_DAYS(int)Number of days to keep error logs (0 will use the value in log-max-days).)3
ANKA_ERROR_LOG_MAX_MB(int)MB limit for error log files (0 will use the value in log-max-mb).)200
ANKA_EVENT_LOG_URL(string)(Enterprise Plus Only) The url to post events to in json format.)
ANKA_INFO_LOG_MAX_DAYS(int)Number of days to keep info logs (0 will use the value in log-max-days).)0
ANKA_INFO_LOG_MAX_MB(int)MB limit for info log files (0 will use the value in log-max-mb).)0
ANKA_LOG_MAX_DAYS(int)Number of days to keep logs for all log types unless otherwise defined.)7
ANKA_LOG_MAX_MB(int)MB limit for log files, for all log types unless otherwise defined.)700
ANKA_V(string)verbosity level of logs (0-10, 10 being the most verbose))0

HTTPS / TLS

ENVTypeDescriptionDefault Value
ANKA_CIPHER_SUITES(string)fmt.Sprintf(A list of cipher suites to use for HTTPS/TLS. Supported Options: %v, strings.Join(utils.GetTLSCipherSuitesNames(), , )))
ANKA_MAX_TLS_VERSION(string)fmt.Sprintf(The max tls version to use with HTTPS/TLS. Supported Options: %v, strings.Join(utils.GetTLSVersions(), , )))
ANKA_MIN_TLS_VERSION(string)fmt.Sprintf(The min tls version to use with HTTPS/TLS. Supported Options: %v, strings.Join(utils.GetTLSVersions(), , )))
ANKA_SERVER_CERT(string)The path to a HTTPS/TLS certificate file in PEM format.)
ANKA_SERVER_KEY(string)The path to a HTTPS/TLS certificate private key file in PEM format.)
ANKA_SKIP_TLS_VERIFICATION(boolean)Disable the verification of the HTTPS/TLS certificates when making outbound requests to services (for self-signed certs).)false
ANKA_USE_HTTPS(boolean)Enable HTTPS/TLS protocol for the controller UI and API (requires server-cert & server-key).)false

Built in ETCD

ENVTypeDescriptionDefault Value
ANKA_ADVERTISE_CLIENT_URLS(string)Comma separated list of client urls for ETCD to advertise (only available in standalone mode))http://127.0.0.1:2379
ANKA_AUTO_COMPACTION_MODE(string)The ETCD auto compaction mode, (‘periodic’ or ‘revision’) (only available in standalone mode))periodic
ANKA_AUTO_COMPACTION_RETENTION(string)The ETCD auto compaction retention length (0 is disabled) (only available in standalone mode))30m
ANKA_DATA_DIR(string)The ETCD data directory location (only available in standalone mode))/tmp/etcd-data
ANKA_INITIAL_ADVERTISE_PEER_URLS(string)Comma separated list of peer urls for ETCD to advertise (only available in standalone mode))http://0.0.0.0:2380
ANKA_INITIAL_CLUSTER(string)The initial ETCD cluster configuration for bootstrapping (only available in standalone mode))anka-etcd=http://0.0.0.0:2380
ANKA_INITIAL_CLUSTER_STATE(string)The initial cluster state for ETCD (’new’ or ’existing’) (only available in standalone mode))new
ANKA_INITIAL_CLUSTER_TOKEN(string)The cluster token used in ETCD during bootstrap (only available in standalone mode))etcd-server
ANKA_LISTEN_CLIENT_URLS(string)Comma separated list client urls for ETCD to use (only available in standalone mode))http://127.0.0.1:2379
ANKA_LISTEN_PEER_URLS(string)Comma separated list of peer urls for ETCD to use (only available in standalone mode))http://0.0.0.0:2380
ANKA_NAME(string)The name for your ETCD server (only available in standalone mode))anka-etcd

Authentication and Authorization

ENVTypeDescriptionDefault Value
ANKA_API_KEYS_CLEANING_INTERVAL(duration)The interval for cleaning of expired api keys.)4h0m0s
ANKA_API_KEYS_SESSION_TTL(duration)The API Keys session TTL (used for automatic expiration).)5m0s
ANKA_CA_CERT(string)(Certificate Authentication) The CA/root cert used to authenticate incoming requests/certs.)
ANKA_CRL(string)(Certificate Authentication) File containing certificate revocation list (CRL) used to authenticate incoming requests/certs.)
ANKA_ENABLE_API_KEYS(boolean)Enable API Key Authentication.)false
ANKA_ENABLE_AUTH(boolean)Enable Authentication (Root Token, Certificate, SSO/OpenID Connect or API Keys) (Not to be confused with Authorization).)false
ANKA_ENABLE_CONTROLLER_AUTHORIZATION(boolean)Enable Authorization (Users, groups, permission control for specific certificates) in the Controller.)false
ANKA_ENABLE_INGRESS_NGINX(boolean)Enable Authentication based on headers set by Ingress Nginx (https://kubernetes.github.io/ingress-nginx/examples/auth/client-certs/)false
ANKA_ENABLE_RESOURCE_MANAGEMENT(boolean)Enable resource management for the controller (requires enable-controller-authorization))false
ANKA_ETCD_CA_CERT(string)(ETCD Certificate Authentication) The Etcd client will use this when connecting to the cluster.)
ANKA_ETCD_CERT(string)(ETCD Certificate Authentication) The ETCD client will use this when connecting to the cluster.)
ANKA_ETCD_CERT_KEY(string)(ETCD Certificate Authentication) The ETCD client will use this when connecting to the cluster.)
ANKA_ETCD_PASSWORD(string)(ETCD Certificate Authentication) ETCD Password to use for login.)
ANKA_ETCD_USERNAME(string)(ETCD Certificate Authentication) ETCD Username to use for login.)
ANKA_OIDC_CLIENT_ID(string)(OpenID Connect/SSO) Client id)
ANKA_OIDC_CLIENT_SECRET(string)(OpenID Connect/SSO) Client secret)
ANKA_OIDC_DISPLAY_NAME(string)(OpenID Connect/SSO) Name to display on login page)
ANKA_OIDC_GROUPS_CLAIM(string)(OpenID Connect/SSO) Claim key to use for groups, defaults to groups)groups
ANKA_OIDC_PROVIDER_URL(string)(OpenID Connect/SSO) Provider URL)
ANKA_OIDC_SCOPES(string)(OpenID Connect/SSO) Comma separated list of scopes, overrides default scopes used)
ANKA_OIDC_USER_INFO(boolean)(OpenID Connect/SSO) Get claims from user info endpoint)false
ANKA_OIDC_USERNAME_CLAIM(string)(OpenID Connect/SSO) Claim key to use for user name, defaults to name)
ANKA_ROOT_CERT(string)(Certificate Authentication) Alias of ca-cert)
ANKA_ROOT_TOKEN(string)Sets the basic auth token that will be used for accessing the Controller UI and API (username is ‘root’).)
ANKA_SKIP_ETCD_TLS_VERIFICATION(boolean)(ETCD Certificate Authentication) Don’t verify ETCD TLS certificates (for self signed certificates).)false
ANKA_USE_ETCD_LOGIN(boolean)(ETCD Certificate Authentication) Enable ETCD client login with username and password.)false
ANKA_USE_ETCD_TLS(boolean)(ETCD Certificate Authentication) Use TLS certificates for authentication with ETCD cluster.)false

Separate Queue Interface

This is an advanced feature, it allows you to have a second http interface that will be used only by the cluster’s Nodes
You must join your nodes with --skip-tests.
Auto upgrading of the Agent running on your nodes/hosts will fail since the Agent is not downloadable through the queue interface. You must manually download the proper agent pkg from https://downloads.veertu.com/#anka/ and install it on your node/host.
ENVTypeDescriptionDefault Value
ANKA_CLEAN_QUEUES_INTERVAL(duration)The interval to clean the queues (delete any tasks older than 24 hours), 0 to disable)1h0m0s
ANKA_ENABLE_QUEUE_AUTH(boolean)Enable queue Authentication)false
ANKA_QUEUE_ADDR(string)The address to use for the queue (format: 0.0.0.0:[port]))
ANKA_QUEUE_CA_CERT(string)The HTTPS/TLS CA cert for the queue)
ANKA_QUEUE_CRL(string)The HTTPS/TLS certificate revocation list (CRL) for the queue)
ANKA_QUEUE_SERVER_CERT(string)The HTTPS/TLS certificate file in PEM format for the queue)
ANKA_QUEUE_SERVER_KEY(string)The HTTPS/TLS private key in PEM format for the queue)
ANKA_USE_QUEUE_TLS(boolean)Enable queue HTTPS/TLS)false

Performance / Task Management

ENVTypeDescriptionDefault Value
ANKA_BATCH_TASK_COUNT(int)The number of tasks to get from the queue in one request (max 40))2
ANKA_DIAL_TIMEOUT(duration)set http dial timeout)5s
ANKA_ETCD_REQUEST_TIMEOUT(duration)Client side timeout for ETCD requests)20s
ANKA_INSTANCE_ACTIVE_TIMEOUT(duration)How long before an instance is declared as ’not communicating')2m0s
ANKA_MAX_IDLE_CONNECTION_PER_HOST(int)set mac idle connections per host)50
ANKA_NODE_ACTIVE_TIMEOUT(duration)How long before a node is declared as ‘offline’)2m0s
ANKA_NUM_HTTP_RETRIES(int)Number of times to retry on http error > 400)5
ANKA_QUERY_TASK_TIMEOUT(duration)Seconds nodes wait to reserve a start vm task if queue is empty)10s
ANKA_REQUEST_TIMEOUT(duration)set http request timeout)15s
ANKA_RESERVE_TASK_TIMEOUT(duration)Seconds queue clients wait to reserve a task if queue is empty)10s
ANKA_SCHEDULER_INTERVAL(duration)The interval for checking scheduled tasks)30m0s
ANKA_TLS_HANDSHAKE_TIMEOUT(duration)set tls handshake timeout)5s
ANKA_UNKNOWN_VM_THRESHOLD(int)Number of reports allowed for an unknown VM before terminating it)30

Monitoring

ENVTypeDescriptionDefault Value
ANKA_ENABLE_METRICS(boolean)Enables Prometheus metrics. By default available on *:2112/metrics)false
ANKA_METRICS_PATH(string)Path to expose Prometheus metrics.)/metrics
ANKA_METRICS_PORT(uint)Port to expose Prometheus metrics.)2112

Internal

These are used internally. It’s recommended that you don’t modify them unless absolutely necessary
ENVTypeDescriptionDefault Value
ANKA_ALLOW_CORS(boolean)Add Access-Control-Allow-Origin to all routes)false
ANKA_NO_NODE_UPGRADES(boolean)Set this flag to true to turn off automatic node upgrade)false
ANKA_VRAMTHRESHOLD(float)The minimum RAM percentage threshold to use for the UI graph)0

Other

ENVTypeDescriptionDefault Value
ANKA_ALLOW_EMPTY_REGISTRY(boolean)Allow controller to start without an external registry address (not recommended))false