# @cubos/kube-templates 中文文档

规范地址：https://npmcn.com/package/%40cubos/kube-templates/

版本：1\.1\.1
npm 元数据更新时间：2026-10-27T19:42:15.820Z
中文译文更新时间：2026-11-11T04:28:49.714Z
软件包许可：未声明

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40cubos/kube-templates
原文对照：https://npmcn.com/package/%40cubos/kube-templates/?lang=original
项目主页：https://github.com/cubos-devops/kube-templates#readme
源码仓库：https://github.com/cubos-devops/kube-templates

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：3.1 MB，102 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=24
- 运行依赖：3 个
- 首次发布：2020-01-18T15:03:09.375Z
- 最新版本发布：2026-10-27T19:42:15.457Z
- 近 30 天下载量：11148（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：261（近 12 个月 18 个）

## 中文简介

类 : 类型 : 脚本 平分 que geram 显示 Kubernetes (YAML) porntos para kubectl 应用

## 安装

```sh
npm install @cubos/kube-templates
```

也可以使用：`pnpm add @cubos/kube-templates`、`yarn add @cubos/kube-templates`、`bun add @cubos/kube-templates`

## README

# @cubos/ kube- templates (中文(简体) )

Bibliotica TypeScript que encapsula recursos do Kubernetes em class tipadas e reutilizáveis. 中国植物物种信息数据库. (原始内容存档于2018-03-26) (英语). Você descreve a plicação em TypeScript e a bibliotca gera o YAML pronto para `kubectl apply`, (中文(简体) ), com 自动完成 e checagem de tipos em tudo. 互联网档案馆的存檔,存档日期2013-12-02.

曼提达培拉 [库博斯](https://cubos.io/)共和国: `github.com/cubos-devops/kube-templates` (中文(简体) ) `git.cubos.io/cubos/kube-templates`) (中文(简体) ).

## Í

-   [英斯特拉桑](https://npmcn.com/package/%40cubos/kube-templates/#readme-instala%C3%A7%C3%A3o)
-   [来来来来](https://npmcn.com/package/%40cubos/kube-templates/#readme-come%C3%A7ando)
-   [拒绝执行](https://npmcn.com/package/%40cubos/kube-templates/#readme-recursos-dispon%C3%ADveis)
-   [实例](https://npmcn.com/package/%40cubos/kube-templates/#readme-exemplos)
-   [部署输油管(建议表)](https://npmcn.com/package/%40cubos/kube-templates/#readme-deploy-em-pipelines-forma-recomendada)
-   [Fun-es 辅助](https://npmcn.com/package/%40cubos/kube-templates/#readme-fun%C3%A7%C3%B5es-auxiliares)
-   [Kubernetes的纹章](https://npmcn.com/package/%40cubos/kube-templates/#readme-tipos-do-kubernetes)
-   [德森沃尔维门托](https://npmcn.com/package/%40cubos/kube-templates/#readme-desenvolvimento)
-   [公众](https://npmcn.com/package/%40cubos/kube-templates/#readme-publica%C3%A7%C3%A3o)

## 英斯特拉桑

(原始内容存档于2018-03-26). Requer Node.js 24ou supper.

```bash
npm install @cubos/kube-templates
```

## 来来来来

Todas作为课程 seguem o mesmo反: `new Classe(metadata, spec)` e 获取器 `.yaml`。 。 。 .

```typescript
import { Namespace, StatelessApp } from "@cubos/kube-templates";

const namespace = new Namespace({ name: "my-app" });

const app = new StatelessApp(
  { name: "api", namespace: "my-app" },
  {
    image: "my-registry/my-api:latest",
    replicas: 3,
    cpu: { request: "100m", limit: "500m" },
    memory: { request: "128Mi", limit: "512Mi" },
    ports: [
      {
        type: "http",
        port: 8080,
        publicUrl: "https://api.example.com",
        tlsCert: "api-tls-cert",
      },
    ],
    envs: {
      NODE_ENV: "production",
      DATABASE_URL: { secretName: "db-credentials", key: "url" },
    },
  },
);

console.log(namespace.yaml);
console.log(app.yaml);
```

## 拒绝执行

托达斯作为阶级 baixo são exportadas pelo pacote. 中国植物物种信息数据库.

### 库贝尔内特语区

`Namespace`, (中文(简体) ), `Deployment`, (中文(简体) ), `StatefulSet`, (中文(简体) ), `DaemonSet`, (中文(简体) ), `Service`, (中文(简体) ), `IngressV1`, (中文(简体) ), `ConfigMap`, (中文(简体) ), `Secret`, (中文(简体) ), `Job`, (中文(简体) ), `CronJob`, (中文(简体) ), `PersistentVolumeClaim`, (中文(简体) ), `HorizontalPodAutoscaler`, (中文(简体) ), `PodDisruptionBudget`, (中文(简体) ), `NetworkPolicy`, (中文(简体) ), `ServiceAccount`, (中文(简体) ), `Role`, (中文(简体) ), `RoleBinding`。 。 。 .

### 达多斯银行

| 类 | 哦克热拉 |
| --- | --- |
| `Postgres`, (中文(简体) ), `PostgresV1` | 邮递SQL |
| `PgBouncer` | PostgreSQL公司 |
| `StackgresCluster`, (中文(简体) ), `StackgresInstanceProfile`, (中文(简体) ), `StackgresPostgresConfig`, (中文(简体) ), `StackgresBackupConfig` | PostgreSQL 通过歌剧游戏 StackGres |
| `Redis` | 重写 |
| `Mongo` | 蒙戈DB |
| `MySQL`, (中文(简体) ), `MariaDB` | MySQL e 马里亚DB |
| `MSSQL` | SQL 服务器 |
| `Cockroach` | 鸡尾酒 |

### 阿普利卡语Name

| 类 | 哦克热拉 |
| --- | --- |
| `StatelessApp` | Aplicação 无国籍者协议协议:部署、服务、入侵、HPA e PDB |
| `Cron` | CronJob com 简写化 |
| `StaticSite` | 地点 estático |
| `WordPress` | WordPress com Banco de dados (英语:WordPress com Banco de dados) 互联网档案馆的存檔,存档日期2014-12-21 |

### 埃斯卡拉, 证书和塞格雷多斯

| 类 | 哦克热拉 |
| --- | --- |
| `ScaledObject`, (中文(简体) ), `ScaledJob` | Autoescalonmento por eventos (KEDA) (英语) |
| `CertManagerV1Certificate`, (中文(简体) ), `CertificateV1` | 证书(证书管理) |
| `ReplicatedSecret` | 秘密复制 代理命名空间 |

## 实例

### 无国籍者 App com 自动卡路纳mento

`replicas` 阿西塔 um número fixo ou uma faixa (英语) `[mínimo, máximo]`. com a faixa, a bibliotica gera (英语: 垛 `HorizontalPodAutoscaler` (法语) `replicas` (不部署) 法兰西岛 `1`) (中文(简体) ). `minAvailable` 热拉 嗯 `PodDisruptionBudget`。 。 。 .

```typescript
import { StatelessApp } from "@cubos/kube-templates";

const app = new StatelessApp(
  { name: "my-api", namespace: "production" },
  {
    image: "my-registry/api:v1.0.0",
    replicas: [2, 10],
    cpuUtilizationToScale: 70,
    cpu: { request: "100m", limit: "1" },
    memory: { request: "256Mi", limit: "512Mi" },
    ports: [
      {
        type: "http",
        port: 3000,
        publicUrl: "https://api.example.com",
        tlsCert: "api-tls",
        timeout: 60,
        maxBodySize: "10Mi",
      },
    ],
    envs: {
      NODE_ENV: "production",
      DATABASE_URL: { secretName: "db-secret", key: "connection-string" },
      POD_NAME: { fieldPath: "metadata.name" },
    },
    // repassa variáveis do processo que gera o YAML (ex.: do CI). Lança erro
    // se alguma não estiver definida: `Environment variable BUILD_VERSION not defined`
    forwardEnvs: ["BUILD_VERSION"],
    minAvailable: 1,
    // CronJobs que usam a mesma imagem
    crons: [
      {
        name: "cleanup",
        schedule: "0 2 * * *",
        command: ["node"],
        args: ["cleanup.js"],
      },
    ],
  },
);

console.log(app.yaml);
```

### 重写

```typescript
import { Redis } from "@cubos/kube-templates";

const cache = new Redis(
  { name: "cache", namespace: "production" },
  {
    version: "7-alpine",
    cpu: { request: "100m", limit: "500m" },
    memory: "256Mi",
    options: {
      maxmemory: "200mb",
      maxmemoryPolicy: "allkeys-lru",
    },
  },
);

console.log(cache.yaml);
```

### 克龙

```typescript
import { Cron } from "@cubos/kube-templates";

const report = new Cron(
  { name: "daily-report", namespace: "production" },
  {
    schedule: "0 8 * * *",
    image: "my-registry/report-generator:latest",
    command: ["node"],
    args: ["generate-report.js"],
    cpu: { request: "100m", limit: "500m" },
    memory: { request: "128Mi", limit: "256Mi" },
    envs: {
      REPORT_TYPE: "daily",
      SMTP_PASSWORD: { secretName: "smtp", key: "password" },
    },
    timeoutSeconds: 3600,
  },
);

console.log(report.yaml);
```

Cada classe (campos obrigatórios e opcionais) estão tipados: o 编辑最上图多 com 自动完成, e o código-fonte em [`src/`](https://npmcn.com/package/%40cubos/kube-templates/src) 重新出现.

## 部署输油管(建议表)

Aplicar 重新推荐的论坛 [`ghcr.io/cubos-devops/cli/k8s`](https://github.com/cubos-devops/cli),则重新保存 [`cubos-devops/cli`](https://github.com/cubos-devops/cli)" 乌马·伊克苏塔,部署 库伯涅斯: traz `kubectl`节点J, `ts-node`, (中文(简体) ), `ejs-cli`, 或 próprio 语句 `@cubos/kube-templates` e 类 脚本 `cluster_from_env` 电子 `deploy`. Não é preciso rodar `npm install` 没有输油管道 (原始内容存档于2018-09-29). kubeconfig à mão.

欧 `deploy` 我有一个面 `deploy/` (原始内容存档于2018-10-21) (英语). do repositório da aplicação e aplica tudo com `kubectl apply`数字 :

-   `deploy/*.ts`: arquivos TypeScript que exportam por paderão uma lista de recursos do ; 中文译名参考自 明 : kube- templathes (o) 调制器 `deploy` 允许 `.yaml` cada 项;
-   `deploy/*.yml`: YAML puro, ou 模板 [EJS (英语)](https://ejs.co/) 本身 `<% %>`· ;
-   `deploy/*.ejs`:模板EJS.

```typescript
// deploy/app.ts
import { Namespace, StatelessApp } from "@cubos/kube-templates";

export default [
  new Namespace({ name: "my-app" }),
  new StatelessApp(
    { name: "api", namespace: "my-app" },
    {
      image: "my-registry/my-api:latest",
      cpu: { request: "100m", limit: "500m" },
      memory: { request: "128Mi", limit: "512Mi" },
      ports: [{ type: "http", port: 8080 }],
    },
  ),
];
```

欧·帕科特 `@cubos/kube-templates` (原始内容存档于2013-10-12). resolvido a partir da instalação que já vem na imagem, então a 不部署 " 不部署 " (definida no Dockerfile da) `cli`) (中文(简体) ).

As Credenciais do cluster vêm de três variáveis com um prefixo à sua escolha (aqui) 维基语录链接:名人名言 - 文学作品 - 谚语 - 谚语 - 谚语 `CLUSTER_PRD`: `CLUSTER_PRD_K8S_SERVER_URL`, (中文(简体) ), `CLUSTER_PRD_K8S_SERVER_CA` (CA EM Base64) e `CLUSTER_PRD_K8S_TOKEN`。 。 。 . 秘密守护者/秘密守护者.

### GitHub 动作

动作棒 `cluster_from_env` e 读取 `deploy` num unico passo: (英语)

```yaml
jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: cubos-devops/cli@v1
        with:
          cluster: CLUSTER_PRD
        env:
          CLUSTER_PRD_K8S_SERVER_URL: ${{ secrets.CLUSTER_PRD_K8S_SERVER_URL }}
          CLUSTER_PRD_K8S_SERVER_CA: ${{ secrets.CLUSTER_PRD_K8S_SERVER_CA }}
          CLUSTER_PRD_K8S_TOKEN: ${{ secrets.CLUSTER_PRD_K8S_TOKEN }}
```

反聚居区 `kubectl get pods`),使用图像相机 容器执行任务 :

```yaml
jobs:
  deploy:
    runs-on: ubuntu-latest
    container: ghcr.io/cubos-devops/cli/k8s
    steps:
      - uses: actions/checkout@v4
      - run: |
          cluster_from_env CLUSTER_PRD
          deploy
        env:
          CLUSTER_PRD_K8S_SERVER_URL: ${{ secrets.CLUSTER_PRD_K8S_SERVER_URL }}
          CLUSTER_PRD_K8S_SERVER_CA: ${{ secrets.CLUSTER_PRD_K8S_SERVER_CA }}
          CLUSTER_PRD_K8S_TOKEN: ${{ secrets.CLUSTER_PRD_K8S_TOKEN }}
```

### GitLab CI 语录

```yaml
Deploy:
  stage: deploy
  image: ghcr.io/cubos-devops/cli/k8s
  only:
    - main
  script:
    - cluster_from_env CLUSTER_PRD
    - deploy
```

作为 demais 图像的todos os 输入 da 动作 e [读取 `cli`](https://github.com/cubos-devops/cli#readme)。 。 。 .

## Fun-es 辅助

```typescript
import { configFactory, env, parseMemory } from "@cubos/kube-templates";

// Lê variáveis de ambiente e lança erro descritivo se a variável não existir
const databaseUrl = env.DATABASE_URL;

// Mesmo comportamento para qualquer objeto
const config = configFactory(process.env, "Config");
const apiKey = config.API_KEY;

// Converte quantidades de memória para bytes
parseMemory("1Gi"); // 1073741824
parseMemory("256M"); // 256000000
```

## Kubernetes的纹章

{\\fn黑体\\fs22\\bord1\\shad0\\3aHBE\\4aH00\\fscx67\\fscy66\\2cHFFFFFF\\3cH808080}哦 说得好 `src/generated` são gerados a partir das e specifica-es OpenAPI do Kubernetes e dos (中文(简体) ) CRDs usados pelas 班级(`npm run generate`) (中文(简体) ). 我们的悲剧:

```typescript
import type { io } from "@cubos/kube-templates/src/generated";

const container: io.k8s.api.core.v1.Container = {
  name: "my-container",
  image: "nginx:latest",
};
```

## 德森沃尔维门托

普雷克西托:第24个节点 `.nvmrc`) (中文(简体) ).

```bash
npm ci

npm run lint             # Biome
npx tsc --noEmit         # checagem de tipos
npm run generate         # regenera src/generated

# testes de lógica pura, sem cluster
npx vitest run tests/statelessApp tests/pgbouncer
```

Os demais 测试`tests/cockroach`, (中文(简体) ), `tests/postgres`, (中文(简体) ), `tests/wordpress`(a) 圣多明我会: aplicam os 复发数组 Kubernetes 本地 criado com [类型](https://kind.sigs.k8s.io/) (单位:千美元)`tests/setup.ts` 说吧 `kind-kubeconfig` eo 集装箱 `kube-templates-test-control-plane`e, (中文(简体) ), por isso, não rodam no CI do GitHub. 维基百科中的相关条目: 克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多克多.

### 中情局

O 工作流程 [`ci.yml`](https://npmcn.com/package/%40cubos/kube-templates/.github/workflows/ci.yml) 调取请求 e na `main`点滴, 类型检查,测试单位, `npm audit` (não bolopeante)e建设.

## 公众

O Pacote é publicado 无 npm pelo 工作流程 [`publish.yml`](https://npmcn.com/package/%40cubos/kube-templates/.github/workflows/publish.yml) **quando uma 释放没有GitHub的公众**数字 :

1.  没有GitHub,没有 **——起草新版**。 。 。 .
2.  Crie ma 标记无格式 `vX.Y.Z` (单位:千美元) `v1.1.0`(a) 阿蓬坦多,第a段 `main`。 。 。 .
3.  独行侠 **发布**。 。 。 .

一个无名无姓的公众网站 `v`. Marcar 发布会 _释放前_ (前:标记) `v1.2.0-rc.1`(公之于众)a `next` 韦兹德 `latest`。 。 。 .

我们的公众 [npm 受托出版](https://docs.npmjs.com/trusted-publishers) (OIDC): (英语: 尼欧哈 `NPM_TOKEN` 无保留地, e cada versão sai com [来源](https://docs.npmjs.com/generating-provenance-statements) 阿西纳多.

> **版本 :** 以 vers'es igham 表示偏头痛 `1.0.<id do pipeline>` (a ultima foi) (法语) `1.0.1153395`) (中文(简体) ). 作为新星 semver pela 标记 e 预切萨姆 ser {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}请说 `v1.1.0` 爱奇艺.

## 常见问题

### @cubos/kube-templates 是什么？

类 : 类型 : 脚本 平分 que geram 显示 Kubernetes \(YAML\) porntos para kubectl 应用

### 如何安装 @cubos/kube-templates？

在项目目录运行 npm install @cubos/kube-templates，或使用 pnpm add / yarn add / bun add。

### @cubos/kube-templates 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @cubos/kube-templates 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @cubos/kube-templates 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=24。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @cubos/kube-templates 可以商用吗？

@cubos/kube-templates 使用 未声明 许可。package\.json 没有声明许可证。没有许可证的代码默认保留全部权利，商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括，不构成法律意见，请以许可原文为准。

### @cubos/kube-templates 的下载量有多少？

根据 npm 官方下载统计，@cubos/kube-templates 在 2026/10/11 – 2026/11/09 这 30 天内被下载 11,148 次，日均约 372 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @cubos/kube-templates 还在维护吗？

最新版本 1\.1\.1 发布于 2026/10/28（14 天前）；至今共发布 261 个版本，其中过去 12 个月发布了 18 个；首次发布于 2020/01/18。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

