26 Commits

Author SHA1 Message Date
Burak Yigit Kaya
93078f052d
upgrade: docker-compose version to 1.29.2 (#1050) 2021-08-04 19:44:35 +00:00
Kyle Filz
17b675c833
feat: Support custom CA roots (#1015)
Mount a certificate folder to local ca storage in containers,
and add update command to cron image's entrypoint.

Result of poking and prodding from getsentry/sentry#26851
2021-07-30 18:39:47 +03:00
Burak Yigit Kaya
91f40486ca
fix(ci): Run bulids on release branches
Follow up to #980
2021-06-15 22:21:26 +03:00
Burak Yigit Kaya
2ab0590924
ci(test): Separate unit tests so they don't rely on integration tests (#910) 2021-03-30 15:02:40 -04:00
Chad Whitacre
88f90e046e
Add a partial test for geoip (#902) 2021-03-26 16:57:21 -04:00
Chad Whitacre
a868b09044
Factor out volume creation (#901) 2021-03-26 15:04:54 -04:00
Chad Whitacre
0ce7856117
Refactor relay config (#900) 2021-03-26 10:06:04 -04:00
Burak Yigit Kaya
a1c0c1fd0c
ref: Stop building local images for Sentry services (#834)
We used to build local images for Sentry services to be able to
include required plugins in the image. With this change we instead
do this in a custom entrypoint script and use the volume `/data`
to store the plugins permanently.

This should resolve many issues people have around building local
images and pushing them to places like private repositories or swarm
clusters.

This is not 100% compatible with the old way but it should still be
a mostly transparent change to many folks.
2021-02-04 12:15:59 +00:00
Burak Yigit Kaya
ee53f18ad0
breaking: Remove Python 2 support (#833) 2021-01-20 15:28:14 +00:00
Chad Whitacre
612a14c63c
Add some structure to logging with ::group:: (#827) 2021-01-19 17:30:07 -05:00
Burak Yigit Kaya
640e7fe290
ci(test): Fix 'pool is closed' errors (#826)
Fixes #823. In `install.sh` we build a local sentry image that is used by many services from using the build context under the `./sentry` directory. To avoid building this image multiple times, we also give it a specific name which is referred from multiple services. The issue is, we also run `docker-compose build --parallel` which creates a race condition when building this image as `docker-compose` doesn't check whether the image is already there or not. This is the root cause of all these random failures: an unsurprising race condition.
2021-01-19 20:43:27 +00:00
Burak Yigit Kaya
49f8684808
ci(test): Even larger pools (#825)
Attepmt to fix #823
2021-01-19 17:43:33 +00:00
Burak Yigit Kaya
2e4307b553
ci: Increase pool size to prevent pool closed errors (#819)
Based on my reading, this error comes from urllib3.

https://urllib3.readthedocs.io/en/latest/advanced-usage.html
>The behavior of the pooling for ConnectionPool is different from PoolManager. By default, if a new request is made and there is no free connection in the pool then a new connection will be created. However, this connection will not be saved if more than maxsize connections exist. This means that maxsize does not determine the maximum number of connections that can be open to a particular host, just the maximum number of connections to keep in the pool.

I think the ideal solution would be to add `retry` and `block` options to [docker-py](ce2669e3ed/docker/transport/unixconn.py (L58-L70)) but that's a long shot.
2021-01-15 23:20:39 +03:00
Burak Yigit Kaya
0ac7eed028
fix: Fix Py2 warning (#813)
Removes the obsolete `echo ''` at the end, fixes detection as `python --version` outputs to `stderr` instead of `stdout` in versions prior to 3.4 or something.
2021-01-15 01:35:57 +03:00
Burak Yigit Kaya
a1fcdd8db7
ci(test): Limit concurent jobs to 1 (#815)
This should keep the pool open.
2021-01-14 21:21:01 +00:00
Chad Whitacre
d8fd74f1d3
Standardizing on this (#814) 2021-01-14 15:24:21 -05:00
Chad Whitacre
4399fc8aa8
Unfrobulate CI (#768)
Co-authored-by: Burak Yigit Kaya <ben@byk.im>
2021-01-08 09:56:52 -05:00
Burak Yigit Kaya
f885eceaec
ref(py3): Remove SENTRY_PYTHON3 and -py3 versons (#764)
This is in preparation to make the PY3 version the default for Docker images and self-hosted. It is part **4/5**:

1. ~~Add `-py2` variants for the Python 2 build tags and introduce the `SENTRY_PYTHON2` env variable usage~~ (getsentry/sentry#22460)
2. ~~Switch getsentry/onpremise to Python 3 by default*, introducing the `SENTRY_PYTHON2` env var for Py2 builds via the `-py2` suffix~~ (getsentry/onpremise#763)
3. ~~Move the unsuffixed version of the builds to Python 3~~ (getsentry/sentry#22466)
4. **Remove the `SENTRY_PYTHON3` env var support and `-py3` prefix usage from getsentry/onpremise**
5. Remove tagging of `-py3` builds from getsentry/sentry
2020-12-05 01:46:20 +03:00
Burak Yigit Kaya
06fb0d75de
ref(py3): Make PY3 the default*, add SENTRY_PYTHON (#763)
This is in preparation to make the PY3 version the default* for Docker images and self-hosted. It is part **2/5**:

1. ~~Add `-py2` variants for the Python 2 build tags and introduce the `SENTRY_PYTHON2` env variable usage~~ (getsentry/sentry#22460)
2. __Switch getsentry/onpremise to Python 3 by default*, introducing the `SENTRY_PYTHON2` env var for Py2 builds via the `-py2` suffix__
3. Move the unsuffixed version of the builds to Python 3
4. Remove the `SENTRY_PYTHON3` env var support and `-py3` prefix usage from getsentry/onpremise
5. Remove tagging of `-py3` builds from here

_* this will only happen when item 3 above gets landed_
2020-12-04 22:43:36 +03:00
Burak Yigit Kaya
1399be6a68
feat(py3): Add Python 3 support via SENTRY_PYTHON3 env variable (#702) 2020-10-14 21:54:55 +03:00
Burak Yigit Kaya
f8a2e48ed6
build(docker): Bump min Docker & Compose versions (#676)
We need `docker-compose ps -a` for CI so we were already using 1.24.1, this aligns the rest with that.

For Docker, there are a bunch of network-related fixes in 19.03.12 and prior (DNS fallback and IPv6 advertising) that we'd like to have to see if they are going to fix some reported connectivity issues w/ onpremise.
2020-09-15 19:40:42 +03:00
Burak Yigit Kaya
23251e79b9
ci(gha): Fix intermittent test failures (#664)
GitHub team pointed us to docker/compose#3586 as the likely root cause and some digging around revealed got us to https://git.io/JUn7p as a potential fix, which we are trying here.
2020-09-08 22:03:04 +03:00
Burak Yigit Kaya
cb8bb3b2e7
ci: Disable beacon on CI e2e tests (#649)
This also brings in common pre-test commands into test.sh file.
2020-08-27 20:27:55 +03:00
Tomasz Kontusz
627c366f27
install: Keep relay available while upgrading (#615)
This continues on the ideas from #607. By "downtime" here I mean "not accepting events" - web, smtp and background processes are out of scope.

This PR adds a `--minimize-downtime` option to install.sh. This options changes the behaviour of the script by:
1. keeping nginx and relay running until the very end,
2. disabling cleanup on exit and failure,
3. explicitly reloading nginx configuration,
4. and starting the whole cluster at the end.

The results are promising: no downtime if relay version doesn't change, and only a second when it does. So far this was only tested with a curl loop, so I'm still not sure if Relay flushes the events to Sentry before getting recreated by `$dc up`.
2020-08-27 18:02:33 +03:00
Chad Whitacre
e8d882ca05
ci(gha): Fine-tune GHA event bindings (#639) 2020-08-23 21:34:01 +03:00
Chad Whitacre
4b8d424477
ci(github): Reimplement CI in GitHub Actions (#634)
Part of #627, sets us up for expanding the OS matrix we test against.
2020-08-20 22:05:19 +03:00