...
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
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.