summaryrefslogtreecommitdiffstats
path: root/tosca2heat/tosca-parser/toscaparser/tests/data/policies/tosca_policy_template.yaml
blob: 4c18d9de10ca52fdcc005d72c96f1eb9f02d82db (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
tosca_definitions_version: tosca_simple_yaml_1_0

description: >
  Template for deploying servers based on policies.

imports:
  - custom_definitions.yaml

topology_template:
  node_templates:
    my_server_1:
      type: tosca.nodes.Compute
      capabilities:
        # Host container properties
        host:
         properties:
           num_cpus: 2
           disk_size: 10 GB
           mem_size: 512 MB
        # Guest Operating System properties
        os:
          properties:
            # host Operating System image properties
            architecture: x86_64
            type: Linux
            distribution: RHEL
            version: 6.5

    my_server_2:
      type: tosca.nodes.Compute
      capabilities:
        host:
          properties:
            disk_size: 10 GB
            num_cpus: 2
            mem_size: 4096 MB
        os:
          properties:
            architecture: x86_64
            type: Linux
            distribution: Ubuntu
            version: 14.04

  groups:
    webserver_group:
      members: [ my_server_1, my_server_2 ]
      type: tosca.groups.Root
      metadata: { user1: 1008, user2: 1002 }


  policies:
    - my_compute_placement_policy:
        type: tosca.policies.Placement
        description: Apply placement policy to servers
        metadata: { user1: 1001, user2: 1002 }
        targets: [ my_server_1, my_server_2 ]
        triggers:
           resize_compute:
             description: trigger
             event_type: tosca.events.resource.utilization
             schedule:
               start_time: "2015-05-07T07:00:00Z"
               end_time: "2015-06-07T07:00:00Z"
             target_filter:
               node: master-container
               requirement: host
               capability: Container
             condition:
               constraint: { greater_than: 50 }
               period: 60
               evaluations: 1
               method: average
             action:
               resize: # Operation name
                inputs:
                 strategy: LEAST_USED
                 implementation: Senlin.webhook()
           high_cpu_usage:
             description: trigger
             meter_name: cpu_util
             condition:
               constraint: utilization greater_than 60%
               threshold: 60
               period: 600
               evaluations: 1
               method: average
               comparison_operator: gt
             metadata: SG1
             action: [SP1]

           low_cpu_usage:
             description: trigger
             meter_name: cpu_util
             condition:
               constraint: utilization less_than 20%
               threshold: 20
               period: 600
               evaluations: 1
               method: average
               comparison_operator: gt
             metadata: SG1
             action: [SP1]

    - my_groups_placement:
        type: mycompany.mytypes.myScalingPolicy
        targets: [ webserver_group ]
        description: my company scaling policy
        metadata:
          user1: 1001
          user2: 1003