Skip to content
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

wasi/k8s: add host module for doing k8 lookups #71

Merged
merged 20 commits into from
Feb 14, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
d1b3caf
wasi/k8s: add host module for doing k8 lookups
davidmdm Feb 4, 2025
ec40b78
examples: move examples directory from cmd/examples to top level exam…
davidmdm Feb 4, 2025
d34ae2f
examples: remove redundant examples
davidmdm Feb 4, 2025
8b8468c
examples: rename to be more descriptive of the example
davidmdm Feb 4, 2025
13df637
wasi/k8s: make lookup generically allocate underlying resource
davidmdm Feb 4, 2025
158759c
examples: add lookup example
davidmdm Feb 4, 2025
ab00941
examples: update lookup example
davidmdm Feb 4, 2025
c57db37
wasi/k8s: validate resource ownership on k8s.Lookup
davidmdm Feb 5, 2025
b08a5b3
yoke: test lookup resource e2e
davidmdm Feb 5, 2025
91e8da5
wasi/k8s: use build tags in order to be able to build packages with w…
davidmdm Feb 6, 2025
9897e19
atc-installer: use wasi/k8s api to avoid generating new tls secrets w…
davidmdm Feb 6, 2025
34b0a9c
deps: use go1.24.0
davidmdm Feb 11, 2025
440327f
deps: update deps
davidmdm Feb 12, 2025
74b7066
example: refactor lookup example
davidmdm Feb 12, 2025
2074572
yokecd: bump image version to use go1.24
davidmdm Feb 12, 2025
8f86f3e
yoke: added cluster-access flag to guard wasi/k8s api
davidmdm Feb 13, 2025
89836f0
atc: remove create crd option from airways as it did nothing
davidmdm Feb 14, 2025
8aeabe3
atc: support cluster access via property of Airway
davidmdm Feb 14, 2025
e0182be
yoke: fix k8s lookup test
davidmdm Feb 14, 2025
30ea138
pkg/openapi: support omitzero and update tests
davidmdm Feb 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Dockerfile.atc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM golang:1.23-alpine AS builder
FROM golang:1.24-alpine AS builder

WORKDIR /app

Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.yokecd
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM golang:1.23-alpine
FROM golang:1.24-alpine

WORKDIR /cmp

Expand Down
6 changes: 3 additions & 3 deletions Taskfile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,12 @@ tasks:

kube:
cmds:
- GOOS=wasip1 GOARCH=wasm go build -o kube.wasm ./cmd/examples/kube
- GOOS=wasip1 GOARCH=wasm go build -o basic.wasm ./examples/basic

pg:
cmds:
- GOOS=wasip1 GOARCH=wasm go build -o pg.wasm ./cmd/examples/pg
- GOOS=wasip1 GOARCH=wasm go build -o pg.wasm ./examples/embeddedfs

redis:
cmds:
- GOOS=wasip1 GOARCH=wasm go build -o redis.wasm ./cmd/examples/redis
- GOOS=wasip1 GOARCH=wasm go build -o redis.wasm ./examples/redis
38 changes: 34 additions & 4 deletions cmd/atc-installer/installer/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"crypto/sha1"
"encoding/hex"
"encoding/json"
"errors"
"fmt"
"maps"
"os"
Expand All @@ -23,6 +24,7 @@ import (

"github.com/yokecd/yoke/pkg/apis/airway/v1alpha1"
"github.com/yokecd/yoke/pkg/flight"
"github.com/yokecd/yoke/pkg/flight/wasi/k8s"
"github.com/yokecd/yoke/pkg/openapi"
)

Expand All @@ -34,6 +36,7 @@ type Config struct {
Port int `json:"port"`
ServiceAccountName string `json:"serviceAccountName"`
ImagePullPolicy corev1.PullPolicy `json:"ImagePullPolicy"`
GenerateTLS bool `json:"generateTLS"`
}

var (
Expand Down Expand Up @@ -140,7 +143,34 @@ func Run(cfg Config) error {
},
}

tls, err := NewTLS(svc)
const (
keyRootCA = "ca.crt"
keyServerCert = "server.crt"
keyServerKey = "server.key"
)

tls, err := func() (*TLS, error) {
if cfg.GenerateTLS {
return NewTLS(svc)
}
secret, err := k8s.Lookup[corev1.Secret](k8s.ResourceIdentifier{
Name: flight.Release() + "-tls",
Namespace: flight.Namespace(),
Kind: "Secret",
ApiVersion: "v1",
})
if err != nil && !k8s.IsErrNotFound(err) && !errors.Is(err, k8s.ErrorClusterAccessNotGranted) {
return nil, fmt.Errorf("failed to lookup tls secret: %T: %v", err, err)
}
if secret != nil {
return &TLS{
RootCA: secret.Data[keyRootCA],
ServerCert: secret.Data[keyServerCert],
ServerKey: secret.Data[keyServerKey],
}, nil
}
return NewTLS(svc)
}()
if err != nil {
return err
}
Expand All @@ -155,9 +185,9 @@ func Run(cfg Config) error {
Namespace: flight.Namespace(),
},
Data: map[string][]byte{
"ca.crt": tls.RootCA,
"server.crt": tls.ServerCert,
"server.key": tls.ServerKey,
keyRootCA: tls.RootCA,
keyServerCert: tls.ServerCert,
keyServerKey: tls.ServerKey,
},
}

Expand Down
2 changes: 1 addition & 1 deletion cmd/atc/internal/testing/Dockerfile.wasmcache
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM golang:1.23-alpine AS builder
FROM golang:1.24-alpine AS builder

WORKDIR /app

Expand Down
6 changes: 2 additions & 4 deletions cmd/atc/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -382,16 +382,14 @@ func TestAirTrafficController(t *testing.T) {
"failed to detect new Backend version",
)

// ALthough we create a v1 version we will be able to fetch it as a v2 version.
// Although we create a v1 version we will be able to fetch it as a v2 version.
require.NoError(
t,
commander.Takeoff(ctx, yoke.TakeoffParams{
Release: "c4ts",
Flight: yoke.FlightParams{
Input: testutils.JsonReader(backendv1.Backend{
ObjectMeta: metav1.ObjectMeta{
Name: "c4ts",
},
ObjectMeta: metav1.ObjectMeta{Name: "c4ts"},
Spec: backendv1.BackendSpec{
Image: "yokecd/c4ts:test",
Replicas: 1,
Expand Down
Loading