---
# ============LICENSE_START=======================================================
#  Copyright (C) 2019 The Nordix Foundation. All rights reserved.
# ================================================================================
# 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.
#
# SPDX-License-Identifier: Apache-2.0
# ============LICENSE_END=========================================================

distros:
  - ubuntu1804

provisioners:
  bifrost:
    scm: git
    src: https://gerrit.nordix.org/infra/provisioner/bifrost.git
    version: "{{ lookup('env', 'NORDIX_BIFROST_VERSION') | default('master', true) }}"
    refspec: "{{ lookup('env', 'NORDIX_BIFROST_REFSPEC') | default(omit) }}"
  heat:
    scm: git
    src: https://gerrit.nordix.org/infra/provisioner/heat.git
    version: "{{ lookup('env', 'NORDIX_HEAT_VERSION') | default('master', true) }}"
    refspec: "{{ lookup('env', 'NORDIX_HEAT_REFSPEC') | default(omit) }}"

installers:
  kubespray:
    scm: git
    src: https://gerrit.nordix.org/infra/installer/kubespray.git
    version: "{{ lookup('env', 'NORDIX_KUBESPRAY_VERSION') | default('master', true) }}"
    refspec: "{{ lookup('env', 'NORDIX_KUBESPRAY_REFSPEC') | default(omit) }}"

# NOTE (fdegir): this is only the list of scenarios implemented within
# installer repository and does not list what apps are for curated for
# them as it is self documented within the scenario playbook in installer
# repository. Curated apps are not listed separately either as they are
# similar to scenarios; they are available in installer repository.
scenarios:
  - k8-calico-istio
  - k8-calico-nofeature
  - k8-calico-spinnaker
  - k8-canal-nofeature
  - k8-cilium-nofeature
  - k8-flannel-nofeature
  - k8-multus-nofeature
  - k8-multus-plugins
  - k8-weave-nofeature

# NOTE (fdegir): set default deploy scenario for the stack
deploy_scenario: "{{ lookup('env', 'DEPLOY_SCENARIO') | default('k8-multus-plugins', true) }}"

# -------------------------------------------------------------------------------
# Nordix: Docker version
# -------------------------------------------------------------------------------
# NOTE (fdegir): versions of docker as of 13.07.2020 matching to what Kubespray requires
docker_ce_version: "5:19.03.12~3-0~ubuntu-bionic"
docker_ce_cli_version: "{{ docker_ce_version }}"
docker_registry_version: "2.7.1"
containerd_io_version: "1.2.13-2"

# -------------------------------------------------------------------------------
# Kubernetes: Kubernetes and kubectl versions
# -------------------------------------------------------------------------------
# Kubernetes version that is supported by the pinned kubespray version
kubernetes_version: "v1.18.5"
# version of the kubectl should generally match to the version of kubernetes itself
# but it would be good to have possibility to override it in case if someone needs it for some reason
kubectl_version: "{{ kubernetes_version }}"

# -------------------------------------------------------------------------------
# Kubernetes: Versions of rook, ceph and their dependencies
# -------------------------------------------------------------------------------
rook_version: "v1.1.2"
busybox_version: "1.32.0"
ceph_version: "v14.2.4-20190917"
cephcsi_version: "v1.2.1"
csi_node_driver_registrar_version: "v1.1.0"
csi_attacher_version: "v1.2.0"
csi_provisioner_version: "v1.3.0"
csi_snapshotter_version: "v1.2.0"

# -------------------------------------------------------------------------------
# Kubernetes: Versions of prometheus and its dependencies
# -------------------------------------------------------------------------------
# TODO (fdegir): prometheus version of what? helm chart?
prometheus_version: "1.3.1"
prom_alertmanager_version: "v0.20.0"
prom_node_exporter_version: "v0.18.1"
prom_prometheus_version: "v2.16.0"
prom_push_gateway_version: "v1.0.1"

# -------------------------------------------------------------------------------
# Kubernetes: Versions of spinnaker and its dependencies
# -------------------------------------------------------------------------------
# Helm chart and docker version
spinnaker_version: "1.23.2"
spinnaker_app_version: "1.16.2"

# -------------------------------------------------------------------------------
# Kubernetes: App versions
# -------------------------------------------------------------------------------
helm_version: "v3.5.0"
charts_version: "0b64349aeb537d0fd038df0e1d40ec5cf1206609"
istio_version: "1.3.1"

# -------------------------------------------------------------------------------
# Misc: Versions of other components
# -------------------------------------------------------------------------------
configmap_reload_version: "v0.3.0"
kube_state_metrics_version: "v1.9.5"

# vim: set ts=2 sw=2 expandtab:
