Skip to content

Commit dbad3ac

Browse files
committed
Merge branch 'main' into feat/activity-viewer-role
2 parents 09d8678 + 6061b27 commit dbad3ac

35 files changed

Lines changed: 568 additions & 104 deletions

.claude/settings.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"extraKnownMarketplaces": {
3+
"datum-claude-code-plugins": {
4+
"source": {
5+
"source": "github",
6+
"repo": "datum-cloud/claude-code-plugins"
7+
}
8+
}
9+
},
10+
"enabledPlugins": {
11+
"datum-platform@datum-claude-code-plugins": true,
12+
"datum-gtm@datum-claude-code-plugins": true
13+
}
14+
}

.devcontainer/devcontainer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "Kubebuilder DevContainer",
3-
"image": "docker.io/golang:1.24",
3+
"image": "docker.io/golang:1.26",
44
"features": {
55
"ghcr.io/devcontainers/features/docker-in-docker:2": {},
66
"ghcr.io/devcontainers/features/git:1": {}

.github/workflows/build-and-test.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ on:
44
push:
55
branches:
66
- main
7+
- '**'
78
pull_request:
89
release:
910
types:
@@ -15,7 +16,7 @@ jobs:
1516
id-token: write
1617
contents: read
1718
packages: write
18-
uses: datum-cloud/actions/.github/workflows/publish-docker.yaml@v1.9.0
19+
uses: datum-cloud/actions/.github/workflows/publish-docker.yaml@v1.14.0
1920
with:
2021
image-name: datum
2122
secrets: inherit
@@ -26,7 +27,7 @@ jobs:
2627
id-token: write
2728
contents: read
2829
packages: write
29-
uses: datum-cloud/actions/.github/workflows/publish-kustomize-bundle.yaml@v1.9.0
30+
uses: datum-cloud/actions/.github/workflows/publish-kustomize-bundle.yaml@v1.14.0
3031
with:
3132
bundle-name: ghcr.io/datum-cloud/datum-kustomize
3233
bundle-path: config

.github/workflows/lint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,4 @@ jobs:
2020
- name: Run linter
2121
uses: golangci/golangci-lint-action@v9
2222
with:
23-
version: v2.1.6
23+
version: v2.12.2

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Build the manager binary
2-
FROM docker.io/golang:1.24 AS builder
2+
FROM docker.io/golang:1.26 AS builder
33
ARG TARGETOS
44
ARG TARGETARCH
55

README.md

Lines changed: 45 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<p align="left">
44
<a href="https://cloud.datum.net">Datum Cloud</a> -
5-
<a href="https://docs.datum.net">Docs</a> -
5+
<a href="https://www.datum.net/docs">Docs</a> -
66
<a href="https://link.datum.net/discord">Community Discord</a> -
77
<a href="https://www.datum.net/blog/">Blog</a> -
88
<a href="https://www.linkedin.com/company/datum-cloud/">LinkedIn</a>
@@ -11,9 +11,7 @@
1111
## Why Datum?
1212

1313
We believe that AI is changing everything — not just how we work and create, but how
14-
quickly new applications, agents, and even clouds are being built. Digital
15-
leaders today must orchestrate a complex, fragmented web of clouds, specialty
16-
providers, customers, and data.
14+
quickly new applications, agents, and clouds are being built.
1715

1816
The Internet is built on data center [meet-me
1917
rooms](https://en.wikipedia.org/wiki/Meet-me_room), where telco providers and
@@ -22,85 +20,78 @@ cross-connects. A new connection takes days or weeks of humans moving things
2220
around to set up.
2321

2422
We believe the next era of the Internet is already here, and it's growing
25-
fast. In the [alt-cloud](https://github.com/datum-cloud/awesome-alt-clouds)
23+
fast. In the [alt-cloud](https://www.alt-cloud.org/)
2624
universe, you don't think about virtual machines and VPCs, you think about
2725
*services*. You connect your Vercel app with your Supabase instance all wired up
28-
with your Kestra workflow, monitored by your Resolve SRE agent. There isn't a
26+
with your Kestra workflow, monitored by your favorite SRE agent. There isn't a
2927
switch or routing table in sight. It's just virtual plumbing to make your
30-
business go.
28+
business go, powered by a fleet of agents.
3129

3230
With Datum, cloud and AI-native builders can use the tools they love (like
33-
Cursor or a Kubernetes native CLI) to access the internet superpowers that
34-
today’s tech giants leverage at scale: authoritative DNS, distributed proxies,
31+
Claude, Cursor or a Kubernetes native CLI) to access the internet superpowers that
32+
today’s tech giants leverage at scale: authoritative DNS, edge proxies,
3533
global backbones, deterministic routing, cloud on-ramps, and private
3634
interconnection.
3735

3836
That's why we're building Datum: to help build 1k clouds in the age of AI.
3937

4038
## So what is Datum?
4139

42-
### Fully programmable and AI-native
40+
### An open network cloud built for AI
4341

44-
- Developer- and agent-friendly protocols, interfaces, and workflows
45-
- Programmatic interconnection between providers and services
46-
- Security through network-level encryption that's built-in and impossible to break or disable
47-
- Built using the "operating system for AI" Kubernetes API patterns for operator
48-
tooling and familiarity (`kubectl`, Helm, etc.)
42+
- Developer and agent-friendly protocols, interfaces, and workflows
43+
- Backed by an AGPvL 3.0 license
44+
- Powerful suite of infrastructure primitives, deployed at the edge
45+
- Built using Kubernetes API patterns for operator tooling and familiarity (`datumctl`, Helm, etc.)
46+
- Flexible deployment models (public cloud, managed cloud, BYOC, OSS)
4947

50-
### Neutral by design
48+
### Neutral & flexible by design
5149

50+
- Ecosystem friendly partner model
5251
- No allegiance to a single cloud, vendor, or region
53-
- Operates as a trusted, independent layer for alt clouds, incumbents, and
54-
digital-first enterprises
55-
56-
### Bring your own infra
57-
58-
- Use Datum’s cloud control plane along with its global network and distributed
59-
compute
60-
- Or run components in your own cloud or infra (e.g., GCP, AWS, NetActuate,
61-
Vultr, etc.)
62-
63-
### Maximum flexibility
64-
65-
- Feed full telemetry to your preferred tools (Grafana Cloud, Honeycomb,
66-
Datadog, etc.)
67-
- Support for policy enforcement via SRv6
52+
- Operates as a trusted, independent layer for alt clouds, incumbents, and digital-first enterprises
53+
- Feed full telemetry to your preferred tools (Grafana Cloud, etc)
6854

6955
---
7056

71-
## Some of our favorite features
57+
## Key features
7258

7359
### Declarative management
7460

75-
Datum works just like Kubernetes, because it *is* Kubernetes. Define your desired infrastructure state and our components reconcile the living system to match. No more syncing or drift.
61+
Our most important feature isn't a "what" but a "how". Datum works just like Kubernetes, because it *is* Kubernetes. Define your desired infrastructure state and our components reconcile the living system to match. No more syncing or drift.
7662

7763
The Datum control plane is natively compatible with tooling from the Kubernetes
7864
ecosystem. Datum APIs are defined as [Custom Resources][k8s-custom-resources],
7965
and resources are managed by operators which can be deployed into any Kubernetes
8066
cluster.
8167

82-
Use the tools you're familiar with - `kubectl` for interacting with API
83-
resources via the CLI, `kustomize` or `terraform` for configuration management,
84-
or any other tool compatible with the Kubernetes API.
68+
Use the tools you're familiar with, but especially `datumctl` for interacting with API
69+
resources via the CLI. Read more [about datumctl here](https://www.datum.net/docs/datumctl/overview).
70+
71+
### AI Edge
72+
An Envoy-based edge that provides an intelligent HTTPProxy along with a Coraza-based Web Application Firewall (WAF) to protect and route internet traffic to backend services. We support HTTP(S) 1.1, HTTP2, gRPC, and WebSockets.
73+
74+
### Galactic VPCs
8575

86-
[k8s-custom-resources]:
87-
https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/
76+
Internet backbones weren't designed for most humans, let alone agents. Our Galactic VPC feature is built for an agentic world to provide policy-driven SRv6 virtual backbones that go anywhere.
8877

89-
### Workloads
78+
### UFOs
9079

91-
The `Workload` resource provides a provider-agnostic way to manage groups of
92-
compute instances (VMs or containers). Define instance templates, placement
93-
rules (where instances should run across locations/providers), scaling behavior,
94-
network attachments, and volume mounts. The responsible infrastructure provider
95-
operator handles the provisioning.
80+
We've partnered with Unikraft to build out a modern edge compute layer that is ideal for agentic and network use cases. "Unikernel Function Offloads" provide 100% isolation, millisecond cold starts, and scale to zero snapshotting.
9681

97-
### Gateways
82+
### Connectors
9883

99-
Leveraging the standard Kubernetes Gateway API (`GatewayClass`,
100-
`Gateway`,`HTTPRoute`, etc.), Datum allows you to define how external or
101-
internal traffic should connect to your services. Manage TLS certificates,
102-
configure routing logic, and control network ingress/egress across the
103-
Datum infrastructure.
84+
We plan to support all kinds of connections, from developer-focused (e.g. Tailscale Tailnets, Wireguard VPNs) to low level L2/L3 telco (AWS Direct Connect, Equinix Fabric, Megaport Onramps, etc). We've started with QUIC-based tunnels powered by the [Iroh protocol](https://www.iroh.computer/).
85+
86+
### Essentials
87+
88+
We support a growing collection of features that help make agentic and internet scale applications "go". While these may not be the star of any show, they are necessary ingredients.
89+
90+
- Authoritative DNS
91+
- Domain resource tracking
92+
- Fine grained roles and permissions
93+
- Secrets & service accounts
94+
- Activity logs
10495

10596
## Components
10697

@@ -125,37 +116,21 @@ infrastructure providers. See the [Workloads
125116
RFC](https://github.com/datum-cloud/enhancements/tree/main/enhancements/compute/workloads)
126117
for design details.
127118

128-
### Plugins
129-
130-
Datum Plugins interpret resource definitions such as Workloads and Networks to
131-
drive the management of provider specific resources such as Virtual Machines and
132-
VPC Networks to meet the declared expectations. Our first example is for [Google
133-
Cloud Platform (GCP)](https://github.com/datum-cloud/infra-provider-gcp).
134-
Supported features include:
135-
136-
- Deploying Virtual Machine based workload instances with OS images provided via
137-
an image library.
138-
- Deploying sandboxed container based workload instances with any OCI compliant
139-
container image.
140-
- VPC connectivity and IPAM.
141-
- Attaching instances to one or more networks.
142-
143119
---
144120

145121
## Get Started
146122

147123
The easiest way to understand Datum is to try it! Head over to [Datum
148-
Cloud](https://cloud.datum.net), sign up, and follow the [Quickstart
149-
Guide](https://www.datum.net/docs/quickstart/) to begin your journey to a reimagined world of interconnection.
124+
Cloud](https://cloud.datum.net), sign up, and [check out our docs](https://www.datum.net/docs/platform/setup) to get started.
150125

151126
We hope that you will then come and build with us:
152127

153128
- **General Discussion:** Join us on the [Datum Community
154129
Discord](https://link.datum.net/discord).
155-
- **Development Setup:** See the [Development
156-
Guide](https://docs.datum.net/docs/developer-guide/).
157-
- **Roadmap & Enhancements:** Visit our [enhancements
130+
- **Enhancements:** Visit our [enhancements
158131
repo](https://link.datum.net/enhancements).
132+
- **Milestones:** Visit our [planned milestones](https://link.datum.net/enhancements).
133+
159134

160135
## License
161136

cmd/controller/manager.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -287,9 +287,10 @@ func runControllerManager(
287287
}
288288

289289
if err = (&resourcemanagercontroller.PersonalOrganizationController{
290-
Client: mgr.GetClient(),
291-
Config: serverConfig.PersonalOrganizationController,
292-
Scheme: mgr.GetScheme(),
290+
Client: mgr.GetClient(),
291+
Config: serverConfig.PersonalOrganizationController,
292+
Scheme: mgr.GetScheme(),
293+
RestConfig: mgr.GetConfig(),
293294
}).SetupWithManager(mgr); err != nil {
294295
setupLog.Error(err, "unable to create controller", "controller", "PersonalOrganization")
295296
return err

config/assignable-organization-roles/roles/datum-cloud-editor.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,11 @@ spec:
2424
namespace: milo-system
2525
- name: dns.networking.miloapis.com-dns-admin
2626
namespace: milo-system
27+
- name: notes-editor
28+
namespace: milo-system
29+
- name: identity-service-account-keys-editor
30+
namespace: milo-system
31+
- name: iam-service-accounts-editor
32+
namespace: milo-system
2733
- name: compute.datumapis.com-admin
2834
namespace: milo-system

config/assignable-organization-roles/roles/datum-cloud-owner.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ spec:
1414
namespace: datum-cloud
1515
- name: core-admin
1616
namespace: milo-system
17+
- name: iam-organization-admin
18+
namespace: milo-system
1719
- name: networking.datumapis.com-admin
1820
namespace: milo-system
1921
- name: telemetry.miloapis.com-admin
@@ -26,5 +28,11 @@ spec:
2628
namespace: milo-system
2729
- name: iam-user-invitations-admin
2830
namespace: milo-system
31+
- name: notes-admin
32+
namespace: milo-system
33+
- name: identity-service-account-keys-admin
34+
namespace: milo-system
35+
- name: iam-service-accounts-admin
36+
namespace: milo-system
2937
- name: compute.datumapis.com-admin
3038
namespace: milo-system

config/assignable-organization-roles/roles/datum-cloud-viewer.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,11 @@ spec:
2626
namespace: milo-system
2727
- name: activity.miloapis.com-viewer
2828
namespace: milo-system
29+
- name: notes-viewer
30+
namespace: milo-system
31+
- name: identity-service-account-keys-viewer
32+
namespace: milo-system
33+
- name: iam-service-accounts-viewer
34+
namespace: milo-system
2935
- name: compute.datumapis.com-viewer
3036
namespace: milo-system

0 commit comments

Comments
 (0)