summaryrefslogtreecommitdiffstats
path: root/dpo/blueprints/k8s-sonhms.yaml
blob: 0c7ab816d20c400dc6c30bd289529f6d1609d1d3 (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

@media only all and (prefers-color-scheme: dark) {
.highlight .hll { background-color: #49483e }
.highlight .c { color: #75715e } /* Comment */
.highlight .err { color: #960050; background-color: #1e0010 } /* Error */
.highlight .k { color: #66d9ef } /* Keyword */
.highlight .l { color: #ae81ff } /* Literal */
.highlight .n { color: #f8f8f2 } /* Name */
.highlight .o { color: #f92672 } /* Operator */
.highlight .p { color: #f8f8f2 } /* Punctuation */
.highlight .ch { color: #75715e } /* Comment.Hashbang */
.highlight .cm { color: #75715e } /* Comment.Multiline */
.highlight .cp { color: #75715e } /* Comment.Preproc */
.highlight .cpf { color: #75715e } /* Comment.PreprocFile */
.highlight .c1 { color: #75715e } /* Comment.Single */
.highlight .cs { color: #75715e } /* Comment.Special */
.highlight .gd { color: #f92672 } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gi { color: #a6e22e } /* Generic.Inserted */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #75715e } /* Generic.Subheading */
.highlight .kc { color: #66d9ef } /* Keyword.Constant */
.highlight .kd { color: #66d9ef } /* Keyword.Declaration */
.highlight .kn { color: #f92672 } /* Keyword.Namespace */
.highlight .kp { color: #66d9ef } /* Keyword.Pseudo */
.highlight .kr { color: #66d9ef } /* Keyword.Reserved */
.highlight .kt { color: #66d9ef } /* Keyword.Type */
.highlight .ld { color: #e6db74 } /* Literal.Date */
.highlight .m { color: #ae81ff } /* Literal.Number */
.highlight .s { color: #e6db74 } /* Literal.String */
.highlight .na { color: #a6e22e } /* Name.Attribute */
.highlight .nb { color: #f8f8f2 } /* Name.Builtin */
.highlight .nc { color: #a6e22e } /* Name.Class */
.highlight .no { color: #66d9ef } /* Name.Constant */
.highlight .nd { color: #a6e22e } /* Name.Decorator */
.highlight .ni { color: #f8f8f2 } /* Name.Entity */
.highlight .ne { color: #a6e22e } /* Name.Exception */
.highlight .nf { color: #a6e22e } /* Name.Function */
.highlight .nl { color: #f8f8f2 } /* Name.Label */
.highlight .nn { color: #f8f8f2 } /* Name.Namespace */
.highlight .nx { color: #a6e22e } /* Name.Other */
.highlight .py { color: #f8f8f2 } /* Name.Property */
.highlight .nt { color: #f92672 } /* Name.Tag */
.highlight .nv { color: #f8f8f2 } /* Name.Variable */
.highlight .ow { color: #f92672 } /* Operator.Word */
.highlight .w { color: #f8f8f2 } /* Text.Whitespace */
.highlight .mb { color: #ae81ff } /* Literal.Number.Bin */
.highlight .mf { color: #ae81ff } /* Literal.Number.Float */
.highlight .mh { color: #ae81ff } /* Literal.Number.Hex */
.highlight .mi { color: #ae81ff } /* Literal.Number.Integer */
.highlight .mo { color: #ae81ff } /* Literal.Number.Oct */
.highlight .sa { color: #e6db74 } /* Literal.String.Affix */
.highlight .sb { color: #e6db74 } /* Literal.String.Backtick */
.highlight .sc { color: #e6db74 } /* Literal.String.Char */
.highlight .dl { color: #e6db74 } /* Literal.String.Delimiter */
.highlight .sd { color: #e6db74 } /* Literal.String.Doc */
.highlight .s2 { color: #e6db74 } /* Literal.String.Double */
.highlight .se { color: #ae81ff } /* Literal.String.Escape */
.highlight .sh { color: #e6db74 } /* Literal.String.Heredoc */
.highlight .si { color: #e6db74 } /* Literal.String.Interpol */
.highlight .sx { color: #e6db74 } /* Literal.String.Other */
.highlight .sr { color: #e6db74 } /* Literal.String.Regex */
.highlight .s1 { color: #e6db74 } /* Literal.String.Single */
.highlight .ss { color: #e6db74 } /* Literal.String.Symbol */
.highlight .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */
.highlight .fm { color: #a6e22e } /* Name.Function.Magic */
.highlight .vc { color: #f8f8f2 } /* Name.Variable.Class */
.highlight .vg { color: #f8f8f2 } /* Name.Variable.Global */
.highlight .vi { color: #f8f8f2 } /* Name.Variable.Instance */
.highlight .vm { color: #f8f8f2 } /* Name.Variable.Magic */
.highlight .il { color: #ae81ff } /* Literal.Number.Integer.Long */
}
@media (prefers-color-scheme: light) {
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #333333 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #666666 } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008800 } /* Keyword.Pseudo */
.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */
.highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */
.highlight .na { color: #336699 } /* Name.Attribute */
.highlight .nb { color: #003388 } /* Name.Builtin */
.highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */
.highlight .no { color: #003366; font-weight: bold } /* Name.Constant */
.highlight .nd { color: #555555 } /* Name.Decorator */
.highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */
.highlight .nl { color: #336699; font-style: italic } /* Name.Label */
.highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */
.highlight .py { color: #336699; font-weight: bold } /* Name.Property */
.highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #336699 } /* Name.Variable */
.highlight .ow { color: #008800 } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */
.highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */
.highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */
.highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */
.highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */
.high
 #============LICENSE_START=======================================================
 #    son-handler
 #   ================================================================================
 #     Copyright (C) 2019 Wipro Limited.
 #     ==============================================================================
 #       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.
 #       ============LICENSE_END=========================================================

tosca_definitions_version: cloudify_dsl_1_3
imports:
  - "http://www.getcloudify.org/spec/cloudify/3.4/types.yaml"
  - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/k8splugin/1.4.5/k8splugin_types.yaml
  - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.ccsdk.platform.plugins/type_files/pgaas/1.1.0/pgaas_types.yaml
  - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/dcaepolicyplugin/2.3.0/dcaepolicyplugin_types.yaml
inputs:
  replicas:
    type: integer
    description: replica count for deployment
    default: 1
  tag_version:
    type: string
    description: docker image name and version
    default: "nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.son-handler:1.1.0"
  pgaas_cluster_name:
    type: string
    description: pg cluster
    default: "dcae-postgres.onap.svc.cluster.local"
  database_name:
    type: string
    description: database name
    default: sonhms
  aaf_username:
    type: string
    description: aaf username
  aaf_password:
    type: string
    description: aaf password
  polling_interval:
    type: integer
    description: dmaap polling interval
    default: 20
  polling_timeout:
    type: integer
    description: dmaap polling timeout
    default: 60
  num_solutions:
    type: integer
    description: num of solutions
    default: 5
  min_collision:
    type: integer
    description: minimum no. of collisions
    default: 5
  min_confusion: 
    type: integer
    description: minimum no. of confusions
    default: 5
  max_clusters:
    type: integer
    description: maximum clusters
    default: 5
  bad_threshold:
    type: integer
    description: threshold for bad neighbors
    default: 50
  poor_threshold:
    type: integer
    description: threshold for poor neighbors
    default: 70
  namespace:
    type: string
    description: namespace
    default: onap
  dmaap:
    type: string
    description: dmaap server
    default: message-router
  buffer_time:
    type: integer
    description: buffer time
    default: 60
  cg:
    type: string
    description: consumer group
    default: sonhms-cg
  cid:
    type: string
    description: consumer id
    default: sonhms-cid
  config_db:
    type: string
    description: config db location
  oof:
    type: string
    description: oof location
  pci_optimizer:
    type: string
    description: pci optimizer name in oof
    default: pci
  pci_anr_optimizer:
    type: string
    description: pci and anr optimizer name in oof
    default: pci_anr
  log_path:
    type: string
    description: log location in host
    default: /dockerdata-nfs/son-handler
  poorCountThreshold:
    type: integer
    description: poor neighbor count threshold
    default: 3
  badCountThreshold:
    type: integer
    description: bad neighbor count threshold
    default: 3
  oofTriggerCountTimer:
    type: integer
    description: timer for oof triggered count in minutes
    default: 30
  oofTriggerCountThreshold:
    type: integer
    description: Threshold for oof trigger count
    default: 5
  policyRespTimer:
    type: integer
    description: policy response wait timer in seconds
    default: 10
  policy_id:
    type: string
    description: policy id for config policy
  topic00_location:
  topic01_location:
  topic02_location:
  topic03_location:
  topic04_location:
  topic00_client_role:
  topic01_client_role:
  topic02_client_role:
  topic03_client_role:
  topic04_client_role:
  topic00_client_id:
  topic01_client_id:
  topic02_client_id:
  topic03_client_id:
  topic04_client_id:
  topic00_url:
  topic01_url:
  topic02_url:
  topic03_url:
  topic04_url:

  
node_templates:
  pgaasvm:
    type: dcae.nodes.pgaas.database
    properties: 
      writerfqdn: { get_input: pgaas_cluster_name }
      name: { get_input: database_name }
      use_existing: false
    
  sonhms:
    type: dcae.nodes.ContainerizedServiceComponent
    interfaces:
      cloudify.interfaces.lifecycle:
        start:
          inputs:
            ports:
              - "8080:0"
            volumes:
              - host:
                  path: { get_input: log_path }
                container:
                  bind: /home/sonhms/logs
                  mode: rw
    properties:
      image:
        get_input: tag_version
      service_component_type: 'dcae-sonhms'
      service_id: 'sonhms'
      always_pull_image: true
      replicas: {get_input: replicas}
      docker_config:
        healthcheck:
          endpoint: /healthcheck
          interval: 15s
          timeout: 1s
          type: http
      application_config:
        streams_subscribes:
          performance_management_topic:
            aaf_username: { get_input: aaf_username }
            aaf_password: { get_input: aaf_password }
            dmaap_info:
              location: { get_input: topic00_location }
              client_role: { get_input: topic00_client_role }
              client_id: { get_input: topic00_client_id }
              topic_url: { get_input: topic00_url }
            type: message-router
          fault_management_topic:
            aaf_username: { get_input: aaf_username }
            aaf_password: { get_input: aaf_password }
            dmaap_info: 
              location: { get_input: topic01_location }
              client_role: { get_input: topic01_client_role }
              client_id: { get_input: topic01_client_id }
              topic_url: { get_input: topic01_url }
            type: message-router
          nbr_list_change_topic:
            aaf_username: { get_input: aaf_username }
            aaf_password: { get_input: aaf_password }
            dmaap_info:
              location: { get_input: topic02_location }
              client_role: { get_input: topic02_client_role }
              client_id: { get_input: topic02_client_id }
              topic_url: { get_input: topic02_url }
            type: message-router
          dcae_cl_response_topic:
            aaf_username: { get_input: aaf_username }
            aaf_password: { get_input: aaf_password }
            dmaap_info:
              location: { get_input: topic04_location }
              client_role: { get_input: topic04_client_role }
              client_id: { get_input: topic04_client_id }
              topic_url: { get_input: topic04_url }
            type: message-router
        streams_publishes:
          CL_topic:
            aaf_username: { get_input: aaf_username }
            aaf_password: { get_input: aaf_password }
            dmaap_info: 
              location: { get_input: topic03_location }
              client_role: { get_input: topic03_client_role }
              client_id: { get_input: topic03_client_id }
              topic_url: { get_input: topic03_url }
            type: message-router
        postgres.host: { get_attribute: [ pgaasvm, admin, host ] }
        postgres.port: { get_attribute: [ pgaasvm, admin, port ] }
        postgres.username: { get_attribute: [ pgaasvm, admin, user ] }
        postgres.password: { get_attribute: [ pgaasvm, admin, password ] }
        sonhandler.pollingInterval: { get_input: polling_interval}
        sonhandler.pollingTimeout: { get_input: polling_timeout }
        sonhandler.numSolutions: { get_input: num_solutions }
        sonhandler.minCollision: { get_input: min_collision }
        sonhandler.minConfusion: { get_input: min_confusion }
        sonhandler.maximumClusters: { get_input: max_clusters }
        sonhandler.badThreshold: { get_input: bad_threshold }
        sonhandler.poorThreshold: { get_input: poor_threshold }
        sonhandler.namespace: { get_input: namespace }
        sonhandler.sourceId: SONHMS
        sonhandler.dmaap.server: 
          - { get_input: dmaap }
        sonhandler.bufferTime: { get_input: buffer_time }
        sonhandler.cg: { get_input: cg }
        sonhandler.cid: { get_input: cid }
        sonhandler.configDb.service: { get_input: config_db }
        sonhandler.oof.service: { get_input: oof }
        sonhandler.pciOptimizer: { get_input: pci_optimizer }
        sonhandler.pciAnrOptimizer: { get_input: pci_anr_optimizer }
        sonhandler.poorCountThreshold: { get_input: poorCountThreshold}
        sonhandler.badCountThreshold: { get_input: badCountThreshold}
        sonhandler.oofTriggerCountTimer: { get_input: oofTriggerCountTimer}
        sonhandler.oofTriggerCountThreshold: { get_input: oofTriggerCountThreshold}
        sonhandler.policyRespTimer: { get_input: policyRespTimer}
        service_calls:
          sdnr-getpnfname: []
          sdnr-getpci: []
          sdnr-getnbrlist: []
          sdnr-getcelllist: []
          oof-req: []
          policy-req: []
    relationships:
      - type: cloudify.relationships.depends_on
        target: pgaasvm
      - type: cloudify.relationships.depends_on
        target: son_policy

  son_policy:
    type: dcae.nodes.policy
    properties:
      policy_id:
           get_input: policy_id