# ============LICENSE_START=======================================================
# Copyright (C) 2021 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=========================================================

tosca_definitions_version: tosca_simple_yaml_1_3
data_types:
  onap.datatypes.ToscaConceptIdentifier:
    derived_from: tosca.datatypes.Root
    properties:
      name:
        type: string
        required: true
      version:
        type: string
        required: true
node_types:
  org.onap.policy.clamp.controlloop.Participant:
    version: 1.0.1
    derived_from: tosca.nodetypes.Root
    properties:
      provider:
        type: string
        requred: false
  org.onap.policy.clamp.controlloop.ControlLoopElement:
    version: 1.0.1
    derived_from: tosca.nodetypes.Root
    properties:
      provider:
        type: string
        requred: false
      participant_id:
        type: onap.datatypes.ToscaConceptIdentifier
        requred: true
  org.onap.policy.clamp.controlloop.ControlLoop:
    version: 1.0.1
    derived_from: tosca.nodetypes.Root
    properties:
      provider:
        type: string
        requred: false
      elements:
        type: list
        required: true
        entry_schema:
          type: onap.datatypes.ToscaConceptIdentifier
  org.onap.policy.clamp.controlloop.K8SMicroserviceControlLoopElement:
    version: 1.0.1
    derived_from: org.onap.policy.clamp.controlloop.ControlLoopElement
    properties:
      chart:
        type: string
        requred: true
      configs:
        type: list
        required: false
      requirements:
        type: string
        requred: false
      templates:
        type: list
        required: false
        entry_schema:
      values:
        type: string
        requred: true
topology_template:
  node_templates:
    org.onap.k8s.controlloop.K8SControlLoopParticipant:
      version: 2.3.4
      type: org.onap.policy.clamp.controlloop.Participant
      type_version: 1.0.1
      description: Participant for K8S
      properties:
        provider: ONAP
    org.onap.domain.database.Postgres_K8SMicroserviceControlLoopElement:
      # See https://github.com/onap/oom/tree/master/kubernetes/common/postgres
      version: 1.2.3
      type: org.onap.policy.clamp.controlloop.K8SMicroserviceControlLoopElement
      type_version: 1.0.0
      description: Control loop element for the K8S microservice for Postgres
      properties:
        provider: ONAP
        participant_id:
          name: org.onap.k8s.controlloop.K8SControlLoopParticipant
          version: 2.3.4
        chart:
          apiVersion: v1
          description: ONAP Postgres Server
          name: postgres
          version: 7.0.0
        configs:
          - name: pg_hba.conf
            value: <Contents of pg_hba.conf>
          - name: setup.sql
            value: <Contents of setup.sql>
        requirements:
          dependencies:
            - name: common
              version: ~7.x-0
              repository: 'file://../common'
            - name: repositoryGenerator
              version: ~7.x-0
              repository: 'file://../repositoryGenerator'
        templates:
          - name: first_template_file
            value: <first_template_file>
          - name: And so on
        values:
          <The Values>
    org.onap.domain.database.HelloWorld_K8SMicroserviceControlLoopElement:
      # See https://github.com/stakater-charts/helloworld/tree/master/helloworld
      version: 1.2.3
      type: org.onap.policy.clamp.controlloop.K8SMicroserviceControlLoopElement
      type_version: 1.0.0
      description: Control loop element for the K8S microservice for Hello World
      properties:
        provider: ONAP
        participant_id:
          name: org.onap.k8s.controlloop.K8SControlLoopParticipant
          version: 2.3.4
        chart:
          apiVersion: v1
          name: helloworld
          description: helloworld chart that runs on kubernetes
          version: 1.0.0
          keywords:
            - helloworld
            - kubernetes
          home: https://github.com/stakater-charts/helloworld
          maintainers:
          - name: Stakater
            email: stakater@aurorasolutions.io
        values:
          kubernetes:
            host: https://kubernetes.default
          helloworld:
            namespace: default
            image:
              name: tutum/hello-world
              tag: latest
            pullPolicy: IfNotPresent
          service:
            ingressClass: internal-ingress
    org.onap.domain.sample.Postgres_HelloWorld_ControlLoopDefinition:
      version: 1.2.3
      type: org.onap.policy.clamp.controlloop.ControlLoop
      type_version: 1.0.0
      description: Control loop for Postgres and Hello World
      properties:
        provider: ONAP
        elements:
        - name: org.onap.domain.database.Postgres_K8SMicroserviceControlLoopElement
          version: 1.2.3
        - name: org.onap.domain.database.HelloWorld_K8SMicroserviceControlLoopElement
          version: 1.2.3