Configuration Examples of the 3scale APIcast gateway
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

82 lines
2.1 KiB

---
- name: Deploy an APIcast gateway with Path Routing and HTTPS
gather_facts: no
hosts: localhost
tasks:
- name: Generate a private key
openssl_privatekey:
path: '{{ playbook_dir }}/config/tls.key'
size: 1024
state: present
- name: Generate a CSR
openssl_csr:
path: '{{ playbook_dir }}/config/tls.csr'
privatekey_path: '{{ playbook_dir }}/config/tls.key'
common_name: localhost
subject_alt_name: 'DNS:localhost'
state: present
- name: Generate a self-signed certificate
openssl_certificate:
path: '{{ playbook_dir }}/config/tls.crt'
privatekey_path: '{{ playbook_dir }}/config/tls.key'
csr_path: '{{ playbook_dir }}/config/tls.csr'
provider: selfsigned
state: present
- name: Deploy APIcast
docker_container:
name: apicast-path-routing-with-https
image: quay.io/3scale/apicast:v3.4.0-rc2
volumes:
- '{{ playbook_dir }}/config:/config:ro'
env:
THREESCALE_CONFIG_FILE: /config/apicast.conf
APICAST_HTTPS_PORT: 8443
APICAST_HTTPS_CERTIFICATE: /config/tls.crt
APICAST_HTTPS_CERTIFICATE_KEY: /config/tls.key
APICAST_PATH_ROUTING: 'true'
ports:
- 8443:8443
cleanup: yes
detach: yes
state: started
- name: Wait for APIcast to start
pause:
seconds: 5
- name: Ensure Service1 is working
uri:
url: https://localhost:8443/svc1?user_key=dummy
method: GET
timeout: 5
status_code: 200
validate_certs: no
register: response
- name: The X-SVC HTTP header must be equal to "svc1"
assert:
that:
- response.x_svc == 'svc1'
- name: Ensure Service2 is working
uri:
url: https://localhost:8443/svc2?user_key=dummy
method: GET
timeout: 5
status_code: 200
validate_certs: no
register: response
- name: The X-SVC HTTP header must be equal to "svc2"
assert:
that:
- response.x_svc == 'svc2'
- name: Delete APIcast
docker_container:
name: apicast-path-routing-with-https
state: absent