---
# 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/kubernetesresourceinstance.yaml

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

    demo_resource:
      type: tosca.nodes.KubernetesResourceInstance
      properties:
        name: "demo-pod"
        resource_definition: |
          apiVersion: v1
          kind: Pod
          metadata:
            name: nginx
          spec:
            containers:
            - name: nginx
              image: nginx:1.7.9
              ports:
              - containerPort: 80
      requirements:
        - owner:
            node: service#kubernetes
            relationship: tosca.relationships.BelongsToOne

