Commit graph

465 commits

Author SHA1 Message Date
Manuel Alejandro de Brito Fontes
1443ebf5a8
Cleanup of e2e docker images (#4962) 2020-01-25 17:43:21 -03:00
HowJMay
ad8a01f945 fix: Fix typo
Fix typo in comment
2020-01-25 16:03:18 +08:00
Boris Djurdjevic
665f924e9e Add proxy protocol support for X-Forwarded-Port
Fixes https://github.com/kubernetes/ingress-nginx/issues/4951
2020-01-24 13:50:35 +01:00
Manuel Alejandro de Brito Fontes
c8015c7734
Update nginx image, use docker buildx and remove qemu (#4923)
* Update nginx image, use docker buildx and remove qemu

* Update e2e image
2020-01-14 20:52:57 -03:00
Manuel Alejandro de Brito Fontes
2af6305a4f Fix flaking e2e tests 2020-01-05 14:08:56 -03:00
Manuel Alejandro de Brito Fontes
1f2820a343 GeoIP test are temporarily disabled 2020-01-04 15:17:24 -03:00
Manuel Alejandro de Brito Fontes
f9e2b7c14b Fix status code 2020-01-04 13:23:16 -03:00
Manuel Alejandro de Brito Fontes
fbdd924a45 Update nginx image 2020-01-04 13:23:16 -03:00
Manuel Alejandro de Brito Fontes
6c92c80073 Fix sticky session for ingress without host 2020-01-02 16:52:49 -03:00
Manuel Alejandro de Brito Fontes
a0523c3c8a
Use a named location for authSignURL (#4859) 2019-12-24 22:50:25 -03:00
Manuel Alejandro de Brito Fontes
5c30820d1f Remove hard-coded annotation and don't use map pointers 2019-12-13 03:05:20 -03:00
Manuel Alejandro de Brito Fontes
c2550930b1 Fix e2e test flakes 2019-12-13 01:34:52 -03:00
Manuel Alejandro de Brito Fontes
0dce5be743 Migrate ingress definitions from extensions to networking.k8s.io 2019-12-12 21:25:00 -03:00
Elvin Efendi
49ba53b7b6 regression test for duplicate hsts 2019-12-12 13:45:43 -05:00
Kamil Domański
16b5ad3c09 add e2e test for HTTP->HTTPS redirection 2019-12-09 15:56:21 +01:00
Manuel Alejandro de Brito Fontes
46953ccb4d
Update nginx image and Go to 1.13.4 (#4785) 2019-11-29 15:20:18 -03:00
Manuel Alejandro de Brito Fontes
61d902db14 Remove Lua resty waf feature 2019-11-26 10:37:43 -03:00
Thomas Jackson
500b043f27 Don't use DNS resolution to "validate FQDN"
As the controller stands today this "validation" is done once per config load, which means if the DNS query fails for any reason the endpoint will remain dead until both (1) a change happens to the ingress and (2) the DNS resolution works. If the user configured the name we should just pass it through, this way the lua dns can attempt to re-query it at its leisure.
2019-10-13 13:16:47 -07:00
Kubernetes Prow Robot
fb025ab501
Merge pull request #4087 from MRoci/master
Define Modsecurity Snippet via ConfigMap
2019-09-30 15:19:32 -07:00
Andrea Spacca
e84c8cd705 ISSUE-4244 e2e test 2019-09-29 23:28:44 +02:00
MRoci
1ee081ccc8
test modsecurity-snippet 2019-09-28 09:54:10 +02:00
Manuel Alejandro de Brito Fontes
2bd8121338
Change default for proxy-add-original-uri-header 2019-09-25 10:57:31 -03:00
Elvin Efendi
fe2ea692a6 adjust tests to the new no-reload on cert update world 2019-09-25 06:59:47 -04:00
Elvin Efendi
799f0ae76d more meaningful assertion for tls hsts test 2019-09-24 15:39:20 -04:00
A Gardner
786a3b6862 Add support for configmap of headers to be sent to external auth service 2019-09-24 10:53:23 -04:00
A Gardner
376b862c23 Add annotation to support map of user/pass pairs in basic auth 2019-09-13 11:33:33 -04:00
Manuel Alejandro de Brito Fontes
ce3e3d51c3
WIP Remove nginx unix sockets (#4531)
* Remove nginx unix sockets
* Use an emptyDir volume for /tmp in PSP e2e tests
2019-09-08 18:14:54 -03:00
Manuel Alejandro de Brito Fontes
1433cde9e6
Improve the time to run e2e tests 2019-09-05 11:46:53 -04:00
Kubernetes Prow Robot
74031cc8b8
Merge pull request #4528 from aledbf/clean-docker
Cleanup of docker images
2019-09-03 18:04:58 -07:00
Manuel Alejandro de Brito Fontes
dc20551288
Cleanup of docker images 2019-09-03 19:10:40 -04:00
Manuel Alejandro de Brito Fontes
48c89cbe3c
Switch to official kind images (#4527) 2019-09-03 16:46:43 -04:00
Manuel Alejandro de Brito Fontes
c2935ca35c
Refactor health checks and wait until NGINX process ends 2019-09-01 15:31:27 -04:00
Manuel Alejandro de Brito Fontes
c85450c1e7
Remove hard-coded names from e2e test and use local docker dependencies (#4502) 2019-09-01 14:16:52 -04:00
Manuel Alejandro de Brito Fontes
fcd3054f13
Lint code using staticcheck (#4471) 2019-08-23 12:08:40 -04:00
Kubernetes Prow Robot
75d65bbd15
Merge pull request #4327 from leki75/proxyssl
Add proxy_ssl_* directives
2019-08-18 09:14:04 -07:00
Guangming Wang
3c05cc4225
cleanup: fix typos in framework.go
Signed-off-by: Guangming Wang <guangming.wang@daocloud.io>
2019-08-17 23:16:15 +08:00
Guangming Wang
8cf384b212
cleanup logging message typos in rewrite.go
Signed-off-by: Guangming Wang <guangming.wang@daocloud.io>
2019-08-16 23:36:24 +08:00
Gabor Lekeny
65b9e2c574 Merge branch 'master' of https://github.com/kubernetes/ingress-nginx into proxyssl 2019-08-16 06:21:53 +02:00
Manuel Alejandro de Brito Fontes
23ed3ba4c4
Fix file permissions to support volumes 2019-08-15 20:48:37 -04:00
Manuel Alejandro de Brito Fontes
816f4b0824
Fix service type external name using the name 2019-08-15 12:09:42 -04:00
Elvin Efendi
b21c721196 lua-shared-dicts improvements, fixes and documentation 2019-08-14 22:10:56 -04:00
Kubernetes Prow Robot
dd0fe4b458
Merge pull request #4422 from ElvinEfendi/lua-resolv-conf-search
teach lua about search and ndots settings in resolv.conf
2019-08-14 17:36:33 -07:00
Kubernetes Prow Robot
0d690fba1a
Merge pull request #4356 from aledbf/only-dynamic-mode
Only support SSL dynamic mode
2019-08-14 17:08:35 -07:00
Elvin Efendi
1be52afa8d e2e test for service with incomplete external name 2019-08-14 18:03:30 -04:00
Gabor Lekeny
8a2a0e915a Add e2e tests for proxyssl 2019-08-14 11:49:28 +02:00
Kubernetes Prow Robot
adef152db8
Merge pull request #4379 from diazjf/mirror
Allow Requests to be Mirrored to different backends
2019-08-13 17:52:24 -07:00
Elvin Efendi
d46b4148fa Lua /etc/resolv.conf parser and some refactoring 2019-08-13 18:34:54 -04:00
Manuel Alejandro de Brito Fontes
80bd481abb
Only support SSL dynamic mode 2019-08-13 17:33:34 -04:00
Manuel Alejandro de Brito Fontes
8a9298ae27
Add helper to extract prometheus metrics in e2e tests 2019-08-13 12:53:40 -04:00
Kubernetes Prow Robot
8c472190d1
Merge pull request #4086 from jeroen92/issue-4038
Resolve #4038, move X-Forwarded-Port variable to the location context
2019-08-09 08:07:25 -07:00
tals
a2e667c082 lua shared dict from cm
lua shared dict teml test and update func sign

lua shared dict cm test

lua shared dict integration test

lua shared dict add cm parsing

lua shared dict change test header
2019-08-08 12:44:11 +03:00
Jeroen Schutrup
8dd912114e
Move X-Forwarded-Port variable to the location context
Resolves issue #4038 where the X-Forwarded-Port header would be set to the value of the https listening port if all of the following settings were satisfied:
- The ingress controller was started with a non-default HTTPS port set with the `--https-port` argument
- An ingress is created having:
  - the `nginx.ingress.kubernetes.io/auth-url` annotation set
  - TLS enabled

This commit solves this issue by moving the setting of the `pass_server_port` variable from the server, one level down to the location context.
2019-08-06 17:00:58 +02:00
Fernando Diaz
386486e969 Allow Requests to be Mirrored to different backends
Add a feature which allows traffic to be mirrored to
additional backends. This is useful for testing how
requests will behave on different "test" backends.

See https://nginx.org/en/docs/http/ngx_http_mirror_module.html
2019-08-01 11:53:58 -05:00
Charle Demers
72271e9313
FastCGI backend support (#2982)
Co-authored-by: Pierrick Charron <pierrick@adoy.net>
2019-07-31 10:39:21 -04:00
Kubernetes Prow Robot
589c9a20f9
Merge pull request #4278 from moolen/feat/auth-req-cache
feat: auth-req caching
2019-07-17 12:06:12 -07:00
Moritz Johner
23504db770 feat: auth-req caching
add a way to configure the `proxy_cache_*` [1] directive for external-auth.
The user-defined cache_key may contain sensitive information
(e.g. Authorization header).
We want to store *only* a hash of that key, not the key itself on disk.

[1] http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_key

Signed-off-by: Moritz Johner <beller.moritz@googlemail.com>
2019-07-17 18:39:04 +02:00
Manuel Alejandro de Brito Fontes
d5c7fa8cfb
Fix scripts to be able to run tests in docker 2019-07-17 11:06:53 -04:00
E. Stuart Hicks
3b0c523e49 added proxy-http-version annotation to override the HTTP/1.1 default connection type to reverse proxy backends 2019-07-08 14:32:00 -04:00
Elvin Efendi
08906ef8f2 add comment to the test 2019-07-04 18:39:29 -04:00
Elvin Efendi
e988217fdf e2e test for ewma 2019-07-03 16:25:53 -04:00
Elvin Efendi
964a484b2f GetLbAlgorithm helper func for e2e 2019-07-03 08:15:41 -04:00
Manuel Alejandro de Brito Fontes
004d0c8214
Fix go imports 2019-06-30 18:58:18 -04:00
Kubernetes Prow Robot
a2009484f7
Merge pull request #4249 from ElvinEfendi/trailing-dot
test to make sure dynamic cert works trailing dot in domains
2019-06-29 16:43:22 -07:00
Manuel Alejandro de Brito Fontes
975a63516d
Update kind to 0.4.0 2019-06-29 18:32:02 -04:00
Elvin Efendi
f771e7247a test to make sure dynamic cert works trailing dot in domains 2019-06-28 16:21:59 -04:00
Manuel Alejandro de Brito Fontes
591887089f
Add e2e test suite to detect memory leaks in lua 2019-06-27 22:05:52 -04:00
Manuel Alejandro de Brito Fontes
225f881ed0
Add e2e test for invalid secrets 2019-06-25 09:28:52 -04:00
Manuel Alejandro de Brito Fontes
85a848faaf
Fix misspelled and e2e check 2019-06-24 23:47:22 -04:00
Kubernetes Prow Robot
5dfc7e211f
Merge pull request #4221 from aledbf/upgrade-nginx-image
Switch to openresty image
2019-06-24 09:45:57 -07:00
Manuel Alejandro de Brito Fontes
dca5557c50
In case of errors running e2e tests, print the generated nginx.conf file 2019-06-23 22:51:39 -04:00
Manuel Alejandro de Brito Fontes
ca6b61f639
Update e2e tests for openresty 2019-06-23 22:51:39 -04:00
Manuel Alejandro de Brito Fontes
5670e3d9de
Add e2e tests for grpc using https://grpcb.in 2019-06-18 23:44:10 -04:00
Manuel Alejandro de Brito Fontes
1ed6d89c7b
Add e2e test for service type=ExternalName 2019-06-17 23:12:24 -04:00
Manuel Alejandro de Brito Fontes
84102eec2b
Migrate to new networking.k8s.io/v1beta1 package 2019-06-13 11:32:39 -04:00
Kubernetes Prow Robot
251f48b120
Merge pull request #4135 from nicknovitski/deployment-api-appsv1
Use apps/v1 api group in e2e tests
2019-05-29 16:50:18 -07:00
Nick Novitski
e1958b8272 Run PodSecurityPolicy E2E test in parallel
Previously, this test modified a ClusterRole used by _every_ test.  It had to be run serially, with a special teardown function that restored the state of the ClusterRole for any other serial tests.

Now every test gets its own cluster role, which means this test can be safely run in parallel with all the others, without any special teardown.
2019-05-29 14:13:04 -07:00
Nick Novitski
d617e5abdc Use apps/v1 api group in e2e tests 2019-05-29 12:12:45 -07:00
Manuel Alejandro de Brito Fontes
c2227a058d
Refactor e2e test 2019-05-27 06:31:01 -04:00
Manuel Alejandro de Brito Fontes
c4597522bf
Refactor whitelist from map to standard allow directives 2019-05-27 04:55:38 -04:00
Nick Novitski
51ad0bc54b Rearrange deployment files into kustomizations 2019-05-19 12:35:54 -07:00
Manuel Alejandro de Brito Fontes
d32079e69c
Allow to use a custom k8s version in e2e tests 2019-05-15 20:58:58 -04:00
Manuel Alejandro de Brito Fontes
3dd1699637
Add dependencies for code generator 2019-05-14 20:15:49 -04:00
Manuel Alejandro de Brito Fontes
be2792c5f9
Refactor scripts to run e2e tests 2019-05-14 20:15:43 -04:00
Manuel Alejandro de Brito Fontes
7be1dccea7
Add option to run scripts in debug mode 2019-05-13 22:31:06 -04:00
Nick Novitski
8ea40bbcb9 fix typo: deployement->deployment 2019-05-07 16:16:06 -07:00
okryvoshapka-connyun
8cc9afe8ee Added Global External Authentication settings to configmap parameters incl. addons 2019-05-03 12:08:16 +02:00
Anthony Ho
bd694bf3de add e2e coverage for multi auth 2019-04-18 10:32:15 -04:00
Kubernetes Prow Robot
34734edc6e
Merge pull request #4005 from Shopify/proxy-next-upstream-timeout
Support proxy_next_upstream_timeout
2019-04-15 09:10:09 -07:00
Alex Kursell
ffeb1fe348 Support proxy_next_upstream_timeout 2019-04-15 11:08:57 -04:00
Elvin Efendi
b13432dbe0 adjust default ssl cert e2e test 2019-04-13 15:00:44 -04:00
Elvin Efendi
1ddf5d2752 regression test for dynamic cert related default-certificate issue 2019-04-09 22:11:21 -04:00
Elvin Efendi
107bec676a fix custom default backend test title 2019-04-09 20:24:45 -04:00
Kubernetes Prow Robot
39ecab8d5a
Merge pull request #3954 from Shopify/lb-configmap
Fix load-balance configmap value
2019-04-02 05:10:34 -07:00
Alex Kursell
4f819b6256 Fix load-balance configmap value 2019-04-01 15:55:36 -04:00
Kubernetes Prow Robot
b87cc5a1a6
Merge pull request #3786 from Shopify/rewrite-x-forwarded-prefix
Fix x-forwarded-prefix annotation
2019-03-31 16:18:32 -07:00
Elvin Efendi
87e962682f properly parse x-forwarded-host 2019-03-31 15:10:45 -04:00
Elvin Efendi
496ff07bf1 replace some of the Nginx configuration to Lua code 2019-03-31 12:04:52 -04:00
Alex Kursell
fdd445cb2a Fix e2e-tests 2019-03-29 16:25:25 -04:00
Alex Kursell
188295550c Simplify x-forwarded-prefix annotation 2019-03-29 16:25:25 -04:00
Manuel Alejandro de Brito Fontes
14a9e9f3fa
Update dependencies client-go to release-11.0 and kubernetes-1.14.0 2019-03-28 20:43:18 -03:00
Manuel Alejandro de Brito Fontes
3ec1028d0b
Fix dynamic SSL certificate for aliases and redirect-from-to-www 2019-03-28 16:29:11 -03:00
Kubernetes Prow Robot
e624fe171d
Merge pull request #3839 from perprogramming/bugfix/panic-on-multiple-non-matching-canary
Fix panic on multiple non-matching canary
2019-03-27 16:46:48 -07:00
Gregor Noczinski
1bef3e75b2 Set X-Request-ID for the default-backend, too. 2019-03-22 11:33:11 +01:00
Manuel Alejandro de Brito Fontes
3339db2cb5
Migrate e2e cluster to kind 2019-03-20 18:36:29 -03:00
Elvin Efendi
1d59e4f1fe enable dynamic SSL mode by default 2019-03-17 14:58:06 -04:00
Per Bernhardt
c995e13249 Improve text, error level, tests... 2019-03-12 15:57:36 +01:00
Alex Kursell
d3ac73be79 Remove session-cookie-hash annotation 2019-03-04 10:34:48 -05:00
Per Bernhardt
8a40e82ffb Fix panic on multiple non-matching canary 2019-03-04 12:30:59 +01:00
Alex Kursell
28d99c6d7d Set default for satisfy annotation to nothing 2019-02-26 15:05:45 -05:00
Mikhail Marchenko
8b3702c829 Enable access log for default backend
disable log on default_server
2019-02-26 11:14:31 +03:00
Kubernetes Prow Robot
bb7a3f3527
Merge pull request #3812 from ecosia/jg-customerrors-e2e-removeunused
Removes unused const from customhttperrors e2e test
2019-02-25 11:40:57 -08:00
jasongwartz
164b8590a3 Removes unused const from customhttperrors e2e test 2019-02-25 17:27:05 +01:00
Manuel Alejandro de Brito Fontes
11177c95ec Fix e2e tests 2019-02-25 12:37:20 -03:00
Kubernetes Prow Robot
d8ec96ca7d
Merge pull request #3730 from ecosia/jg-customerrors-defaultbackend
Changes CustomHTTPErrors annotation to use custom default backend
2019-02-25 07:22:07 -08:00
Kubernetes Prow Robot
8f5e7de623
Merge pull request #3800 from aledbf/refactor-e2e
Refactor e2e
2019-02-24 16:33:54 -08:00
Manuel Alejandro de Brito Fontes
5e249d3366
Refactor e2e tests to use the service ClusterIP 2019-02-24 20:04:07 -03:00
jasongwartz
3865e30a00 Changes CustomHTTPErrors annotation to use custom default backend
Updates e2e test

Removes focus from e2e test

Fixes renamed function

Adds tests for new template funcs

Addresses gofmt

Updates e2e test, fixes custom-default-backend test by creating service

Updates docs
2019-02-24 22:48:56 +01:00
Kubernetes Prow Robot
7b2495047f
Merge pull request #3781 from zoumo/proxy-buffer-number
feat: configurable proxy buffers number
2019-02-22 12:11:46 -08:00
Jim Zhang
dc63e5d185 fix: rename proxy-buffer-number to proxy-buffers-number 2019-02-22 10:21:17 +08:00
Manuel Alejandro de Brito Fontes
8b6e4d4697
Use UsePortInRedirects only if enabled 2019-02-21 17:48:45 -03:00
Jim Zhang
c92d29d462 feat: configurable proxy buffer number 2019-02-20 18:05:09 +08:00
Kubernetes Prow Robot
15d5ef95ef
Merge pull request #3740 from Shopify/session-annotation-reload
Fix ingress updating for session-cookie-* annotation changes
2019-02-19 15:14:21 -08:00
Alex Kursell
c180a0998b Fix session-cookie-* annotation reloading 2019-02-19 17:27:08 -05:00
Anthony Ho
ec04852526 Create custom annotation for satisfy "value" 2019-02-19 15:58:35 -05:00
Kubernetes Prow Robot
201718ec0f
Merge pull request #3775 from kppullin/fix-l4-dns-resolve-failures
Fix DNS lookup failures in L4 services
2019-02-19 11:11:48 -08:00
Kevin Pullin
3ac57097f6 Add 'waitForLuaSync' sleep in external name TCP test 2019-02-17 20:32:27 -08:00
Kevin Pullin
f6aded2c51 Fix DNS failures in L4 services 2019-02-17 14:12:10 -08:00
Kubernetes Prow Robot
b72dfa99d8
Merge pull request #3765 from ElvinEfendi/custom-http-error-bug-fix
simplify customhttperrors e2e test and add regression test and fix a bug
2019-02-14 06:51:33 -08:00
Elvin Efendi
1959191cf3 simplify customhttperrors e2e test and add regression test 2019-02-14 08:11:18 -05:00
Alex Kursell
7e3304d4f9 Apply annotations to default location 2019-02-11 14:32:49 -05:00
Alex Kursell
9534f8bc43 Add debug tool to image 2019-02-08 11:25:04 -05:00
Kubernetes Prow Robot
17e788b8e1
Merge pull request #3684 from aledbf/health
Replace Status port using a socket
2019-02-06 13:49:08 -08:00
Manuel Alejandro de Brito Fontes
34b0580225
Replace Status port using a socket 2019-02-06 18:00:10 -03:00
Tim Reddehase
16dcace669 do not wait for endpoints that shouldn't exist
If there are no replicas defined, do not wait
around for the respective endpoints, since none
are expected.
2019-02-03 16:53:38 +01:00
Tim Reddehase
018a1e4d94 respond with 503 when there are no endpoints
* related to:
  * https://github.com/kubernetes/ingress-nginx/issues/3070
  * https://github.com/kubernetes/ingress-nginx/issues/3335
* add a 503 test
  * test a service that starts out empty
    (a.k.a. ingress-nginx controller (re-)start)
  * test scaling up (should route traffic accordingly)
  * test scaling down to empty service
  * use custom deployments for scaling test.
* provide a fix by updating the lua table (cache) of the configured backends
  to unset the backend if there are no endpoints available.
2019-02-03 11:43:47 +01:00
minherz
de2a1ece6d add header-value annotation
add new annotation (header-value)
parse it and propogate to lua script
alter balancer rule to include it into the canary routing logic
add e2e test to validate fallback for canary-by-header-value
add description of canary-by-header-value to documentation
2019-01-30 23:23:44 +02:00
Alex Kursell
ca74960905 Fix --disable-catch-all 2019-01-25 14:53:55 -05:00
Kubernetes Prow Robot
1db9c91af4
Merge pull request #3363 from skeeey/master
Document for cookie expires annotation
2019-01-14 07:52:28 -08:00
liuwei
7aa5834948 add cookie expires document and fix a flaw for session-cookie-expires 2019-01-11 15:35:39 +08:00
Manuel Alejandro de Brito Fontes
0db09f425d
Refactor e2e tls helper 2019-01-10 20:59:49 -03:00
Manuel Alejandro de Brito Fontes
a3bcbeb3d2
Add support for redirect https to https when from-to-www-redirect is defined 2019-01-10 20:59:49 -03:00
Kubernetes Prow Robot
b433108ead
Merge pull request #3634 from Shopify/hyphen-in-canary-by-cookie
canary by cookie should support hypen in cookie name
2019-01-08 11:00:49 -08:00
Elvin Efendi
ba7b542d78 canary by cookie should support hypen in cookie name 2019-01-08 13:15:02 -05:00
Maxime Ginters
3fa8395f7f Fix a bug in Ingress update handler 2019-01-08 09:28:42 -05:00
Kubernetes Prow Robot
8f57f9578d
Merge pull request #3586 from Shopify/disable-catch-all
Add --disable-catch-all option to disable catch-all server
2019-01-07 07:16:26 -08:00
Diego Woitasen
60b983503b Consistent hashing to a subset of nodes. It works like consistent hash,
but instead of mapping to a single node, we map to a subset of nodes.
2019-01-03 01:32:52 -03:00
Kubernetes Prow Robot
29118750be
Merge pull request #3342 from aledbf/allowPrivilegeEscalation
Allow privilege escalation
2019-01-02 17:49:39 -08:00
Kubernetes Prow Robot
71cc6df74f
Merge pull request #3174 from Shopify/rewrite-regex
Generalize Rewrite Block Creation and Deprecate AddBaseUrl (not backwards compatible)
2019-01-02 12:30:18 -08:00
Manuel Alejandro de Brito Fontes
09e2466671
Add support to run e2e tests serially 2019-01-02 15:47:26 -03:00
Manuel Alejandro de Brito Fontes
a73dac2c0b
Fix proxy_host variable configuration 2019-01-02 15:31:27 -03:00