From 92454d8ad65dd24bb8aa87738f0155b57e89a740 Mon Sep 17 00:00:00 2001 From: FrancescoFioraEst Date: Fri, 31 Mar 2023 14:31:58 +0100 Subject: Update docs Kubernetes Participant Update "Kubernetes Participant" docs Issue-ID: POLICY-4606 Change-Id: I2f0906d8d8887444d6fdcb5762d07126f6bc58e5 Signed-off-by: FrancescoFioraEst --- .../design-impl/participants/k8s-participant.rst | 39 +++-- .../tosca/automation-composition-k8s.yml | 26 +++ .../participants/tosca/tosca-k8s-participant.yml | 181 ++------------------- 3 files changed, 66 insertions(+), 180 deletions(-) create mode 100644 docs/clamp/acm/design-impl/participants/tosca/automation-composition-k8s.yml (limited to 'docs') diff --git a/docs/clamp/acm/design-impl/participants/k8s-participant.rst b/docs/clamp/acm/design-impl/participants/k8s-participant.rst index ddce0a3c..dae5df5d 100644 --- a/docs/clamp/acm/design-impl/participants/k8s-participant.rst +++ b/docs/clamp/acm/design-impl/participants/k8s-participant.rst @@ -10,10 +10,12 @@ k8s cluster on the specified namespace. It can fetch the helm chart from remote that are configured on the helm client. The participant acts as a wrapper around the helm client and creates the required resources in the k8s cluster. +Supported message Broker are DMaap and Strimzi-Kafka. + The kubernetes participant also exposes REST endpoints for onboarding, installing and uninstalling of helm charts from the local chart database which facilitates the user to also use this component as a standalone application for helm operations. -In Kohn version, the kubernetes participant supports the following methods of installation of helm charts. +By Kohn version, the kubernetes participant supports the following methods of installation of helm charts. - Installation of helm charts from configured helm repositories and remote repositories passed via TOSCA in CLAMP. @@ -24,7 +26,7 @@ Prerequisites for using Kubernetes participant in Istanbul version: Note: - - If the kubernetes participant is deployed outside the cluster , the config file of the k8s cluster needs to be copied to the `./kube` folder of kubernetes participant's home directory to make the participant work with the external cluster. + - If the kubernetes participant is deployed outside the cluster, the config file of the k8s cluster needs to be copied to the `./kube` folder of kubernetes participant's home directory to make the participant work with the external cluster. - If the participant needs additional permission to create resources on the cluster, cluster-admin role binding can be created for the service account of the participant with the below command. @@ -33,19 +35,31 @@ Prerequisites for using Kubernetes participant in Istanbul version: .. image:: ../../images/participants/k8s-participant.png +Supported Element Types +----------------------- +Supported Element Types for Kubernetes participant will be used to define the Kubernetes participant Element Definition Types in tosca template. +Participant Supported Element Types is defined in Kubernetes participant application.yaml. + +.. code-block:: YAML + + participantSupportedElementTypes: + - + typeName: org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement + typeVersion: 1.0.0 + Defining a TOSCA CL definition for kubernetes participant: ---------------------------------------------------------- A *chart* parameter map describes the helm chart parameters in tosca template for a microservice that is used by the kubernetes participant for the deployment. A Automation Composition element in TOSCA is mapped to the kubernetes participant and also holds the helm chart parameters for a microservice defined under the properties of the Automation Composition Element. -Sample tosca template defining a participant and a automation composition element for a automation composition. :download:`click here ` +Sample tosca template defining a participant and a AC element definition. :download:`click here ` Configuring a Automation Composition Element on the kubernetes participant for a Automation Composition ------------------------------------------------------------------------------------------------------- -The user configures the following properties in the TOSCA template for the kubernetes participant: +The user defines the following properties in the TOSCA template for the kubernetes participant: .. list-table:: :widths: 15 10 50 @@ -95,26 +109,29 @@ The *repository* type is described in the following table: - String - The password to login the helm repository +Sample Automation Composition instances. +In that example the user fills the properties defined in the TOSCA for the Kubernetes participant :download:`click here ` Kubernetes participant Interactions: ------------------------------------ -The kubernetes participant interacts with Automation Composition Runtime on the northbound via DMaap. It interacts with the helm client on the southbound for performing various helm operations to the k8s cluster. +The kubernetes participant interacts with Automation Composition Runtime on the northbound via Message Broker. It interacts with the helm client on the southbound for performing various helm operations to the k8s cluster. -The communication for the Automation Composition updates and state change requests are sent from the Automation Composition Runtime to the participant via DMaap. +The communication for the Automation Composition updates and state change requests are sent from the Automation Composition Runtime to the participant via Message Broker. The participant performs appropriate operations on the k8s cluster via helm client based on the received messages from the Automation Composition Runtime. kubernetes participant Workflow: -------------------------------- -Once the participant is started, it sends a "REGISTER" event to the DMaap topic which is then consumed by the Automation Composition Runtime to register this participant on the runtime database. -The user can commission the tosca definitions from the Policy Gui to the Automation Composition Runtime that further updates the participant with these definitions via DMaap. -Once the automation composition definitions are available in the runtime database, the Automation Composition can be instantiated with the default state "UNINITIALISED" from the Policy Gui. +Once the participant is started, it sends a "REGISTER" event to the Message Broker topic which is then consumed by the Automation Composition Runtime to register this participant on the runtime database. +The user can commission the tosca definitions from the Policy Gui to the Automation Composition Runtime. +Once the automation composition definitions are available in the runtime database, the user can prime them and further updates the participant with these definitions via Message Broker. +After primed, the Automation Composition can be instantiated with the default state "UNDEPLOYED" from the Policy Gui. -When the state of the Automation Composition is changed from "UNINITIALISED" to "PASSIVE" from the Policy Gui, the kubernetes participant receives the automation composition state change event from the runtime and +When the state of the Automation Composition is changed from "UNDEPLOYED" to "DEPLOYED" from the Policy Gui, the kubernetes participant receives the automation composition state change event from the runtime and deploys the helm charts associated with each Automation Composition Elements by creating appropriate namespace on the cluster. If the repository of the helm chart is not passed via TOSCA, the participant looks for the helm chart in the configured helm repositories of helm client. The participant also monitors the deployed pods for the configured time until the pods comes to RUNNING state. It holds the deployment information of the pods including the current status of the pods after the deployment. -When the state of the Automation Composition is changed from "PASSIVE" to "UNINITIALISED" back, the participant also undeploys the helm charts from the cluster that are part of the Automation Composition Element. +When the state of the Automation Composition is changed from "DEPLOYED" to "UNDEPLOYED" back, the participant also undeploys the helm charts from the cluster that are part of the Automation Composition Element. diff --git a/docs/clamp/acm/design-impl/participants/tosca/automation-composition-k8s.yml b/docs/clamp/acm/design-impl/participants/tosca/automation-composition-k8s.yml new file mode 100644 index 00000000..0b3bc5f2 --- /dev/null +++ b/docs/clamp/acm/design-impl/participants/tosca/automation-composition-k8s.yml @@ -0,0 +1,26 @@ +name: DemoInstance0 +version: 1.0.1 +compositionId: {{compositionId}} +description: Demo automation composition instance 0 +elements: + + 709c62b3-8918-41b9-a747-d21eb79c6c21: + id: 709c62b3-8918-41b9-a747-d21eb79c6c21 + definition: + name: onap.policy.clamp.ac.element.K8S_StarterAutomationCompositionElement + version: 1.2.3 + description: Starter Automation Composition Element for the Demo + properties: + chart: + chartId: + name: acelement + version: 0.1.0 + namespace: default + releaseName: acm-starter + podName: acm-starter + repository: + repoName: chartmuseum + address: 'http://cluster-ip:8080' + overrideParams: + acelement.elementId.name: onap.policy.clamp.ac.starter + service.nodeport: 30800 diff --git a/docs/clamp/acm/design-impl/participants/tosca/tosca-k8s-participant.yml b/docs/clamp/acm/design-impl/participants/tosca/tosca-k8s-participant.yml index 1bb7f59f..c4da7a53 100644 --- a/docs/clamp/acm/design-impl/participants/tosca/tosca-k8s-participant.yml +++ b/docs/clamp/acm/design-impl/participants/tosca/tosca-k8s-participant.yml @@ -9,113 +9,7 @@ data_types: version: type: string required: true - onap.datatype.acm.Target: - derived_from: tosca.datatypes.Root - description: Definition for a entity in A&AI to perform a automation composition operation on - properties: - targetType: - type: string - description: Category for the target type - required: true - constraints: - - valid_values: - - VNF - - VM - - VFMODULE - - PNF - entityIds: - type: map - description: | - Map of values that identify the resource. If none are provided, it is assumed that the - entity that generated the ONSET event will be the target. - required: false - metadata: - clamp_possible_values: ClampExecution:CSAR_RESOURCES - entry_schema: - type: string - onap.datatype.acm.Actor: - derived_from: tosca.datatypes.Root - description: An actor/operation/target definition - properties: - actor: - type: string - description: The actor performing the operation. - required: true - metadata: - clamp_possible_values: Dictionary:DefaultActors,ClampExecution:CDS/actor - operation: - type: string - description: The operation the actor is performing. - metadata: - clamp_possible_values: Dictionary:DefaultOperations,ClampExecution:CDS/operation - required: true - target: - type: onap.datatype.acm.Target - description: The resource the operation should be performed on. - required: true - payload: - type: map - description: Name/value pairs of payload information passed by Policy to the actor - required: false - metadata: - clamp_possible_values: ClampExecution:CDS/payload - entry_schema: - type: string - onap.datatype.acm.Operation: - derived_from: tosca.datatypes.Root - description: An operation supported by an actor - properties: - id: - type: string - description: Unique identifier for the operation - required: true - description: - type: string - description: A user-friendly description of the intent for the operation - required: false - operation: - type: onap.datatype.acm.Actor - description: The definition of the operation to be performed. - required: true - timeout: - type: integer - description: The amount of time for the actor to perform the operation. - required: true - retries: - type: integer - description: The number of retries the actor should attempt to perform the operation. - required: true - default: 0 - success: - type: string - description: Points to the operation to invoke on success. A value of "final_success" indicates and end to the operation. - required: false - default: final_success - failure: - type: string - description: Points to the operation to invoke on Actor operation failure. - required: false - default: final_failure - failure_timeout: - type: string - description: Points to the operation to invoke when the time out for the operation occurs. - required: false - default: final_failure_timeout - failure_retries: - type: string - description: Points to the operation to invoke when the current operation has exceeded its max retries. - required: false - default: final_failure_retries - failure_exception: - type: string - description: Points to the operation to invoke when the current operation causes an exception. - required: false - default: final_failure_exception - failure_guard: - type: string - description: Points to the operation to invoke when the current operation is blocked due to guard policy enforcement. - required: false - default: final_failure_guard + node_types: org.onap.policy.clamp.acm.Participant: version: 1.0.1 @@ -134,17 +28,6 @@ node_types: metadata: common: true description: Specifies the organization that provides the automation composition element - participant_id: - type: onap.datatypes.ToscaConceptIdentifier - required: true - metadata: - common: true - participantType: - type: onap.datatypes.ToscaConceptIdentifier - required: true - metadata: - common: true - description: The identity of the participant type that hosts this type of automation composition Element startPhase: type: integer required: false @@ -211,7 +94,7 @@ node_types: type: onap.datatypes.ToscaConceptIdentifier description: Specifies a list of automation composition element definitions that make up this automation composition definition org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement: - version: 1.0.1 + version: 1.0.0 derived_from: org.onap.policy.clamp.acm.AutomationCompositionElement properties: chart: @@ -240,65 +123,25 @@ topology_template: description: Participant for K8S properties: provider: ONAP - org.onap.domain.database.PMSH_K8SMicroserviceAutomationCompositionElement: - # Chart from new repository + onap.policy.clamp.ac.element.K8S_StarterAutomationCompositionElement: + # Chart from any chart repository configured on helm client. version: 1.2.3 type: org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement type_version: 1.0.0 - description: Automation composition element for the K8S microservice for PMSH + description: Automation composition element for the K8S microservice for AC Element Starter properties: provider: ONAP - participant_id: - name: K8sParticipant0 - version: 1.0.0 - participantType: - name: org.onap.k8s.acm.K8SAutomationCompositionParticipant - version: 2.3.4 - chart: - chartId: - name: dcae-pmsh - version: 8.0.0 - namespace: onap - releaseName: pmshms - repository: - repoName: chartmuseum - protocol: http - address: chart-museum - port: 80 - userName: onapinitializer - password: demo123456! - overrideParams: - global.masterPassword: test + startPhase: 0 + uninitializedToPassiveTimeout: 300 + podStatusCheckInterval: 30 - org.onap.domain.database.Local_K8SMicroserviceAutomationCompositionElement: - # Chart installation without passing repository info - version: 1.2.3 - type: org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement - type_version: 1.0.0 - description: Automation composition element for the K8S microservice for local chart - properties: - provider: ONAP - participant_id: - name: K8sParticipant0 - version: 1.0.0 - participantType: - name: org.onap.k8s.acm.K8SAutomationCompositionParticipant - version: 2.3.4 - chart: - chartId: - name: nginx-ingress - version: 0.9.1 - releaseName: nginxms - namespace: test - org.onap.domain.sample.GenericK8s_AutomationCompositionDefinition: + onap.policy.clamp.ac.element.AutomationCompositionDefinition: version: 1.2.3 type: org.onap.policy.clamp.acm.AutomationComposition - type_version: 1.0.0 - description: Automation composition for Hello World + type_version: 1.0.1 + description: Automation composition for Demo properties: provider: ONAP elements: - - name: org.onap.domain.database.PMSH_K8SMicroserviceAutomationCompositionElement - version: 1.2.3 - - name: org.onap.domain.database.Local_K8SMicroserviceAutomationCompositionElement + - name: onap.policy.clamp.ac.element.K8S_StarterAutomationCompositionElement version: 1.2.3 -- cgit 1.2.3-korg