# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements; and to You under the Apache License, Version 2.0.
---
# This playbook deploys the Openwhisk API Gateway route management actions.

- import_playbook: properties.yml

- hosts: ansible
  roles:
  - cli-install
  - routemgmt
