Compare commits
8 Commits
fd266ae24b
...
v1.1.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
41de38613c
|
|||
|
e0812f28aa
|
|||
|
62a85230a9
|
|||
|
13f27ef878
|
|||
|
6d70187560
|
|||
|
ba3f891122
|
|||
|
56fdcdf465
|
|||
|
ff19d6b23b
|
@@ -71,18 +71,16 @@ jobs:
|
||||
SOURCE_DATE_EPOCH: ${{ env.TIMESTAMP }}
|
||||
|
||||
- name: Kustomize manifests
|
||||
if: gitea.ref_type == 'tag'
|
||||
run: |
|
||||
./kustomize build ./manifests | sed "s/\${DIGEST}/${{ steps.build.outputs.digest }}/" > ./manifests.yaml
|
||||
|
||||
- name: Push manifests
|
||||
if: gitea.ref_type == 'tag'
|
||||
run: |
|
||||
flux push artifact oci://$OCI_REPO/manifests:latest \
|
||||
flux push artifact oci://$OCI_REPO/manifests:${{ gitea.head_ref || gitea.ref_name }} \
|
||||
--path="./manifests.yaml" \
|
||||
--source="$(git config --get remote.origin.url)" \
|
||||
--revision="$(git rev-parse HEAD)" \
|
||||
$(echo "${{ steps.meta.outputs.labels }}" | sed -e 's/^/-a /')
|
||||
|
||||
flux tag artifact oci://$OCI_REPO/manifests:latest \
|
||||
flux tag artifact oci://$OCI_REPO/manifests:${{ gitea.head_ref || gitea.ref_name }} \
|
||||
$(echo "${{ steps.meta.outputs.tags }}" | sed -e 's/^.*:/--tag /')
|
||||
|
||||
@@ -18,5 +18,5 @@ ENV RUSTC_BOOTSTRAP=1
|
||||
RUN cargo auditable build --release
|
||||
|
||||
FROM gcr.io/distroless/cc-debian12:nonroot AS runtime
|
||||
COPY --from=builder /app/target/release/tunnel_rs /tunnel_rs
|
||||
CMD ["/tunnel_rs"]
|
||||
COPY --from=builder /app/target/release/siranga /siranga
|
||||
CMD ["/siranga"]
|
||||
|
||||
@@ -40,7 +40,7 @@ By appending `-- --help` you can view the available command line options.
|
||||
|
||||
### Tip
|
||||
|
||||
To make connecting slightly easier I recommend adding the following to `~/.ssh/config`.
|
||||
To make connecting slightly easier I recommend adding the following to `~/.ssh/config`:
|
||||
|
||||
```
|
||||
Host tunnel
|
||||
|
||||
7
manifests/access-control-rule.yaml
Normal file
7
manifests/access-control-rule.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
apiVersion: authelia.huizinga.dev/v1
|
||||
kind: AccessControlRule
|
||||
metadata:
|
||||
name: tunnel
|
||||
spec:
|
||||
domain: "*.tunnel.${domain}"
|
||||
policy: one_factor
|
||||
@@ -1,10 +0,0 @@
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: authelia-acl
|
||||
annotations:
|
||||
config.huizinga.dev/fragment: authelia-acl
|
||||
data:
|
||||
rules: |
|
||||
- domain: "*.tunnel.${domain}"
|
||||
policy: one_factor
|
||||
@@ -17,6 +17,8 @@ spec:
|
||||
annotations:
|
||||
kubectl.kubernetes.io/default-container: siranga
|
||||
spec:
|
||||
# Service links cause issues with the HTTP_PORT and SSH_PORT env variables
|
||||
enableServiceLinks: false
|
||||
containers:
|
||||
- name: siranga
|
||||
image: git.huizinga.dev/dreaded_x/siranga@${DIGEST}
|
||||
|
||||
@@ -10,6 +10,6 @@ spec:
|
||||
kind: Rule
|
||||
services:
|
||||
- name: http
|
||||
port: 3000
|
||||
port: http
|
||||
tls:
|
||||
secretName: tunnel-tls
|
||||
|
||||
@@ -4,9 +4,9 @@ namespace: siranga
|
||||
resources:
|
||||
- ./namespace.yaml
|
||||
- ./service-user.yaml
|
||||
- ./secret-tunnel-key.yaml
|
||||
- ./secret-siranga-key.yaml
|
||||
- ./deployment.yaml
|
||||
- ./service.yaml
|
||||
- ./certificate.yaml
|
||||
- ./ingress-route.yaml
|
||||
- ./config-map-authelia-acl.yaml
|
||||
- ./access-control-rule.yaml
|
||||
|
||||
@@ -4,9 +4,8 @@ metadata:
|
||||
name: http
|
||||
spec:
|
||||
ports:
|
||||
- name: "3000"
|
||||
- name: http
|
||||
port: 3000
|
||||
targetPort: 3000
|
||||
selector:
|
||||
app: siranga
|
||||
---
|
||||
@@ -19,7 +18,7 @@ metadata:
|
||||
spec:
|
||||
type: LoadBalancer
|
||||
ports:
|
||||
- name: "2222"
|
||||
- name: ssh
|
||||
port: 22
|
||||
targetPort: 2222
|
||||
selector:
|
||||
|
||||
12
src/main.rs
12
src/main.rs
@@ -24,11 +24,19 @@ async fn main() -> color_eyre::Result<()> {
|
||||
|
||||
let env_filter = EnvFilter::try_from_default_env().or_else(|_| EnvFilter::try_new("info"))?;
|
||||
|
||||
if std::env::var("CARGO").is_ok() {
|
||||
let logger = tracing_subscriber::fmt::layer().compact();
|
||||
tracing_subscriber::Registry::default()
|
||||
.with(logger)
|
||||
.with(env_filter)
|
||||
.init();
|
||||
} else {
|
||||
let logger = tracing_subscriber::fmt::layer().json();
|
||||
tracing_subscriber::Registry::default()
|
||||
.with(logger)
|
||||
.with(env_filter)
|
||||
.init();
|
||||
}
|
||||
|
||||
info!(
|
||||
"Starting {} ({})",
|
||||
@@ -45,10 +53,10 @@ async fn main() -> color_eyre::Result<()> {
|
||||
};
|
||||
|
||||
let http_port = std::env::var("HTTP_PORT")
|
||||
.map(|port| port.parse())
|
||||
.map(|port| port.parse().wrap_err_with(|| format!("HTTP_PORT={port}")))
|
||||
.unwrap_or(Ok(3000))?;
|
||||
let ssh_port = std::env::var("SSH_PORT")
|
||||
.map(|port| port.parse())
|
||||
.map(|port| port.parse().wrap_err_with(|| format!("SSH_PORT={port}")))
|
||||
.unwrap_or(Ok(2222))?;
|
||||
|
||||
let domain =
|
||||
|
||||
Reference in New Issue
Block a user