---
# ============LICENSE_START=======================================================
#  Copyright (C) 2019 Nordix 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.
#
# SPDX-License-Identifier: Apache-2.0
# ============LICENSE_END=========================================================
#
global:
  repository: "{{ server_fqdn }}"
  offlinerepository: "{{ server_fqdn }}/"
  offlinemusiczookeperrepository: "{{ server_fqdn }}/google_samples/k8szk"
  busyBoxRepository: "{{ server_fqdn }}"
  busyboxRepository: "{{ server_fqdn }}"
  configRepository: "{{ server_fqdn }}"
  consulLoaderRepository: "{{ server_fqdn }}"
  dockerHubRepository: "{{ server_fqdn }}"
  dockerhubRepository: "{{ server_fqdn }}"
  elasticdumpRepository: "{{ server_fqdn }}"
  imageRepository: "{{ server_fqdn }}"
  loggingRepository: "{{ server_fqdn }}/docker.elastic.co"
  postgresRepository: "{{ server_fqdn }}/crunchydata"
  readinessRepository: "{{ server_fqdn }}/oomk8s"
  tlsRepository: "{{ server_fqdn }}"
  ubuntuInitRepository: "{{ server_fqdn }}/oomk8s"
  envsubstImage: "{{ server_fqdn }}/dibi/envsubst"
  kubectlImage: "engine.local/bitnami/kubectl:1.15"
aaf:
  aaf-sms:
    aaf-sms-vault:
      image:
        consul: library/consul:1.7.1
        vault: library/vault:1.3.3
policy:
  mariadb_image: "{{ server_fqdn }}/library/mariadb:10"
sdnc:
  elasticsearch:
    repositoryOverride: "{{ server_fqdn }}"
    master:
      repositoryOverride: "{{ server_fqdn }}"
    curator:
      repositoryOverride: "{{ server_fqdn }}"
    data:
      repositoryOverride: "{{ server_fqdn }}"
dmaap:
  message-router:
    message-router-zookeeper:
      busyBoxRepository: "{{ server_fqdn }}"
      ubuntuInitImage: ubuntu-init:2.0.0
    message-router-kafka:
      busyBoxRepository: "{{ server_fqdn }}"
      ubuntuInitImage: ubuntu-init:2.0.0
    message-router-mirrormaker:
      ubuntuInitImage: ubuntu-init:2.0.0
  dmaap-dr-node:
    busyBoxRepository: "{{ server_fqdn }}"
  dmaap-bc:
    repository: "{{ server_fqdn }}"
    postgres:
      repository: "{{ server_fqdn }}/crunchydata"
      postgresRepository: "{{ server_fqdn }}/crunchydata"
      pgpool:
        repository: "{{ server_fqdn }}/crunchydata"
        postgresRepository: "{{ server_fqdn }}/crunchydata"
      persistence:
        storageClass: "block-storage"
contrib:
  awx:
    awx:
      repository: "{{ server_fqdn }}/ansible"
      image:
        memcached: "{{ server_fqdn }}/memcached:latest"

  netbox:
    netbox-app:
      repository: "{{ server_fqdn }}/netboxcommunity"
oof:
  zookeeper:
    image:
      repository: "{{ server_fqdn }}/google_samples/k8szk"
log:
  log-kibana:
    elasticdumpRepository: "{{ server_fqdn }}"
    busyboxImage: busybox:latest
  log-elasticsearch:
    busyboxImage: busybox:latest
dcaegen2:
  dcae-servicechange-handler:
    dcae-inventory-api:
      postgresRepository: "{{ server_fqdn }}/crunchydata"
      postgres:
        repository: "{{ server_fqdn }}/crunchydata"
        postgresRepository: "{{ server_fqdn }}/crunchydata"
        pgpool:
          repository: "{{ server_fqdn }}/crunchydata"
          postgresRepository: "{{ server_fqdn }}/crunchydata"
        persistence:
          storageClass: "block-storage"
  dcae-bootstrap:
    mongo:
      dockerHubRepository: "{{ server_fqdn }}/registry.hub.docker.com"
    postgres:
      repository: "{{ server_fqdn }}/crunchydata"
      postgresRepository: "{{ server_fqdn }}/crunchydata"
      pgpool:
        repository: "{{ server_fqdn }}/crunchydata"
        postgresRepository: "{{ server_fqdn }}/crunchydata"
      persistence:
        storageClass: "block-storage"
  dcae-dashboard:
    postgres:
      repository: "{{ server_fqdn }}/crunchydata"
      postgresRepository: "{{ server_fqdn }}/crunchydata"
      pgpool:
        repository: "{{ server_fqdn }}/crunchydata"
        postgresRepository: "{{ server_fqdn }}/crunchydata"
      persistence:
        storageClass: "block-storage"
  dcae-inventory-api:
    postgresRepository: "{{ server_fqdn }}/crunchydata"
    postgres:
      repository: "{{ server_fqdn }}/crunchydata"
      postgresRepository: "{{ server_fqdn }}/crunchydata"
      pgpool:
        repository: "{{ server_fqdn }}/crunchydata"
        postgresRepository: "{{ server_fqdn }}/crunchydata"
      persistence:
        storageClass: "block-storage"
vnfsdk:
  postgresRepository: "{{ server_fqdn }}/crunchydata"
  postgres:
    repository: "{{ server_fqdn }}/crunchydata"
    postgresRepository: "{{ server_fqdn }}/crunchydata"
    pgpool:
      repository: "{{ server_fqdn }}/crunchydata"
      postgresRepository: "{{ server_fqdn }}/crunchydata"
    persistence:
      storageClass: "block-storage"
multicloud:
  multicloud-k8s:
    etcd:
      repository: "{{ server_fqdn }}"
      persistence:
        storageClass: "block-storage"
    mongo:
      dockerHubRepository: "{{ server_fqdn }}/registry.hub.docker.com"
  multicloud-fcaps:
    rabbitmq: "{{ server_fqdn }}/rabbitmq:alpine"
vid:
  mariadb_image: "{{ server_fqdn }}/library/mariadb:10"
nbi:
  mongo:
    dockerHubRepository: "{{ server_fqdn }}/registry.hub.docker.com"
