kubernetes/api
GitHub: kubernetes/api
Kubernetes API 定义的规范 Go 类型库,为外部 API 对象提供 schema 并作为多个 Kubernetes 核心库的共享依赖。
Stars: 749 | Forks: 450
# api
由 Kubernetes API server 提供的外部 API 类型的 schema。
## 目的
该库是 Kubernetes API 定义的规范位置。与此仓库的大多数交互很可能是作为 client-go 的依赖项。
将其单独发布是为了避免以下用户的菱形依赖问题,这些用户
依赖于 `k8s.io/client-go`、`k8s.io/apimachinery`、
`k8s.io/apiserver` 中的多个......
## 推荐用法
我们建议使用本仓库中的 Go 类型。您可以将它们直接序列化为
JSON。
如果您想存储或与 proto 格式的 Kubernetes API 对象进行交互,我们
建议使用 `k8s.io/apimachinery` 中的“官方”序列化栈。
直接将这些类型序列化为 proto 产生的数据将无法与
wire format 匹配,也无法与其他 Kubernetes 生态系统工具兼容。
原因是 wire format 包含一个 magic prefix 和一个 envelope proto。
请参阅:
https://kubernetes.io/docs/reference/using-api/api-concepts/#protobuf-encoding
出于同样的原因,我们不建议将这些 proto 对象嵌入到
您自己的 proto 定义中。最好以 wire format 将 Kubernetes 对象存储为字节数组,因为它是自描述的。这允许您
在无需更改代码的情况下使用
JSON 或二进制 (proto) wire format。否则,
同时对 Custom Resources 和内置类型进行操作将会很困难。
## 兼容性
分支跟踪 Kubernetes 分支并与其保持兼容。
## 它来自哪里?
`api` 从 https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/api 同步。代码更改在该位置进行,合并到 `k8s.io/kubernetes` 后同步到此处。
## 您*不应*做的事情
1. https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/api 会同步到 k8s.io/api。所有更改必须在前者中进行。后者是只读的。
标签:API定义, EVTX分析, Go语言, Homebrew安装, 开发工具包, 数据结构, 日志审计, 程序破解