Add tests for proxy rate limiting
diff --git a/.kitchen.yml b/.kitchen.yml
index 2db27ce..cfb7f2a 100644
--- a/.kitchen.yml
+++ b/.kitchen.yml
@@ -60,6 +60,11 @@
pillars-from-files:
nginx.sls: tests/pillar/proxy.sls
+ - name: proxy-rate-limit
+ provisioner:
+ pillars-from-files:
+ nginx.sls: tests/pillar/proxy_rate_limit.sls
+
- name: redirect
provisioner:
pillars-from-files:
diff --git a/.travis.yml b/.travis.yml
index 9071f65..fee457f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -20,12 +20,14 @@
- PLATFORM=epcim/salt-formulas:saltstack-ubuntu-xenial-salt-2016.3 SUITE=horizon-no-ssl
- PLATFORM=epcim/salt-formulas:saltstack-ubuntu-xenial-salt-2016.3 SUITE=horizon-with-ssl
- PLATFORM=epcim/salt-formulas:saltstack-ubuntu-xenial-salt-2016.3 SUITE=proxy
+ - PLATFORM=epcim/salt-formulas:saltstack-ubuntu-xenial-salt-2016.3 SUITE=proxy-rate-limit
- PLATFORM=epcim/salt-formulas:saltstack-ubuntu-xenial-salt-2016.3 SUITE=redirect
- PLATFORM=epcim/salt-formulas:saltstack-ubuntu-xenial-salt-2016.3 SUITE=static
- PLATFORM=epcim/salt-formulas:saltstack-ubuntu-xenial-salt-2016.3 SUITE=stats
- PLATFORM=epcim/salt-formulas:saltstack-ubuntu-xenial-salt-2017.7 SUITE=horizon-no-ssl
- PLATFORM=epcim/salt-formulas:saltstack-ubuntu-xenial-salt-2017.7 SUITE=horizon-with-ssl
- PLATFORM=epcim/salt-formulas:saltstack-ubuntu-xenial-salt-2017.7 SUITE=proxy
+ - PLATFORM=epcim/salt-formulas:saltstack-ubuntu-xenial-salt-2017.7 SUITE=proxy-rate-limit
- PLATFORM=epcim/salt-formulas:saltstack-ubuntu-xenial-salt-2017.7 SUITE=redirect
- PLATFORM=epcim/salt-formulas:saltstack-ubuntu-xenial-salt-2017.7 SUITE=static
- PLATFORM=epcim/salt-formulas:saltstack-ubuntu-xenial-salt-2017.7 SUITE=stats
diff --git a/tests/pillar/proxy_rate_limit.sls b/tests/pillar/proxy_rate_limit.sls
new file mode 100644
index 0000000..4e41fa9
--- /dev/null
+++ b/tests/pillar/proxy_rate_limit.sls
@@ -0,0 +1,47 @@
+_dollar: '$'
+salt:
+ minion:
+ enabled: true
+nginx:
+ server:
+ enabled: true
+ extras: false
+ bind:
+ address: 127.0.0.1
+ protocol: tcp
+ site:
+ nginx_proxy_site01:
+ enabled: true
+ type: nginx_proxy
+ name: site01
+ proxy:
+ host: 127.0.0.1
+ port: 808
+ protocol: http
+ host:
+ name: cloudlab.domain.com
+ port: 31337
+ limit:
+ enabled: True
+ ip_whitelist:
+ - 127.0.0.1
+ burst: 600
+ rate: 10r/s
+ nodelay: True
+ subfilters:
+ show_active_instance:
+ input: ${_dollar}{binary_remote_addr}${_dollar}{request_uri}
+ mode: blacklist
+ items:
+ - "~.*servers/detail[?]name=.*&status=ACTIVE"
+ rate: 2r/m
+ burst: 2
+ nodelay: True
+ server_list:
+ input: ${_dollar}{binary_remote_addr}${_dollar}{request_uri}
+ mode: blacklist
+ items:
+ - "~.*servers/detail$"
+ rate: 30r/m
+ burst: 20
+ nodelay: True