1 changed files with 95 additions and 0 deletions
@ -0,0 +1,95 @@ |
|||||
|
ansible-cicd |
||||
|
========= |
||||
|
[](https://travis-ci.org/nmasse-itix/threescale-cicd) |
||||
|
Enables Continuous Delivery with Red Hat 3scale API Management Platform (3scale AMP). |
||||
|
|
||||
|
Requirements |
||||
|
------------ |
||||
|
|
||||
|
This role requires: |
||||
|
- an instance of 3scale API Management Platform (hosted or on-premise) |
||||
|
- an instance of Red Hat SSO if you plan to use OpenID Connect authentication |
||||
|
- two APIcast gateways (staging and production), either hosted or self-managed |
||||
|
- a Swagger 2.0 file describing the API you want to publish |
||||
|
|
||||
|
All the components are driven through APIs, so no SSH connection is required! |
||||
|
|
||||
|
On the control node, the `jmespath` library is required. If it is not already there, |
||||
|
you can install it with: |
||||
|
``` |
||||
|
pip install jmespath |
||||
|
``` |
||||
|
|
||||
|
Role Variables |
||||
|
-------------- |
||||
|
|
||||
|
A description of the settable variables for this role should go here, including any variables that are in defaults/main.yml, vars/main.yml, and any variables that can/should be set via parameters to the role. Any variables that are read from other roles and/or the global scope (ie. hostvars, group vars, etc.) should be mentioned here as well. |
||||
|
|
||||
|
Dependencies |
||||
|
------------ |
||||
|
|
||||
|
This role has no dependencies. |
||||
|
|
||||
|
Example: Deploy an API on 3scale SaaS with hosted APIcast gateways |
||||
|
---------------- |
||||
|
|
||||
|
If you want to deploy the classic "Echo API" on a SaaS 3scale instance using API Keys, |
||||
|
you can do it in three steps: |
||||
|
1. Craft a Swagger file for your Echo API |
||||
|
2. Build your inventory file |
||||
|
3. Write the playbook |
||||
|
4. Run the playbook! |
||||
|
|
||||
|
First, make sure your swagger file has the required information: |
||||
|
``` |
||||
|
swagger: '2.0' |
||||
|
info: |
||||
|
x-threescale-system-name: 'echo-api' |
||||
|
title: 'Echo API' |
||||
|
version: '1.0' |
||||
|
host: 'echo-api.3scale.net' |
||||
|
paths: |
||||
|
/: |
||||
|
get: |
||||
|
operationId: Echo |
||||
|
summary: 'Get an echo' |
||||
|
description: 'Get an echo from the server' |
||||
|
x-threescale-smoketests-operation: true |
||||
|
responses: |
||||
|
200: |
||||
|
description: 'An Echo from the server' |
||||
|
security: |
||||
|
- apikey: [] |
||||
|
securityDefinitions: |
||||
|
apikey: |
||||
|
name: api-key |
||||
|
in: header |
||||
|
type: apiKey |
||||
|
``` |
||||
|
In this Swagger file, the following fields are used: |
||||
|
- `x-threescale-system-name` is used as system_name for the configuration objects in 3scale |
||||
|
- `title` is used as the name of the service definition |
||||
|
- `version` is used for proper versioning and follows the [semver scheme](https://semver.org/). |
||||
|
- `host` is the DNS name of the existing API backend to expose |
||||
|
- `schemes` is the |
||||
|
|
||||
|
|
||||
|
|
||||
|
``` |
||||
|
- hosts: threescale |
||||
|
gather_facts: no |
||||
|
vars: |
||||
|
threescale_cicd_openapi_file: '/path/to/api-swagger.yaml' |
||||
|
roles: |
||||
|
- threescale-cicd |
||||
|
``` |
||||
|
|
||||
|
License |
||||
|
------- |
||||
|
|
||||
|
BSD |
||||
|
|
||||
|
Author Information |
||||
|
------------------ |
||||
|
|
||||
|
- Nicolas Massé, Red Hat |
||||
Loading…
Reference in new issue