vshn/espejote
GitHub: vshn/espejote
基于 Jsonnet 的 Kubernetes 集群内模板化控制器,支持 GitOps 工作流与动态集群状态感知的资源编排管理。
Stars: 13 | Forks: 0

The Espejote tool ('big mirror' in Spanish) manages arbitrary resources in a Kubernetes cluster.
It allows a GitOps workflow while still being able to depend on in-cluster resources.
Espejote: An in-cluster templating controller
## 安装
### 在集群中使用 `kubectl`
```
kubectl apply -k config/crd
kubectl apply -k config/default
```
#### 镜像签名验证
Espejote 镜像使用 [Cosign](https://github.com/sigstore/cosign) 进行签名。Espejote 使用 Cosign 的 [Keyless signing](https://docs.sigstore.dev/cosign/signing/overview/) 功能,利用 GitHub Action token 进行证明。
您可以使用 Cosign CLI 验证镜像签名:
```
TAG=vX.X.X
cosign verify "ghcr.io/vshn/espejote:${TAG}" \
--certificate-identity "https://github.com/vshn/espejote/.github/workflows/release.yml@refs/tags/${TAG}" \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com"
```
### 使用 Homebrew 安装 CLI
适用于 macOS 和 Linux。
```
brew install vshn/tap/espejote
```
### 使用 `go get` 安装 CLI
```
go install github.com/vshn/espejote@latest
```
## 使用说明
Espejote 通过对渲染后的 Jsonnet 清单进行服务端应用(Server-side Apply)来管理集群资源。
它允许对用于渲染资源的外部上下文以及触发资源应用的触发器进行细粒度控制。
`espejote` CLI 文档可在[此处](./docs/cli/espejote.md)获取。
API (CRD) 文档可在[此处](./docs/api.adoc)获取。
`espejote.libsonnet` 文档可在[此处](./docs/lib/README.md)获取。
提供的注释示例包括:
- [Admission: OpenShift 4 Cluster Autoscaler Patch](./docs/annotated-examples/admission/ocp-cluster-autoscaler-patch.adoc)
- [ManagedResource: 在 Kubernetes 命名空间间同步 Secrets](./docs/annotated-examples/managedresource/sync-secrets.adoc)
- [ManagedResource: OpenShift 4 Node Disruption Policies](./docs/annotated-examples/managedresource/node-disruption-policies.adoc)
- 我们正在准备更多示例,敬请期待!
最初的想法和设计文档可在[此处](https://kb.vshn.ch/oc4/references/architecture/espejote-in-cluster-templating-controller.html)获取。
标签:3D图, Cosign, DevOps工具, EC2, EVTX分析, GitOps, IaC, Jsonnet, Reconciliation, Webhook, 交互式, 力导向图, 子域名突变, 控制器, 数据校验, 日志审计, 服务端应用, 签名验证, 自动化运维, 资源配置管理, 集群内模板引擎