Skip to content

Commit 6a89cff

Browse files
authored
oxide: initial node controller (#116)
Added a node controller to initialize Kubernetes nodes as they come online. More work is necessary to read the configuration and document how to deploy this cloud controller manager but that will be addressed in follow-up commits. Relates to #105.
1 parent 780cbc7 commit 6a89cff

File tree

5 files changed

+268
-102
lines changed

5 files changed

+268
-102
lines changed

Containerfile

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
FROM docker.io/golang:1.25.0 AS builder
2+
3+
WORKDIR /app
4+
COPY . .
5+
6+
RUN CGO_ENABLED=0 go build .
7+
8+
FROM docker.io/debian:bookworm
9+
10+
RUN apt-get update && \
11+
apt-get install -y --no-install-recommends ca-certificates curl && \
12+
apt-get clean && \
13+
rm -rf /var/lib/apt/lists/*
14+
15+
COPY --from=builder /app/oxide-cloud-controller-manager /usr/bin/oxide-cloud-controller-manager
16+
17+
ENTRYPOINT ["oxide-cloud-controller-manager"]

go.mod

Lines changed: 27 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
module github.com/oxidecomputer/oxide-cloud-controller-manager
22

3-
go 1.24.5
3+
go 1.25.0
44

55
require (
6+
github.com/oxidecomputer/oxide.go v0.5.0
7+
k8s.io/api v0.33.3
68
k8s.io/apimachinery v0.33.3
9+
k8s.io/client-go v0.33.3
710
k8s.io/cloud-provider v0.33.3
811
k8s.io/component-base v0.33.3
912
k8s.io/klog/v2 v2.130.1
@@ -21,21 +24,21 @@ require (
2124
github.com/coreos/go-semver v0.3.1 // indirect
2225
github.com/coreos/go-systemd/v22 v22.5.0 // indirect
2326
github.com/davecgh/go-spew v1.1.1 // indirect
24-
github.com/emicklei/go-restful/v3 v3.12.2 // indirect
27+
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
2528
github.com/felixge/httpsnoop v1.0.4 // indirect
2629
github.com/fsnotify/fsnotify v1.7.0 // indirect
27-
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
28-
github.com/go-logr/logr v1.4.3 // indirect
30+
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
31+
github.com/go-logr/logr v1.4.2 // indirect
2932
github.com/go-logr/stdr v1.2.2 // indirect
3033
github.com/go-logr/zapr v1.3.0 // indirect
31-
github.com/go-openapi/jsonpointer v0.21.1 // indirect
32-
github.com/go-openapi/jsonreference v0.21.0 // indirect
33-
github.com/go-openapi/swag v0.23.1 // indirect
34+
github.com/go-openapi/jsonpointer v0.21.0 // indirect
35+
github.com/go-openapi/jsonreference v0.20.2 // indirect
36+
github.com/go-openapi/swag v0.23.0 // indirect
3437
github.com/gogo/protobuf v1.3.2 // indirect
3538
github.com/golang/protobuf v1.5.4 // indirect
3639
github.com/google/btree v1.1.3 // indirect
3740
github.com/google/cel-go v0.23.2 // indirect
38-
github.com/google/gnostic-models v0.7.0 // indirect
41+
github.com/google/gnostic-models v0.6.9 // indirect
3942
github.com/google/go-cmp v0.7.0 // indirect
4043
github.com/google/uuid v1.6.0 // indirect
4144
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect
@@ -44,11 +47,12 @@ require (
4447
github.com/josharian/intern v1.0.0 // indirect
4548
github.com/json-iterator/go v1.1.12 // indirect
4649
github.com/kylelemons/godebug v1.1.0 // indirect
47-
github.com/mailru/easyjson v0.9.0 // indirect
50+
github.com/mailru/easyjson v0.7.7 // indirect
4851
github.com/moby/term v0.5.0 // indirect
4952
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
5053
github.com/modern-go/reflect2 v1.0.2 // indirect
5154
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
55+
github.com/pelletier/go-toml v1.9.5 // indirect
5256
github.com/pkg/errors v0.9.1 // indirect
5357
github.com/prometheus/client_golang v1.22.0 // indirect
5458
github.com/prometheus/client_model v0.6.1 // indirect
@@ -73,37 +77,32 @@ require (
7377
go.opentelemetry.io/proto/otlp v1.4.0 // indirect
7478
go.uber.org/multierr v1.11.0 // indirect
7579
go.uber.org/zap v1.27.0 // indirect
76-
go.yaml.in/yaml/v2 v2.4.2 // indirect
77-
go.yaml.in/yaml/v3 v3.0.4 // indirect
78-
golang.org/x/crypto v0.40.0 // indirect
80+
golang.org/x/crypto v0.36.0 // indirect
7981
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect
80-
golang.org/x/net v0.42.0 // indirect
81-
golang.org/x/oauth2 v0.30.0 // indirect
82-
golang.org/x/sync v0.16.0 // indirect
83-
golang.org/x/sys v0.34.0 // indirect
84-
golang.org/x/term v0.33.0 // indirect
85-
golang.org/x/text v0.27.0 // indirect
86-
golang.org/x/time v0.12.0 // indirect
82+
golang.org/x/net v0.38.0 // indirect
83+
golang.org/x/oauth2 v0.27.0 // indirect
84+
golang.org/x/sync v0.12.0 // indirect
85+
golang.org/x/sys v0.31.0 // indirect
86+
golang.org/x/term v0.30.0 // indirect
87+
golang.org/x/text v0.23.0 // indirect
88+
golang.org/x/time v0.9.0 // indirect
8789
google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 // indirect
8890
google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 // indirect
8991
google.golang.org/grpc v1.68.1 // indirect
90-
google.golang.org/protobuf v1.36.6 // indirect
92+
google.golang.org/protobuf v1.36.5 // indirect
9193
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
9294
gopkg.in/inf.v0 v0.9.1 // indirect
9395
gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
9496
gopkg.in/yaml.v3 v3.0.1 // indirect
95-
k8s.io/api v0.33.3 // indirect
9697
k8s.io/apiserver v0.33.3 // indirect
97-
k8s.io/client-go v0.33.3 // indirect
9898
k8s.io/component-helpers v0.33.3 // indirect
9999
k8s.io/controller-manager v0.33.3 // indirect
100100
k8s.io/kms v0.33.3 // indirect
101-
k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect
102-
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect
101+
k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff // indirect
102+
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 // indirect
103103
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 // indirect
104-
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
104+
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
105105
sigs.k8s.io/randfill v1.0.0 // indirect
106-
sigs.k8s.io/structured-merge-diff/v4 v4.7.0 // indirect
107-
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect
108-
sigs.k8s.io/yaml v1.5.0 // indirect
106+
sigs.k8s.io/structured-merge-diff/v4 v4.6.0 // indirect
107+
sigs.k8s.io/yaml v1.4.0 // indirect
109108
)

0 commit comments

Comments
 (0)