-
Notifications
You must be signed in to change notification settings - Fork 836
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
➕ Dockerfile.arm to support arm 32bit #988
Conversation
jeankhawand
commented
Jun 10, 2023
- had to build it on my AllWinner H2 SoC which is running arm 32bit
- it is working with no issues
- it took some time to build dependencies – would be nice to have it accessible from docker registry cause it will require some effort when new version of cloudflared is out to rebuild....
|
Thanks for this work @jeankhawand . I'm going to have to test this against our internal CI (since that's what builds the docker images) and get back to you. |
closes #987 |
waiting for this to be merged, so my mikrotik device can use it😢 |
@sudarshan-reddy , do you expect this will be merged? thankful to you and @jeankhawand for your work on this. |
You can build an arm image on a Mac Silicon and transfer the image to an arm-based Mikrotik router with the following stpeps:
|
I tested the PR and can confirm that it works. Looking forward to see it merged. |
@jeankhawand Could you please make two changes to the PR?
|
…hen updating the configuration
… UDP session This code was leaking streams because it wasn't closing the quic stream after unregistering from the edge.
New gauge metrics are exposed in the prometheus endpoint to capture the current and total TCP and UDP sessions that cloudflared has proxied.
I deliberately kept this as an unregistertimeout because that was the intent. In the future we could change this to a UDPConnConfig if we want to pass multiple values here. The idea of this PR is simply to add a configurable unregister UDP timeout.
Allows for debugging the payloads that are sent in client mode to the ssh server. Required to be run with --log-directory to capture logging output. Additionally has maximum limit that is provided with the flag that will only capture the first N number of reads plus writes through the WebSocket stream. These reads/writes are not directly captured at the packet boundary so some reconstruction from the log messages will be required. Added User-Agent for all out-going cloudflared access tcp requests in client mode. Added check to not run terminal logging in cloudflared access tcp client mode to not obstruct the stdin and stdout.
Removes the final usage of raven-go and removes the dependency.
…ignal propagation
In the streambased origin proxy flow (example ssh over access), there is a chance when we do not flush on http.ResponseWriter writes. This PR guarantees that the response writer passed to proxy stream has a flusher embedded after writes. This means we write much more often back to the ResponseWriter and are not waiting. Note, this is only something we do when proxyHTTP-ing to a StreamBasedOriginProxy because we do not want to have situations where we are not sending information that is needed by the other side (eyeball).
With the new flag --management-diagnostics (an opt-in flag) cloudflared's will be able to report additional diagnostic information over the management.argotunnel.com request path. Additions include the /metrics prometheus endpoint; which is already bound to a local port via --metrics. /debug/pprof/(goroutine|heap) are also provided to allow for remotely retrieving heap information from a running cloudflared connector.
Will no longer provide full hostname with path from provided `--hostname` flag for cloudflared access to the Host header field. This addresses certain issues caught from a security fix in go 1.19.11 and 1.20.6 in the net/http URL parsing.
Pins all docker and cfsetup builds to a specific go patch version. Also ran go fix on repo.
This is simply because we no longer use the legacy R2 secret that needed this encoding.
… prefer post quantum cryptography
…ute IDs This commits makes sure that cloudflared starts using the new API endpoints for managing routes. Additionally, the delete route operation still allows deleting by CIDR and VNet but it is being marked as deprecated in favor of specifying the route ID. The goal of this change is to make it simpler for the user to delete routes without specifying Vnet.
## Summary Previously the force flag in the tunnel delete command was only explicitly deleting the connections of a tunnel. Therefore, we are changing it to use the cascade query parameter supported by the API. That parameter will delegate to the server the deletion of the tunnel dependencies implicitly instead of the client doing it explicitly. This means that not only the connections will get deleted, but also the tunnel routes, ensuring that no dependencies are left without a non-deleted tunnel.
…installed ## Summary To determine which services were installed, cloudflared, was using the command `systemctl status` this command gives an error if the service is installed but isn't running, which makes the `uninstall services` command report wrongly the services not installed. Therefore, this commit adapts it to use the `systemctl list-units` command combined with a grep to find which services are installed and need to be removed.
This changes guarantees that the coommand to report rule matches when testing local config reports the rule number using the 0-based indexing. This is to be consistent with the 0-based indexing on the log lines when proxying requests.
I tried this procedure on my mikrotik router with arm architecture, but I had this error "execve: Exec format error" |
@farnos85 On which Mikrotik router are you trying to create a container? |
|
follow it |
UPDATE: |
We are not looking to support this platform at this time. We appreciate your contribution and interest. thanks |