VNF zero impact host maintenance

Warning

Legacy Tacker features excluding VIM feature are deprecated and will be removed in the first major release after the Tacker server version 9.0.0 (2023.1 Antelope release).

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'