---
# Copyright 2017-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.

tosca_definitions_version: tosca_simple_yaml_1_0

description: Make a pod using Kubernetes Synchronizer

imports:
  - custom_types/trustdomain.yaml
  - custom_types/principal.yaml
  - custom_types/image.yaml
  - custom_types/site.yaml
  - custom_types/slice.yaml
  - custom_types/kubernetesservice.yaml
  - custom_types/kubernetesserviceinstance.yaml

topology_template:
  node_templates:
    service#kubernetes:
          type: tosca.nodes.KubernetesService
          properties:
            name: kubernetes
            must-exist: true

    mysite:
      type: tosca.nodes.Site
      properties:
        name: placeholder-sitename
        must-exist: true

    demo_trustdomain:
      type: tosca.nodes.TrustDomain
      properties:
        name: "demo-trust"
      requirements:
        - owner:
            node: service#kubernetes
            relationship: tosca.relationships.BelongsToOne

    demo_principal:
      type: tosca.nodes.Principal
      properties:
        name: "demo-account"
      requirements:
        - trust_domain:
            node: demo_trustdomain
            relationship: tosca.relationships.BelongsToOne

    image_pause:
      type: tosca.nodes.Image
      properties:
        name: "k8s.gcr.io/pause-amd64"
        tag: "3.0"

    mysite_demo1:
      type: tosca.nodes.Slice
      properties:
        name: "mysite_demo1"
      requirements:
        - site:
            node: mysite
            relationship: tosca.relationships.BelongsToOne
        - trust_domain:
            node: demo_trustdomain
            relationship: tosca.relationships.BelongsToOne
        - principal:
            node: demo_principal
            relationship: tosca.relationships.BelongsToOne

    demo_pod:
      type: tosca.nodes.KubernetesServiceInstance
      properties:
        name: "demo-pod"
        xos_managed: True
      requirements:
        - slice:
            node: mysite_demo1
            relationship: tosca.relationships.BelongsToOne
        - owner:
            node: service#kubernetes
            relationship: tosca.relationships.BelongsToOne
        - image:
            node: image_pause
            relationship: tosca.relationships.BelongsToOne
