Jamil
ce727e7ed5
refactor(portal): Use ghcr.io for public pulls of prod images ( #3105 )
...
Noticed our public pulls are coming from `pkg.dev` for prod, so this PR
fixes that so that they're from `ghcr.io` to avoid bandwidth fees and
segregate public pulls from our own infra pulls.
<img width="463" alt="Screenshot 2024-01-03 at 12 42 51 PM"
src="https://github.com/firezone/firezone/assets/167144/22f49996-fe6b-47c7-965f-23d14c9e4e59 ">
2024-01-04 19:39:47 +00:00
Andrew Dryga
b7e3a5b4cd
Remove token timeouts filter for incidents
2023-12-19 15:45:17 -06:00
Andrew Dryga
f1e9715d79
Change staging feed channel
2023-12-12 09:41:32 -06:00
Andrew Dryga
52b284abd9
Terraform improvements for production ( #2873 )
2023-12-11 19:41:01 -06:00
Jamil
fd9cc88746
Don't use host mode networking for gateways on prod ( #2845 )
...
Try fixing masquerading by not using host mode to deploy gateway in GCP.
2023-12-09 18:49:56 +00:00
Andrew Dryga
62507dc704
Add hostname as part of entropy source to generate FIREZONE_ID on prod
2023-12-08 21:04:40 -05:00
Andrew Dryga
715392b62f
Use Ubuntu 24.04 LTS for our prod gateway deployments
2023-12-08 12:53:11 -05:00
Andrew Dryga
1bf107553d
Do not create incidents on gcloud api timeouts
2023-12-07 22:49:53 -05:00
Andrew Dryga
8fe09d2859
Report incidents to PagerDuty and monitor website/errors in logs
2023-12-07 19:06:41 -05:00
Andrew Dryga
efc71914f8
Configure ip6tables rules for docker to reflect v4 rules
2023-11-28 16:50:58 -06:00
Andrew Dryga
48722d609f
Fix production gateways deployment
2023-11-20 18:43:32 -06:00
Andrew Dryga
1ab3fdd3b5
Ephemeral gateways ( #2656 )
...
- [x] Fixed docker run command to mount a volume at `/etc/firezone`
- [x] Fixed systemd unit file to prope setcap, create writeable
`/etc/firezone` directory, use non-root user, etc
- [x] Removed `FIREZONE_ID` from our terraform scripts
Now on Sites index we only show online gateways:
<img width="1728" alt="Screenshot 2023-11-15 at 18 04 12"
src="https://github.com/firezone/firezone/assets/1877644/b532f200-0420-4427-acff-a3b8623560c5 ">
On the Site view we also show only online ones with a link to see all:
<img width="1728" alt="Screenshot 2023-11-15 at 18 02 33"
src="https://github.com/firezone/firezone/assets/1877644/9774dfac-4340-41d4-8404-586e081505f5 ">
All can be seen on a separate page:
<img width="1728" alt="Screenshot 2023-11-15 at 18 02 27"
src="https://github.com/firezone/firezone/assets/1877644/5d135f60-c7af-4e48-9ebb-626ff7461316 ">
Some of the functions I've added are pretty dirty hacks, we really need
to implement filters from #2029 to properly implement those and remove
code duplicates.
2023-11-16 11:17:22 -06:00
Andrew Dryga
33ab23b636
Cleanup UX and fix a bunch of TODOs ( #2641 )
...
This PR cleans up a lot of TODO and some issues I've discovered while
fixing them, there are _a few_ UI changes.
We show `(you)` next to your name on the actor view page, where
`Profile` link goes from the dropdown menu:
<img width="1728" alt="Screenshot 2023-11-13 at 19 05 35"
src="https://github.com/firezone/firezone/assets/1877644/f52b2531-e3be-4d3a-a587-4f9f54ca2c49 ">
Relays were way behind Gateways in terms of view code, so I changed them
to be exactly the same:
<img width="1728" alt="Screenshot 2023-11-13 at 18 54 39"
src="https://github.com/firezone/firezone/assets/1877644/a9f0905d-80d2-4e91-a744-c4baf7ad4a7c ">
We also show authorizations on the Actor page because previously to find
"what this user did" you had to go through all user clients
individually:
<img width="1728" alt="Screenshot 2023-11-13 at 18 54 27"
src="https://github.com/firezone/firezone/assets/1877644/02ada445-e175-427e-99de-f9fa5bdd5aab ">
I've noticed there is some confusion around sign-in slugs so I added a
home page where you can use ID or slug to get the in link (not all the
clients will know you need to put that in the URL) and recently used
accounts:
<img width="1728" alt="Screenshot 2023-11-13 at 18 54 06"
src="https://github.com/firezone/firezone/assets/1877644/ccfb9198-ed1f-4b3e-a26f-b76bab24243c ">
Buttons to copy the code are more visible now, I've used our accent
color but am open to better ideas:
<img width="1728" alt="Screenshot 2023-11-13 at 19 10 29"
src="https://github.com/firezone/firezone/assets/1877644/a2c0658e-1003-409b-b5ad-d5d3ade60a10 ">
When code is copied it's also more visible:
<img width="699" alt="Screenshot 2023-11-13 at 19 11 41"
src="https://github.com/firezone/firezone/assets/1877644/62e793d2-d760-4aa7-9a42-92a6bbfcbf52 ">
We also do not redirect from that page automatically, but the large
button becomes green with the text changed:
<img width="660" alt="Screenshot 2023-11-13 at 19 12 11"
src="https://github.com/firezone/firezone/assets/1877644/780dcde3-8018-4405-91e5-984288431ec1 ">
2023-11-14 13:02:21 -06:00
Andrew Dryga
c4a3c2a630
Deploy Metabase and demo instance with access to it ( #2606 )
2023-11-07 18:09:37 -06:00
Andrew Dryga
4deb5797ff
Try to resolve country coordinates from LB-provided country code and use US as default
2023-10-31 18:50:20 -06:00
Andrew Dryga
ad26e508ff
GeoIP routing and load-balancing for traffic ( #2517 )
2023-10-31 15:01:37 -06:00
Jamil
2bca378f17
Allow data plane configuration at runtime ( #2477 )
...
## Changelog
- Updates connlib parameter API_URL (formerly known under different
names as `CONTROL_PLANE_URL`, `PORTAL_URL`, `PORTAL_WS_URL`, and
friends) to be configured as an "advanced" or "hidden" feature at
runtime so that we can test production builds on both staging and
production.
- Makes `AUTH_BASE_URL` configurable at runtime too
- Moves `CONNLIB_LOG_FILTER_STRING` to be configured like this as well
and simplifies its naming
- Fixes a timing attack bug on Android when comparing the `csrf` token
- Adds proper account ID validation to Android to prevent invalid URL
parameter strings from being saved and used
- Cleans up a number of UI / view issues on Android regarding typos,
consistency, etc
- Hides vars from from the `relay` CLI we may not want to expose just
yet
- `get_device_id()` is flawed for connlib components -- SMBios is rarely
available. Data plane components now require a `FIREZONE_ID` now instead
to use for upserting.
Fixes #2482
Fixes #2471
---------
Signed-off-by: Jamil <jamilbk@users.noreply.github.com >
Co-authored-by: Gabi <gabrielalejandro7@gmail.com >
2023-10-30 23:46:53 -07:00
Andrew Dryga
1991659046
Fix container push for prod releases ( #2494 )
2023-10-23 22:49:29 -06:00
Andrew Dryga
8b8881f415
Make CodeQL a part of CI workflow ( #2492 )
2023-10-23 16:16:09 -06:00
Andrew Dryga
428eddd570
Clean up terraform module for gateway ( #2474 )
...
Switched back to `cos-105` to reduce attack surface and generally have
less maintenance and cleaned up the module to be more reusable for our
customers.
2023-10-20 12:29:54 -06:00
Andrew Dryga
593410be72
Deploy dogfood gateways on Google Cloud ( #2468 )
2023-10-20 03:14:36 -06:00
Andrew Dryga
711fb67868
Simplify gateway module
2023-10-20 00:48:57 -06:00
Andrew Dryga
414028a8ee
Fix typos
2023-10-20 00:38:27 -06:00
Andrew Dryga
7464ee91bd
Fix gateway deploy module
2023-10-20 00:36:46 -06:00
Andrew Dryga
0d7ae2b328
Deploy 2 gateways to Google Cloud
2023-10-20 00:23:56 -06:00
Andrew Dryga
c09f4d812d
Fix alerting rules
2023-10-19 23:48:42 -06:00
Andrew Dryga
ee9dfc6ea7
Add TODO's for WAF rules
2023-10-19 23:14:17 -06:00
Andrew Dryga
4fc7ae5d0e
Alert when services are down
2023-10-19 23:14:16 -06:00
Andrew Dryga
7034aa3853
Add missing dependencies
2023-10-19 20:35:30 -06:00
Andrew Dryga
66302a5063
Production environment ( #2449 )
2023-10-19 19:20:51 -06:00
Jamil
573124bd2f
Document relay gateway client CLIs ( #2424 )
...
Fixes #2363
* Rename `relay` package to `firezone-relay` so that binaries outputted
match the `firezone-*` cli naming scheme
* Rename `firezone-headless-client` package to `firezone-linux-client`
for consistency
* Add READMEs for user-facing CLI components (there will also be docs
later)
2023-10-19 00:59:17 +00:00
Jamil
6ec10b2669
Revert "Fix/website mdx" ( #2434 )
...
Reverts firezone/firezone#2433
2023-10-18 11:42:54 -07:00
Jamil
caef531b17
Fix/website mdx ( #2433 )
2023-10-18 11:42:18 -07:00
Andrew Dryga
0aab4077f8
Fix auth flow state, bump COS to 109, enable fluentbit logging, auto-remove docker registry artifacts ( #2315 )
2023-10-11 16:19:47 -06:00
Andrew Dryga
17a4171e04
Bind to higher port numbers
...
When you change the user in a Dockerfile using USER default, the process inside the container runs with the permissions of that user. In COS, only the root user (or processes with elevated privileges) can bind to ports below 1024. So, if our application is trying to bind to a port below 1024, and it's not running as root, we are getting an error.
2023-10-06 12:29:41 -06:00
Andrew Dryga
6e0f4d9563
Increase timeouts for rolling deploys
2023-10-06 10:30:48 -06:00
Andrew Dryga
e5fff809c0
Streamline apps versioning for Elixir and Terraform ( #2257 )
2023-10-05 20:29:25 -07:00
Andrew Dryga
55a54a328a
Temporary allow http traffic to staging websocket endpoint
2023-10-05 11:14:16 -06:00
Andrew Dryga
9d45081f27
Remove usage of deprecated terraform provider
2023-09-28 21:46:10 -06:00
Thomas Eizinger
075d03432f
fix(relay): remove debug exporter ( #2153 )
...
It turns out that this one never worked. I found this in the logs:
> * error decoding 'exporters': unknown type: "debug" for id: "debug"
(valid values: [alibabacloud_logservice awscloudwatchlogs awss3
googlecloudpubsub instana loadbalancing skywalking awsemf
azuredataexplorer prometheus logging awskinesis dynatrace
googlemanagedprometheus kafka sentry otlphttp awsxray carbon cassandra
elasticsearch f5cloud googlecloud sumologic tanzuobservability
tencentcloud_logservice coralogix dataset influxdb logicmonitor loki
parquet pulsar otlp azuremonitor datadog file logzio mezmo
prometheusremotewrite signalfx splunk_hec zipkin opencensus sapm
clickhouse])
Co-authored-by: Jamil <jamilbk@users.noreply.github.com >
2023-09-26 09:21:06 -06:00
Andrew Dryga
c6ec7ab2db
Drop healthcheck traces
2023-09-21 14:32:02 -06:00
Thomas Eizinger
32d6a55b01
ci: lint cloud-init config for elixir-app ( #2105 )
2023-09-21 11:47:39 -06:00
Thomas Eizinger
2e3171bbf8
fix(relay): only listen for traces & metrics on localhost ( #2102 )
...
This fixes two warnings in our logs that tell us to not listen on
`0.0.0.0`. See
https://github.com/open-telemetry/opentelemetry-collector/blob/main/docs/security-best-practices.md#safeguards-against-denial-of-service-attacks .
I don't use the HTTP receiver for sending traces or metrics so that one
can safely be disabled.
2023-09-21 06:51:26 +00:00
Thomas Eizinger
635a5d4091
feat(relay): enable debug logs for otel collector ( #2099 )
...
The `debug` exporter prints statements like the following to stdout:
> 2023-09-07T09:57:43.468-0700 info TracesExporter {"kind": "exporter",
"data_type": "traces", "name": "debug", "resource spans": 1, "spans": 2}
Activating debug logs should give us overall more insight into what this
thing is doing.
2023-09-21 06:35:19 +00:00
Thomas Eizinger
5ed3601231
ci(terraform): ensure relay cloud-init config is valid ( #2097 )
...
I found the following in the serial port logs on GC:
> [ 24.279297] cloud-init[742]: 2023-09-20 19:34:00,095 -
schema.py[WARNING]: Invalid cloud-config provided: Please run 'sudo
cloud-init schema --system' to see the schema errors.
Not sure if it causes any problems at the moment because the spans seem
to import fine but I figured it cannot hurt to add a linter to our CI.
2023-09-21 03:08:27 +00:00
Andrew Dryga
9281b7fede
Allow client logs and messages instrumentation ( #2086 )
...
Closes #2019
2023-09-18 15:03:51 -06:00
Thomas Eizinger
9cfd28f73a
fix(relay): re-label more metrics to prevent exporter from failing ( #2074 )
2023-09-18 07:14:48 +00:00
Andrew Dryga
cefc7cc989
Make sure metrics are not rejected due to reserved naming
2023-09-14 01:22:52 -06:00
Andrew Dryga
6f2818f7c7
Produce less state diff due to IPv6 addr formatting
2023-09-14 01:03:50 -06:00
Andrew Dryga
86f04bff63
Trace api app and finish file renames ( #2069 )
2023-09-14 00:24:40 -06:00