Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The code fragment below shows the TOSCA Topology Template for the Gentle Guidance domain when no parameters are defined. Please refer to <Add Github link when merged> for the definitive Yaml specification. 

Code Block
languageyml
linenumberstrue
collapsetrue
tosca_definitions_version: tosca_simple_yaml_1_3
topology_template:
  node_templates:
    org.onap.domain.gentleguidance.KubernetesControlLoopElementDefinition:
      version: 1.0.0
      type: org.onap.policy.clamp.controlloop.KubernetesControlLoopElement
      type_version: 1.0.1
      description: Control loop element for the Gentle Guidance Kubernetes Microservice
    org.onap.domain.gentleguidance.RestControlLoopElementDefinition:
      version: 1.0.0
      type: org.onap.policy.clamp.controlloop.HttpControlLoopElement
      type_version: 1.0.1
      description: Control loop element for the Gentle Guidance Microservice REST configuration
    org.onap.domain.gentleguidance.PolicyControlLoopElementDefinition:
      version: 1.0.0
      type: org.onap.policy.clamp.controlloop.PolicyControlLoopElement
      type_version: 1.0.1
      description: Control loop element for the Gentle Guidance Operational Policy
    org.onap.domain.gentleguidance.CdsControlLoopElementDefinition:
      version: 1.0.0
      type: org.onap.policy.clamp.controlloop.CDSControlLoopElement
      type_version: 1.0.1
      description: Control loop element for the Gentle Guidance CDS blueprint
    org.onap.domain.gentleguidance.ControlLoopDefinition:
      version: 1.0.0
      type: org.onap.policy.clamp.controlloop.ControlLoop
      type_version: 1.0.1
      description: Control loop definition for the Gentle Guidance domain
      properties:
        elements:
        - org.onap.domain.gentleguidance.KubernetesControlLoopElementDefinition:1.0.0
        - org.onap.domain.gentleguidance.RestControlLoopElementDefinition:1.0.0
        - org.onap.domain.gentleguidance.PolicyControlLoopElementDefinition:1.0.0
        - org.onap.domain.gentleguidance.CdsControlLoopElementDefinition:1.0.0

The code fragment below shows the TOSCA Topology Template for the Gentle Guidance domain when the default values of  parameters are defined. Please refer to <Add Github link when merged> for the definitive Yaml specification.

Code Block
languageyml
linenumberstrue
collapsetrue
tosca_definitions_version: tosca_simple_yaml_1_3
topology_template:
  node_templates:
    org.onap.domain.gentleguidance.KubernetesControlLoopElementDefinition:
      version: 1.0.0
      type: org.onap.policy.clamp.controlloop.KubernetesControlLoopElement
      type_version: 1.0.1
      description: Control loop element for the Gentle Guidance Kubernetes Microservice
      properties:
        provider: Ericsson
        participantType: org.onap.policy.controlloop.participant.Kubernetes:1.0.0
        startPhase: 2
        uninitializedToPassiveTimeout: 180
        chart:
            chartId: GentleGuidance:1.0.0
            releaseName: Istanbul
            namespace: org.onap.policy.controlloop.gentleguidance
    org.onap.domain.gentleguidance.RestControlLoopElementDefinition:
      version: 1.0.0
      type: org.onap.policy.clamp.controlloop.HttpControlLoopElement
      type_version: 1.0.1
      description: Control loop element for the Gentle Guidance Microservice REST configuration
      properties:
        provider: Ericsson
        participantType: org.onap.policy.controlloop.participant.Http:1.0.0
        startPhase: 1
        baseUrl: https://10.10.10.10:12345/gentleguidancemicroservice
        httpHeaders:
          "Content-Type": "application/json"
          "Accept": "application/json"
        configurationEntities:
          org.onap.policy.controlloop.gentleguidance.setGentleGuidanceConfig:1.0.0:
            configurationEntityId: org.onap.policy.controlloop.gentleguidance.setGentleGuidanceConfig:1.0.0
            restSequence:
            - restRequestId: org.onap.policy.controlloop.gentleguidance.setGentleGuidanceConfig.CreateGentle:1.0.0
              httpMethd: POST
              path: "gentle/create"
              body:
                gentleLevel: veryGentle
                gentleType: softAndFurry
              expectedResponse: 200
            - restRequestId: org.onap.policy.controlloop.gentleguidance.setGentleGuidanceConfig.CreateGuidance:1.0.0
              httpMethd: POST
              path: "guidance/create"
              body:
                guidanceLevel: high
                guidanceType: subtle
              expectedResponse: 200
          org.onap.policy.controlloop.gentleguidance.updateGentleGuidanceConfig:1.0.0:
            configurationEntityId: org.onap.policy.controlloop.gentleguidance.updateGentleGuidanceConfig:1.0.0
            restSequence:
            - restRequestId: org.onap.policy.controlloop.gentleguidance.updateGentleGuidanceConfig.CreateGentle:1.0.0
              httpMethd: PUT
              path: "gentle/update]"
              body:
                gentleLevel: robust
                gentleType: hardAndGritty
              expectedResponse: 200
            - restRequestId: org.onap.policy.controlloop.gentleguidance.updateGentleGuidanceConfig.CreateGuidance:1.0.0
              httpMethd: PUT
              path: "guidance/update"
              body:
                guidanceLevel: low
                guidanceType: terse
              expectedResponse: 200
    org.onap.domain.gentleguidance.PolicyControlLoopElementDefinition:
      version: 1.0.0
      type: org.onap.policy.clamp.controlloop.PolicyControlLoopElement
      type_version: 1.0.1
      description: Control loop element for the Gentle Guidance Operational Policy
      properties:
        provider: Ericsson
        participantType: org.onap.policy.controlloop.participant.Policy:1.0.0
        startPhase: 0
        policyType: onap.policies.controlloop.operational.common.Apex:1.0.0
        policyId: org.onap.domain.gentleguidance.policy.GentleGuidanceAssertive:1.0.0
    org.onap.domain.gentleguidance.CdsControlLoopElementDefinition:
      version: 1.0.0
      type: org.onap.policy.clamp.controlloop.CDSControlLoopElement
      type_version: 1.0.1
      description: Control loop element for the Gentle Guidance CDS blueprint
      properties:
        provider: Ericsson
        participantType: org.onap.policy.controlloop.participant.Cds:1.0.0
        startPhase: 0
        cdsBlueprint: "Placeholder for the CDS blueprint"
    org.onap.domain.gentleguidance.ControlLoopDefinition:
      version: 1.0.0
      type: org.onap.policy.clamp.controlloop.ControlLoop
      type_version: 1.0.1
      description: Control loop definition for the Gentle Guidance domain
      properties:
        provider: Ericsson
        elements:
        - org.onap.domain.gentleguidance.KubernetesControlLoopElementDefinition:1.0.0
        - org.onap.domain.gentleguidance.RestControlLoopElementDefinition:1.0.0
        - org.onap.domain.gentleguidance.PolicyControlLoopElementDefinition:1.0.0
        - org.onap.domain.gentleguidance.CdsControlLoopElementDefinition:1.0.0

...

4. Creating Custom Control Loop Elements

Any organization can include their own component in the framework and use the framework and have the Policy Framework CLAMP manage the lifecycle of domain logic in their component as part of a Control Loop. To do this, a participant for the component must be developed that allows Control Loop Elements for that component to be run. To develop a participant, the participant must comply with the CLAMP Participants framework and in particular comply with The CLAMP Control Loop Participant Protocol. The organization must also specify a new Control Loop Element type definition in TOSCA similar to those supplied in ONAP and described in Section 1.2. This Control Loop Element type tells the CLAMP Control Loop Lifecycle management that the Control Loop Element exists and can be included in control loops. It also specifies the properties that can be specified for the Control Loop Element.

An organization can supply the code for the Participant (for example as a Java jar file) and a TOSCA artifact with the Control Loop Element definition and it can be added to the platform. In future releases, support will be provided to include participants and their Control Loop Element definitions as packaged plugins that can be installed on the platform.