# Copyright 2019-present Open Networking Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Sample kubespray override variables for COMAC deploy.
# Pass this file as an extra variables when running kubespray. For example,
# ansible-playbook -b -i inventory/comac/hosts.ini -e @inventory/comac/extra-vars.yaml cluster.yml
# Tested with Kubespray release-2.11

# OS
disable_swap: true
populate_inventory_to_hosts_file: true

# etcd
etcd_deployment_type: docker
etcd_memory_limit: 8192M

# Docker
docker_iptables_enabled: true

# K8S
kubeadm_enabled: true
kubelet_deployment_type: host
kubectl_localhost: true
kubeconfig_localhost: true
kube_proxy_metrics_bind_address: 0.0.0.0:10249

kube_feature_gates: [SCTPSupport=True]
kube_pods_subnet: 172.18.0.0/17
kube_service_addresses: 172.18.128.0/17
kube_apiserver_node_port_range: 2000-36767
kube_network_plugin: calico
kube_network_plugin_multus: true
multus_version: stable
ipip: false

local_volume_provisioner_enabled: true

# Applications
dns_mode: coredns
dns_cores_per_replica: 256
dns_min_replicas: 1

helm_enabled: true
helm_deployment_type: host
helm_version: v2.16.1
