Files
tacker/doc/source/reference/maintenance_usage_guide.rst
Yasufumi Ogawa ddf28104a3 Update version of cirros image to 0.5.2
We've been using old cirros-0.4.0 for long time, and don't need to fix
the version of cirros to 0.4.0. This patch is update to the latest
0.5.2.

Most of the changes in this patch is replacing `image`, `hash` and
`version` in TOSCA definition files. The rest of them are:

* Replace images. First one is only an actual image, and rest of them
  are empty text files which is a trick for reducing total size in
  tacker repo. So, text files are not replaced, but renamed simply.
  * tacker/tests/etc/samples/etsi/nfv/common/Files/images/cirros-0.5.2-x86_64-disk.img
  * samples/vnf_packages/Files/images/cirros-0.5.2-x86_64-disk.img
  * tacker/tests/etc/samples/etsi/nfv/test_csar_utils_data/sample_vnfpkg_no_meta_single_vnfd/Files/images/cirros-0.5.2-x86_64-disk.img
  * tacker/tests/etc/samples/sample_vnf_package_csar_in_meta_and_manifest/Files/images/cirros-0.5.2-x86_64-disk.img

* Update functional tests verifying images. A refactor of defining
  package size is included.

* Update devstack script, and helper scripts under `contrib` dir.

* Update API references and documents describing usage of the image.

Signed-off-by: Yasufumi Ogawa <yasufum.o@gmail.com>

Implements: blueprint update-cirros-052
Change-Id: I081b791dc986ab10f4845784b3e19dbb626e3cac
2021-08-30 21:31:12 +09:00

5.0 KiB

VNF zero impact host maintenance

Tacker allows you to maintenance host with VNF zero impact. Maintenance workflows will be performed in the Fenix service by creating a session which can do scaling, migrating VNFs and patch hosts.

References

Installation and configurations

  1. You need Fenix, Ceilometer and Aodh OpenStack services.
  2. Modify the below configuration files:

/etc/ceilometer/event_pipeline.yaml

sinks:
  - name: event_sink
    publishers:
        - panko://
        - notifier://
        - notifier://?topic=alarm.all

/etc/ceilometer/event_definitions.yaml:

- event_type: 'maintenance.scheduled'
  traits:
    service:
      fields: payload.service
    allowed_actions:
      fields: payload.allowed_actions
    instance_ids:
      fields: payload.instance_ids
    reply_url:
      fields: payload.reply_url
    state:
      fields: payload.state
    session_id:
      fields: payload.session_id
    actions_at:
      fields: payload.actions_at
      type: datetime
    project_id:
      fields: payload.project_id
    reply_at:
      fields: payload.reply_at
      type: datetime
    metadata:
      fields: payload.metadata
- event_type: 'maintenance.host'
  traits:
    host:
      fields: payload.host
    project_id:
      fields: payload.project_id
    session_id:
      fields: payload.session_id
    state:
      fields: payload.state

Deploying maintenance tosca template with tacker

When template is normal

If Fenix service is enabled and maintenance event_types are defined, then all VNF created by legacy VNFM will get ALL_MAINTENANCE resource in Stack.

resources:
  ALL_maintenance:
    properties:
      alarm_actions:
      - http://openstack-master:9890/v1.0/vnfs/e8b9bec5-541b-492c-954e-cd4af71eda1f/maintenance/0cc65f4bba9c42bfadf4aebec6ae7348/hbyhgkav
      event_type: maintenance.scheduled
    type: OS::Aodh::EventAlarm

When template has maintenance property

If VDU in VNFD has maintenance property, then VNFM creates [VDU_NAME]_MAINTENANCE alarm resources and will be use for VNF software modification later. This is not works yet. It will be updated.

Sample tosca-template:

tosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0

description: VNF TOSCA template with maintenance

metadata:
  template_name: sample-tosca-vnfd-maintenance

topology_template:
  node_templates:
    VDU1:
      type: tosca.nodes.nfv.VDU.Tacker
      properties:
        maintenance: True
        image: cirros-0.5.2-x86_64-disk
        capabilities:
          nfv_compute:
            properties:
              disk_size: 1 GB
              mem_size: 512 MB
              num_cpus: 2

    CP1:
      type: tosca.nodes.nfv.CP.Tacker
      properties:
        management: true
        order: 0
        anti_spoofing_protection: false
      requirements:
        - virtualLink:
            node: VL1
        - virtualBinding:
            node: VDU1

    VL1:
      type: tosca.nodes.nfv.VL
      properties:
        network_name: net_mgmt
        vendor: Tacker

  policies:
    - SP1:
        type: tosca.policies.tacker.Scaling
        properties:
          increment: 1
          cooldown: 120
          min_instances: 1
          max_instances: 3
          default_instances: 2
        targets: [VDU1]

Configure maintenance constraints with config yaml

When Fenix does maintenance, it requires some constraints for zero impact. Like below config file, each VNF can set and update constraints.

maintenance:
  max_impacted_members: 1
  recovery_time: 60,
  mitigation_type: True,
  lead_time: 120,
  migration_type: 'MIGRATE'