diff options
| author | Xe Iaso <me@xeiaso.net> | 2025-03-03 07:14:33 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-03-03 07:14:33 -0500 |
| commit | 753c3b6cedeadb52af3889284b79fa69e7ab80ce (patch) | |
| tree | dfb2f65eb35a232449796934e170cb1bafe15668 | |
| parent | 3676818fb822f2b670a5daaa9c5788cadde51d9c (diff) | |
| parent | 6ccc79e1abb29e91e654ba0cc55858b6ffa76d14 (diff) | |
| download | x-anubis/healthcheck.tar.xz x-anubis/healthcheck.zip | |
Merge branch 'master' into anubis/healthcheckanubis/healthcheck
| -rw-r--r-- | cmd/anubis/decaymap.go | 6 | ||||
| -rw-r--r-- | go.mod | 36 | ||||
| -rw-r--r-- | go.sum | 67 | ||||
| -rw-r--r-- | kube/aeacus/headscale/deployment.yaml | 2 | ||||
| -rw-r--r-- | kube/aeacus/x/httpdebug.yaml | 12 | ||||
| -rw-r--r-- | kube/aeacus/x/kustomization.yaml | 3 | ||||
| -rw-r--r-- | kube/aeacus/x/stickers.yaml | 20 | ||||
| -rw-r--r-- | kube/aeacus/x/stickers/1password.yaml | 6 | ||||
| -rw-r--r-- | kube/aeacus/x/stickers/deployment.yaml | 60 | ||||
| -rw-r--r-- | kube/aeacus/x/stickers/ingress.yaml | 25 | ||||
| -rw-r--r-- | kube/aeacus/x/stickers/kustomization.yaml | 5 | ||||
| -rw-r--r-- | kube/aeacus/x/stickers/service.yaml | 14 | ||||
| -rw-r--r-- | wasm/malloc_other.go | 7 | ||||
| -rw-r--r-- | wasm/wasm.go | 18 | ||||
| -rw-r--r-- | wasm/wasm_host.go | 50 |
15 files changed, 155 insertions, 176 deletions
diff --git a/cmd/anubis/decaymap.go b/cmd/anubis/decaymap.go index bf55d2a..f97c4c6 100644 --- a/cmd/anubis/decaymap.go +++ b/cmd/anubis/decaymap.go @@ -37,7 +37,11 @@ func (m *DecayMap[K, V]) Get(key K) (V, bool) { if time.Now().After(value.expiry) { m.lock.Lock() - delete(m.data, key) + // Since previously reading m.data[key], the value may have been updated. + // Delete the entry only if the expiry time is still the same. + if m.data[key].expiry == value.expiry { + delete(m.data, key) + } m.lock.Unlock() return zilch[V](), false @@ -24,13 +24,13 @@ require ( github.com/dop251/goja v0.0.0-20230531210528-d7324b2d74f7 github.com/eaburns/peggy v1.0.2 github.com/facebookgo/ensure v0.0.0-20160127193407-b4ab57deab51 - github.com/gen2brain/avif v0.3.1 + github.com/gen2brain/avif v0.4.3 github.com/gen2brain/heic v0.3.0 - github.com/gen2brain/jpegxl v0.3.0 + github.com/gen2brain/jpegxl v0.4.4 github.com/gen2brain/webp v0.4.4 github.com/go-gorm/caches/v4 v4.0.5 github.com/go-interpreter/wagon v0.6.0 - github.com/goccy/go-json v0.10.2 + github.com/goccy/go-json v0.10.5 github.com/golang-jwt/jwt/v5 v5.2.1 github.com/gomarkdown/markdown v0.0.0-20240328165702-4d01890c35c0 github.com/google/go-github v17.0.0+incompatible @@ -67,7 +67,6 @@ require ( github.com/thoj/go-ircevent v0.0.0-20210723090443-73e444401d64 github.com/tmc/scp v0.0.0-20170824174625-f7b48647feef github.com/twitchtv/twirp v8.1.3+incompatible - github.com/whyrusleeping/cbor-gen v0.1.3-0.20240904181319-8dc02b38228c github.com/whyrusleeping/go-did v0.0.0-20230824162731-404d1707d5d6 go.etcd.io/bbolt v1.4.0 go.jetpack.io/tyson v0.1.1 @@ -75,7 +74,6 @@ require ( golang.org/x/crypto v0.33.0 golang.org/x/oauth2 v0.25.0 golang.org/x/sync v0.11.0 - golang.org/x/xerrors v0.0.0-20240716161551-93cc26a95ae9 google.golang.org/grpc v1.70.0 gorm.io/gorm v1.25.12 gorm.io/plugin/prometheus v0.1.0 @@ -94,7 +92,7 @@ require ( github.com/andybalholm/brotli v1.1.1 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.8 // indirect github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.29 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 // indirect github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.5.3 // indirect github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.10 // indirect github.com/bytedance/sonic v1.12.6 // indirect @@ -108,7 +106,7 @@ require ( github.com/cyphar/filepath-securejoin v0.3.6 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect - github.com/ebitengine/purego v0.7.1 // indirect + github.com/ebitengine/purego v0.8.2 // indirect github.com/emirpasic/gods v1.18.1 // indirect github.com/evanw/esbuild v0.19.11 // indirect github.com/fasthttp/router v1.5.3 // indirect @@ -117,7 +115,7 @@ require ( github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/go-git/go-billy/v5 v5.6.1 // indirect github.com/go-git/go-git/v5 v5.13.1 // indirect - github.com/go-jose/go-jose/v4 v4.0.2 // indirect + github.com/go-jose/go-jose/v4 v4.0.5 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/go-playground/validator/v10 v10.10.0 // indirect @@ -199,6 +197,7 @@ require ( github.com/valyala/fasthttp v1.58.0 // indirect github.com/valyala/fastjson v1.6.4 // indirect github.com/whyrusleeping/cbor v0.0.0-20171005072247-63513f603b11 // indirect + github.com/whyrusleeping/cbor-gen v0.1.3-0.20240904181319-8dc02b38228c // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect gitlab.com/digitalxero/go-conventional-commit v1.0.7 // indirect gitlab.com/yawning/secp256k1-voi v0.0.0-20230925100816-f2616030848b // indirect @@ -211,6 +210,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.0 // indirect golang.org/x/arch v0.6.0 // indirect + golang.org/x/xerrors v0.0.0-20240716161551-93cc26a95ae9 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20241202173237-19429a94021a // indirect gopkg.in/warnings.v0 v0.1.2 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect @@ -219,17 +219,17 @@ require ( ) require ( - github.com/aws/aws-sdk-go-v2 v1.36.1 + github.com/aws/aws-sdk-go-v2 v1.36.3 github.com/aws/aws-sdk-go-v2/config v1.27.12 - github.com/aws/aws-sdk-go-v2/credentials v1.17.59 - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.28 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.32 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.32 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.17.60 + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.29 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.33 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.33 // indirect github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.13 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.24.15 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.14 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.33.14 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.14 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.24.16 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.15 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.33.15 // indirect github.com/aws/smithy-go v1.22.2 github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect @@ -258,7 +258,7 @@ require ( github.com/sacOO7/gowebsocket v0.0.0-20221109081133-70ac927be105 github.com/sendgrid/rest v2.6.9+incompatible // indirect golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 - golang.org/x/image v0.23.0 + golang.org/x/image v0.24.0 golang.org/x/mod v0.23.0 // indirect golang.org/x/net v0.35.0 golang.org/x/sys v0.30.0 // indirect @@ -115,40 +115,40 @@ github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuW github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= -github.com/aws/aws-sdk-go-v2 v1.36.1 h1:iTDl5U6oAhkNPba0e1t1hrwAo02ZMqbrGq4k5JBWM5E= -github.com/aws/aws-sdk-go-v2 v1.36.1/go.mod h1:5PMILGVKiW32oDzjj6RU52yrNrDPUHcbZQYr1sM7qmM= +github.com/aws/aws-sdk-go-v2 v1.36.3 h1:mJoei2CxPutQVxaATCzDUjcZEjVRdpsiiXi2o38yqWM= +github.com/aws/aws-sdk-go-v2 v1.36.3/go.mod h1:LLXuLpgzEbD766Z5ECcRmi8AzSwfZItDtmABVkRLGzg= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.8 h1:zAxi9p3wsZMIaVCdoiQp2uZ9k1LsZvmAnoTBeZPXom0= github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.8/go.mod h1:3XkePX5dSaxveLAYY7nsbsZZrKxCyEuE5pM4ziFxyGg= github.com/aws/aws-sdk-go-v2/config v1.27.12 h1:vq88mBaZI4NGLXk8ierArwSILmYHDJZGJOeAc/pzEVQ= github.com/aws/aws-sdk-go-v2/config v1.27.12/go.mod h1:IOrsf4IiN68+CgzyuyGUYTpCrtUQTbbMEAtR/MR/4ZU= -github.com/aws/aws-sdk-go-v2/credentials v1.17.59 h1:9btwmrt//Q6JcSdgJOLI98sdr5p7tssS9yAsGe8aKP4= -github.com/aws/aws-sdk-go-v2/credentials v1.17.59/go.mod h1:NM8fM6ovI3zak23UISdWidyZuI1ghNe2xjzUZAyT+08= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.28 h1:KwsodFKVQTlI5EyhRSugALzsV6mG/SGrdjlMXSZSdso= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.28/go.mod h1:EY3APf9MzygVhKuPXAc5H+MkGb8k/DOSQjWS0LgkKqI= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.32 h1:BjUcr3X3K0wZPGFg2bxOWW3VPN8rkE3/61zhP+IHviA= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.32/go.mod h1:80+OGC/bgzzFFTUmcuwD0lb4YutwQeKLFpmt6hoWapU= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.32 h1:m1GeXHVMJsRsUAqG6HjZWx9dj7F5TR+cF1bjyfYyBd4= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.32/go.mod h1:IitoQxGfaKdVLNg0hD8/DXmAqNy0H4K2H2Sf91ti8sI= +github.com/aws/aws-sdk-go-v2/credentials v1.17.60 h1:1dq+ELaT5ogfmqtV1eocq8SpOK1NRsuUfmhQtD/XAh4= +github.com/aws/aws-sdk-go-v2/credentials v1.17.60/go.mod h1:HDes+fn/xo9VeszXqjBVkxOo/aUy8Mc6QqKvZk32GlE= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.29 h1:JO8pydejFKmGcUNiiwt75dzLHRWthkwApIvPoyUtXEg= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.29/go.mod h1:adxZ9i9DRmB8zAT0pO0yGnsmu0geomp5a3uq5XpgOJ8= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.33 h1:knLyPMw3r3JsU8MFHWctE4/e2qWbPaxDYLlohPvnY8c= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.33/go.mod h1:EBp2HQ3f+XCB+5J+IoEbGhoV7CpJbnrsd4asNXmTL0A= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.33 h1:K0+Ne08zqti8J9jwENxZ5NoUyBnaFDTu3apwQJWrwwA= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.33/go.mod h1:K97stwwzaWzmqxO8yLGHhClbVW1tC6VT1pDLk1pGrq4= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU= github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.29 h1:g9OUETuxA8i/Www5Cby0R3WSTe7ppFTZXHVLNskNS4w= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.29/go.mod h1:CQk+koLR1QeY1+vm7lqNfFii07DEderKq6T3F1L2pyc= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2 h1:D4oz8/CzT9bAEYtVhSBmFj2dNOtaHOtMKc2vHBwYizA= -github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.2/go.mod h1:Za3IHqTQ+yNcRHxu1OFucBh0ACZT4j4VQFF0BqpZcLY= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3 h1:eAh2A4b5IzM/lum78bZ590jy36+d/aFLgKF/4Vd1xPE= +github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3/go.mod h1:0yKJC/kb8sAnmlYa6Zs3QVYqaC8ug2AbnNChv5Ox3uA= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.5.3 h1:EP1ITDgYVPM2dL1bBBntJ7AW5yTjuWGz9XO+CZwpALU= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.5.3/go.mod h1:5lWNWeAgWenJ/BZ/CP9k9DjLbC0pjnM045WjXRPPi14= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.13 h1:SYVGSFQHlchIcy6e7x12bsrxClCXSP5et8cqVhL8cuw= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.13/go.mod h1:kizuDaLX37bG5WZaoxGPQR/LNFXpxp0vsUnqfkWXfNE= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.14 h1:2scbY6//jy/s8+5vGrk7l1+UtHl0h9A4MjOO2k/TM2E= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.14/go.mod h1:bRpZPHZpSe5YRHmPfK3h1M7UBFCn2szHzyx0rw04zro= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.10 h1:fXoWC2gi7tdJYNTPnnlSGzEVwewUchOi8xVq/dkg8Qs= github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.10/go.mod h1:cvzBApD5dVazHU8C2rbBQzzzsKc8m5+wNJ9mCRZLKPc= github.com/aws/aws-sdk-go-v2/service/s3 v1.74.1 h1:9LawY3cDJ3HE+v2GMd5SOkNLDwgN4K7TsCjyVBYu/L4= github.com/aws/aws-sdk-go-v2/service/s3 v1.74.1/go.mod h1:hHnELVnIHltd8EOF3YzahVX6F6y2C6dNqpRj1IMkS5I= -github.com/aws/aws-sdk-go-v2/service/sso v1.24.15 h1:/eE3DogBjYlvlbhd2ssWyeuovWunHLxfgw3s/OJa4GQ= -github.com/aws/aws-sdk-go-v2/service/sso v1.24.15/go.mod h1:2PCJYpi7EKeA5SkStAmZlF6fi0uUABuhtF8ILHjGc3Y= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.14 h1:M/zwXiL2iXUrHputuXgmO94TVNmcenPHxgLXLutodKE= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.14/go.mod h1:RVwIw3y/IqxC2YEXSIkAzRDdEU1iRabDPaYjpGCbCGQ= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.14 h1:TzeR06UCMUq+KA3bDkujxK1GVGy+G8qQN/QVYzGLkQE= -github.com/aws/aws-sdk-go-v2/service/sts v1.33.14/go.mod h1:dspXf/oYWGWo6DEvj98wpaTeqt5+DMidZD0A9BYTizc= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.16 h1:YV6xIKDJp6U7YB2bxfud9IENO1LRpGhe2Tv/OKtPrOQ= +github.com/aws/aws-sdk-go-v2/service/sso v1.24.16/go.mod h1:DvbmMKgtpA6OihFJK13gHMZOZrCHttz8wPHGKXqU+3o= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.15 h1:kMyK3aKotq1aTBsj1eS8ERJLjqYRRRcsmP33ozlCvlk= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.15/go.mod h1:5uPZU7vSNzb8Y0dm75xTikinegPYK3uJmIHQZFq5Aqo= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.15 h1:ht1jVmeeo2anR7zDiYJLSnRYnO/9NILXXu42FP3rJg0= +github.com/aws/aws-sdk-go-v2/service/sts v1.33.15/go.mod h1:xWZ5cOiFe3czngChE4LhCBqUxNwgfwndEF7XlYP/yD8= github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ= github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= @@ -249,8 +249,8 @@ github.com/eaburns/peggy v1.0.2 h1:RJwNVF4cvzLGiKInHGBT8sVwP5HDuVP/PaBU9tHO9Rk= github.com/eaburns/peggy v1.0.2/go.mod h1:X2pbl0EV5erfnK8kSGwo0lBCgMGokvR1E6KerAoDKXg= github.com/eaburns/pretty v1.0.0 h1:00W1wrrtMXUSqLPN0txS8j7g9qFXy6nA5vZVqVQOo6w= github.com/eaburns/pretty v1.0.0/go.mod h1:retcK8A0KEgdmb0nuxhvyxixwCmEPO7SKlK0IJhjg8A= -github.com/ebitengine/purego v0.7.1 h1:6/55d26lG3o9VCZX8lping+bZcmShseiqlh2bnUDiPA= -github.com/ebitengine/purego v0.7.1/go.mod h1:ah1In8AOtksoNK6yk5z1HTJeUkC1Ez4Wk2idgGslMwQ= +github.com/ebitengine/purego v0.8.2 h1:jPPGWs2sZ1UgOSgD2bClL0MJIqu58nOmIcBuXr62z1I= +github.com/ebitengine/purego v0.8.2/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= github.com/elazarl/goproxy v1.2.3 h1:xwIyKHbaP5yfT6O9KIeYJR5549MXRQkoQMRXGztz8YQ= github.com/elazarl/goproxy v1.2.3/go.mod h1:YfEbZtqP4AetfO6d40vWchF3znWX7C7Vd6ZMfdL8z64= @@ -284,12 +284,12 @@ github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2 github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= -github.com/gen2brain/avif v0.3.1 h1:womS2LKvhS/dSR3zIKUxtJW+riGlY48akGWqc+YgHtE= -github.com/gen2brain/avif v0.3.1/go.mod h1:s9sI2zo2cF6EdyRVCtnIfwL/Qb3k0TkOIEsz6ovK1ms= +github.com/gen2brain/avif v0.4.3 h1:pxpXOCIA4YfB6wxDagbNCpXdTh5/1q3huedPx0arqwA= +github.com/gen2brain/avif v0.4.3/go.mod h1:L0hvma2Pwz8HWgE3w7KkRIUYxnVEZ94ZfVQGKwaIQ40= github.com/gen2brain/heic v0.3.0 h1:YDw7cerzjnxmb+/o5RAEpRy9j4jsFYCh9DuP1NDOc7Q= github.com/gen2brain/heic v0.3.0/go.mod h1:+x0Y/m2EP1kd6mWvC131B3IK4eoKtLBBqJJ1uJB8CT8= -github.com/gen2brain/jpegxl v0.3.0 h1:hfnZykNPnyVksr6gtHVoiEuOHfJwXnrJLtP4RN1B7Lk= -github.com/gen2brain/jpegxl v0.3.0/go.mod h1:zi+BuuV3cTYRG3dt6dS0nT3DxVLZXkQUCIOirPEzKXk= +github.com/gen2brain/jpegxl v0.4.4 h1:d3N8xvDvKoaancSnkIyQBrSHTnbjhb9iajljiRTAFak= +github.com/gen2brain/jpegxl v0.4.4/go.mod h1:srG5W0zWofkpzWYAv3HldaSghHs4+3F0VjnL8ohpkm8= github.com/gen2brain/webp v0.4.4 h1:1cpydwbHid5ReumxE3kHWua9eimKONjeEo5CxeUcAtE= github.com/gen2brain/webp v0.4.4/go.mod h1:4B2bZAeutMBvabnV96t3S06eW3wWfr6uU5nw4X5j+zc= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= @@ -310,8 +310,8 @@ github.com/go-gorm/caches/v4 v4.0.5 h1:Sdj9vxbEM0sCmv5+s5o6GzoVMuraWF0bjJJvUU+7c github.com/go-gorm/caches/v4 v4.0.5/go.mod h1:Ms8LnWVoW4GkTofpDzFH8OfDGNTjLxQDyxBmRN67Ujw= github.com/go-interpreter/wagon v0.6.0 h1:BBxDxjiJiHgw9EdkYXAWs8NHhwnazZ5P2EWBW5hFNWw= github.com/go-interpreter/wagon v0.6.0/go.mod h1:5+b/MBYkclRZngKF5s6qrgWxSLgE9F5dFdO1hAueZLc= -github.com/go-jose/go-jose/v4 v4.0.2 h1:R3l3kkBds16bO7ZFAEEcofK0MkrAJt3jlJznWZG0nvk= -github.com/go-jose/go-jose/v4 v4.0.2/go.mod h1:WVf9LFMHh/QVrmqrOfqun0C45tMe3RoiKJMPvgWwLfY= +github.com/go-jose/go-jose/v4 v4.0.5 h1:M6T8+mKZl/+fNNuFHvGIzDz7BTLQPIounk/b9dw3AaE= +github.com/go-jose/go-jose/v4 v4.0.5/go.mod h1:s3P1lRrkT8igV8D9OjyL4WRyHvjB6a4JSllnOrmmBOA= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= @@ -342,8 +342,9 @@ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me github.com/go-yaml/yaml v2.1.0+incompatible/go.mod h1:w2MrLa16VYP0jy6N7M5kHaCkaLENm+P+Tv+MfurjSw0= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/goccy/go-json v0.10.5 h1:Fq85nIqj+gXn/S5ahsiTlK3TmC85qgirsdTP/+DeaC4= +github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/goccy/go-yaml v1.9.5/go.mod h1:U/jl18uSupI5rdI2jmuCswEA2htH9eXfferR3KfscvA= github.com/goccy/go-yaml v1.12.0 h1:/1WHjnMsI1dlIBQutrvSMGZRQufVO3asrHfTwfACoPM= github.com/goccy/go-yaml v1.12.0/go.mod h1:wKnAMd44+9JAAnGQpWVEgBzGt3YuTaQ4uXoHvE4m7WU= @@ -841,10 +842,6 @@ github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXl github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/tetratelabs/wazero v1.8.2 h1:yIgLR/b2bN31bjxwXHD8a3d+BogigR952csSDdLYEv4= -github.com/tetratelabs/wazero v1.8.2/go.mod h1:yAI0XTsMBhREkM/YDAK/zNou3GoiAce1P6+rp/wQhjs= -github.com/tetratelabs/wazero v1.8.3-0.20250217185257-70a9688a9f40 h1:+8cbydI2qMGurXlnljiiqpDSIXdVxtWfB+uZPM/BAxs= -github.com/tetratelabs/wazero v1.8.3-0.20250217185257-70a9688a9f40/go.mod h1:yAI0XTsMBhREkM/YDAK/zNou3GoiAce1P6+rp/wQhjs= github.com/tetratelabs/wazero v1.9.0 h1:IcZ56OuxrtaEz8UYNRHBrUa9bYeX9oVY93KspZZBf/I= github.com/tetratelabs/wazero v1.9.0/go.mod h1:TSbcXCfFP0L2FGkRPxHphadXPjo1T6W+CseNNY7EkjM= github.com/thlib/go-timezone-local v0.0.0-20210907160436-ef149e42d28e/go.mod h1:/Tnicc6m/lsJE0irFMA0LfIwTBo4QP7A8IfyIv4zZKI= @@ -974,8 +971,8 @@ golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbR golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/image v0.23.0 h1:HseQ7c2OpPKTPVzNjG5fwJsOTCiiwS4QdsYi5XU6H68= -golang.org/x/image v0.23.0/go.mod h1:wJJBTdLfCCf3tiHa1fNxpZmUI4mmoZvwMCPP0ddoNKY= +golang.org/x/image v0.24.0 h1:AN7zRgVsbvmTfNyqIbbOraYL8mSwcKncEj8ofjgzcMQ= +golang.org/x/image v0.24.0/go.mod h1:4b/ITuLfqYq1hqZcjofwctIhi7sZh2WaCjvsBNjjya8= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= diff --git a/kube/aeacus/headscale/deployment.yaml b/kube/aeacus/headscale/deployment.yaml index 4040c2c..563856f 100644 --- a/kube/aeacus/headscale/deployment.yaml +++ b/kube/aeacus/headscale/deployment.yaml @@ -26,7 +26,7 @@ spec: enableServiceLinks: true containers: - name: headscale - image: ghcr.io/juanfont/headscale:v0.24.2 + image: ghcr.io/juanfont/headscale:v0.25.1 imagePullPolicy: Always args: - serve diff --git a/kube/aeacus/x/httpdebug.yaml b/kube/aeacus/x/httpdebug.yaml new file mode 100644 index 0000000..511eb64 --- /dev/null +++ b/kube/aeacus/x/httpdebug.yaml @@ -0,0 +1,12 @@ +apiVersion: x.within.website/v1 +kind: App +metadata: + name: httpdebug + +spec: + image: ghcr.io/xe/x/httpdebug:latest + autoUpdate: true + + ingress: + enabled: true + host: httpdebug.xelaso.net
\ No newline at end of file diff --git a/kube/aeacus/x/kustomization.yaml b/kube/aeacus/x/kustomization.yaml index b141fbf..0106b54 100644 --- a/kube/aeacus/x/kustomization.yaml +++ b/kube/aeacus/x/kustomization.yaml @@ -1,3 +1,4 @@ resources: - - stickers + - httpdebug.yaml + - stickers.yaml - within.website
\ No newline at end of file diff --git a/kube/aeacus/x/stickers.yaml b/kube/aeacus/x/stickers.yaml new file mode 100644 index 0000000..88a4174 --- /dev/null +++ b/kube/aeacus/x/stickers.yaml @@ -0,0 +1,20 @@ +apiVersion: x.within.website/v1 +kind: App +metadata: + name: stickers + +spec: + image: ghcr.io/xe/x/stickers:latest + autoUpdate: true + + healthcheck: + enabled: true + + ingress: + enabled: true + host: stickers.xeiaso.net + + secrets: + - name: tigris-creds + itemPath: "vaults/lc5zo4zjz3if3mkeuhufjmgmui/items/kvc2jqoyriem75ny4mvm6keguy" + environment: true
\ No newline at end of file diff --git a/kube/aeacus/x/stickers/1password.yaml b/kube/aeacus/x/stickers/1password.yaml deleted file mode 100644 index b39d884..0000000 --- a/kube/aeacus/x/stickers/1password.yaml +++ /dev/null @@ -1,6 +0,0 @@ -apiVersion: onepassword.com/v1 -kind: OnePasswordItem -metadata: - name: stickers-tigris-creds -spec: - itemPath: "vaults/lc5zo4zjz3if3mkeuhufjmgmui/items/kvc2jqoyriem75ny4mvm6keguy"
\ No newline at end of file diff --git a/kube/aeacus/x/stickers/deployment.yaml b/kube/aeacus/x/stickers/deployment.yaml deleted file mode 100644 index df80271..0000000 --- a/kube/aeacus/x/stickers/deployment.yaml +++ /dev/null @@ -1,60 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: stickers - labels: - app.kubernetes.io/name: stickers - annotations: - keel.sh/policy: all - keel.sh/trigger: poll - keel.sh/pollSchedule: "@hourly" -spec: - replicas: 1 - selector: - matchLabels: - app.kubernetes.io/name: stickers - template: - metadata: - labels: - app.kubernetes.io/name: stickers - spec: - securityContext: - fsGroup: 1000 - containers: - - name: main - image: ghcr.io/xe/x/stickers:latest - imagePullPolicy: "Always" - envFrom: - - secretRef: - name: stickers-tigris-creds - resources: - limits: - cpu: "500m" - memory: "256Mi" - requests: - cpu: "250m" - memory: "128Mi" - securityContext: - runAsUser: 1000 - runAsGroup: 1000 - runAsNonRoot: true - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - seccompProfile: - type: RuntimeDefault - livenessProbe: - httpGet: - path: / - port: 8080 - httpHeaders: - - name: X-Kubernetes - value: "is kinda okay" - initialDelaySeconds: 3 - periodSeconds: 3 - env: - - name: BIND - value: ":8080" - - name: SLOG_LEVEL - value: DEBUG
\ No newline at end of file diff --git a/kube/aeacus/x/stickers/ingress.yaml b/kube/aeacus/x/stickers/ingress.yaml deleted file mode 100644 index 07c9e39..0000000 --- a/kube/aeacus/x/stickers/ingress.yaml +++ /dev/null @@ -1,25 +0,0 @@ -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: stickers - labels: - app.kubernetes.io/name: stickers - annotations: - cert-manager.io/cluster-issuer: "letsencrypt-prod" -spec: - ingressClassName: nginx - tls: - - hosts: - - stickers.xeiaso.net - secretName: stickers-xeiaso-net-public-tls - rules: - - host: stickers.xeiaso.net - http: - paths: - - pathType: Prefix - path: "/" - backend: - service: - name: stickers - port: - name: http diff --git a/kube/aeacus/x/stickers/kustomization.yaml b/kube/aeacus/x/stickers/kustomization.yaml deleted file mode 100644 index e51a60f..0000000 --- a/kube/aeacus/x/stickers/kustomization.yaml +++ /dev/null @@ -1,5 +0,0 @@ -resources: - - 1password.yaml - - deployment.yaml - - service.yaml - - ingress.yaml
\ No newline at end of file diff --git a/kube/aeacus/x/stickers/service.yaml b/kube/aeacus/x/stickers/service.yaml deleted file mode 100644 index 85834fe..0000000 --- a/kube/aeacus/x/stickers/service.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: stickers - labels: - app.kubernetes.io/name: stickers -spec: - selector: - app.kubernetes.io/name: stickers - ports: - - port: 80 - targetPort: 8080 - name: http - type: ClusterIP
\ No newline at end of file diff --git a/wasm/malloc_other.go b/wasm/malloc_other.go new file mode 100644 index 0000000..5d915f8 --- /dev/null +++ b/wasm/malloc_other.go @@ -0,0 +1,7 @@ +//go:build !wasip1 + +package wasm + +func Malloc(size uint32) Buffer { + panic("don't call this if you're not using WASI") +} diff --git a/wasm/wasm.go b/wasm/wasm.go index 5981c06..68acd17 100644 --- a/wasm/wasm.go +++ b/wasm/wasm.go @@ -2,22 +2,16 @@ package wasm import ( "unsafe" - - "github.com/tetratelabs/wazero/api" ) type String uint64 -func (value String) Load(module api.Module) string { - return string(value.LoadBytes(module)) +func (value String) Address() uint32 { + return uint32(value >> 32) } -func (value String) LoadBytes(module api.Module) []byte { - data, ok := module.Memory().Read(uint32(value>>32), uint32(value)) - if !ok { - panic("memory read out of bounds") - } - return data +func (value String) Length() uint32 { + return uint32((value << 32) >> 32) } func FromString(value string) String { @@ -26,6 +20,10 @@ func FromString(value string) String { return String(uint64(position)<<32 | uint64(bytes)) } +func (value String) String() string { + return unsafe.String((*byte)(unsafe.Pointer(uintptr(value.Address()))), value.Length()) +} + type Buffer uint64 func (buffer Buffer) Address() uint32 { diff --git a/wasm/wasm_host.go b/wasm/wasm_host.go new file mode 100644 index 0000000..01c644d --- /dev/null +++ b/wasm/wasm_host.go @@ -0,0 +1,50 @@ +//go:build !wasip1 + +package wasm + +import ( + "context" + "fmt" + + "github.com/tetratelabs/wazero/api" +) + +func (value String) Load(module api.Module) string { + return string(value.LoadBytes(module)) +} + +func (value String) LoadBytes(module api.Module) []byte { + data, ok := module.Memory().Read(uint32(value>>32), uint32(value)) + if !ok { + panic("memory read out of bounds") + } + return data +} + +func (value String) Store(ctx context.Context, module api.Module, data string) (String, error) { + buffer, err := Store(ctx, module, []byte(data)) + if err != nil { + return 0, err + } + + return String(buffer), nil +} + +func (buffer Buffer) Load(module api.Module) []byte { + data, ok := module.Memory().Read(buffer.Address(), buffer.Length()) + if !ok { + panic("memory read out of bounds") + } + return data +} + +func Store(ctx context.Context, module api.Module, data []byte) (Buffer, error) { + results, err := module.ExportedFunction("malloc").Call(ctx, uint64(len(data))) + if err != nil { + return 0, fmt.Errorf("wasm: failed to call malloc: %w", err) + } + + buffer := Buffer(results[0]) + module.Memory().Write(buffer.Address(), data) + return buffer, nil +} |
