open-index/open-npm huggingface dataset:
npm package: @kubed/design-components
Description: Kube Design is a set of React component libraries created for KubeSphere console.
Latest version: 1.37.1

# Kube Design

Kube Design is a set of React component libraries created for KubeSphere console.

[![NPM](https://img.shields.io/npm/v/@kube-design/components.svg)](https://www.npmjs.com/package/@kube-design/components)

## Requirement

- Node.js 12.18+ ([installation with nvm](https://github.com/creationix/nvm#usage))
- Yarn 1.22.4+

## Installation

```shell
yarn add @kube-design/components
```

## Example

```jsx
import React, { Component } from "react";

import { Button } from "@kube-design/components";

class Example extends Component {
  render() {
    return <Button>Button</Button>;
  }
}
```

## Import All Styles

There are two ways to import style files.

### Use css

The css file can be imported directly, so no additional configuration is required in the webpack configuration file.

```jsx
import "@kube-design/components/esm/styles/index.css";
```

### Use scss

If you import the scss file, you may need to compile this part of the scss file in the webpack configuration file.

```jsx
import "@kube-design/components/esm/styles/index.scss";
```

webpack.config.js

```js
// module.rules
[
  ...otherRules,
  {
    test: /\.s[ac]ss$/i,
    include: root("node_modules"),
    use: ["style-loader", "css-loader", "sass-loader"],
  },
];
```

## Modular Import

You can use [babel-plugin-import](https://github.com/ant-design/babel-plugin-import) to load the component library on demand.

> When loading on demand, styles will also be imported on demand. You don't need to import all styles, only `main.scss`.

Configure the babel as follows:

```js
// babel.config.js

const getBabelPluginImportConfig = require('@kube-design/components/babel.plugin.import')

...

"plugins": [
  ['import', getBabelPluginImportConfig()],
]
```

Import the `main.scss` instead of `index.scss`

```jsx
import "@kube-design/components/esm/styles/main.scss";
```

## Localization

Kube Design use `LocaleProvider` component to support localization.

1. Define locales

```js
// locales.js

const locales = {
  "en-US": {
    HELLO: "Hello!",
  },
  "zh-CN": {
    HELLO: "你好!",
  },
};

export default locales;
```

2. Use the LocaleProvider component to wrap the root node

The `locale` method can be assigned to `window` for easy use.

```jsx
import React from "react";
import ReactDOM from "react-dom";
import { LocaleProvider } from "@kube-design/components";
import locales from "./locales";
import App from "./App";

window.locale = LocaleProvider.locale;

const App = () => (
  <LocaleProvider locales={locales} currentLocale="en">
    <App />
  </LocaleProvider>
);

ReactDOM.render(<App />, document.getElementById("root"));
```

3. In the root node App.jsx and its child nodes, use `locale.get('key')` to get the language text

```jsx
import React from "react";
import { Button } from "@kube-design/components";

export default () => <Button>{locale.get("HELLO")}</Button>;
```

## License

MIT © [kubesphere](https://github.com/kubesphere)
npm package: @kubed/stook
Description: A minimalist design state management library for React
Author: forsigner
Latest version: 0.0.4

# Stook

[![npm](https://img.shields.io/npm/v/stook.svg)](https://www.npmjs.com/package/stook) [![Coverage Status](https://coveralls.io/repos/github/motere/stook/badge.svg?branch=master)](https://coveralls.io/github/motere/stook?branch=master) [![Minzipped size](https://img.shields.io/bundlephobia/minzip/stook.svg)](https://bundlephobia.com/result?p=stook) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier)

A minimalist design state management library for React.

## Documentation

The documentation site of stook is hosted at  [https://stook.vercel.app](https://stook.vercel.app).

## Quick start

**simplest**

```tsx
import React from 'react'
import { useStore } from 'stook'

function Counter() {
  const [count, setCount] = useStore('Counter', 0)
  return (
    <div>
      <p>You clicked {count} times</p>
      <button onClick={() => setCount(count + 1)}>Click me</button>
    </div>
  )
}
```

**share state**

```jsx
import React from 'react'
import { useStore } from 'stook'

function Counter() {
  const [count, setCount] = useStore('Counter', 0)
  return (
    <div>
      <p>You clicked {count} times</p>
      <button onClick={() => setCount(count + 1)}>Click me</button>
    </div>
  )
}

function Display() {
  const [count] = useStore('Counter')
  return <p>{count}</p>
}

function App() {
  return (
    <div>
      <Counter />
      <Display />
    </div>
  )
}
```

## License

[MIT License](https://github.com/motere/stook/blob/master/LICENSE)
npm package: @kubed/stook-devtools
Description: [![npm](https://img.shields.io/npm/v/stook-devtools.svg)](https://www.npmjs.com/package/stook-devtools) [![Minzipped size](https://img.shields.io/bundlephobia/minzip/stook-devtools.svg)](https://bundlephobia.com/result?p=stook-devtools) [![code style: pre
Author: forsigner
Latest version: 0.0.1

# stook-devtools

[![npm](https://img.shields.io/npm/v/stook-devtools.svg)](https://www.npmjs.com/package/stook-devtools) [![Minzipped size](https://img.shields.io/bundlephobia/minzip/stook-devtools.svg)](https://bundlephobia.com/result?p=stook-devtools) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier)

> devtools for stook

## Installation

```bash
npm i stook-devtools
```

## Documentation

https://stook.vercel.app/docs/devtools/intro

## License

[MIT License](https://github.com/motere/stook/blob/master/LICENSE)
npm package: @kubees/renovate-config
Description: Renovate configs for Kubees
Author: Zadkiel
Latest version: 1.0.3

# Renovate config

[![npm (kubees/renovate-config)](https://img.shields.io/npm/v/@kubees/renovate-config.svg)](https://www.npmjs.com/package/@kubees/renovate-config)

## Usage

In Renovate configuration file:

```json
{
  "extends": "@kubees[:preset]"
}
```

> Note: If not explicitly set, Renovate will use the `default` preset.

## Presets

- `default`
- `group-golang`
- `ignore-docsy-theme`
npm package: @kubees/semantic-release-config
Description: Semantic Release config for Kubees
Author: Zadkiel
Latest version: 3.0.2

# Semantic Release config

[![npm (kubees/semantic-release-config)](https://img.shields.io/npm/v/@kubees/semantic-release-config.svg)](https://www.npmjs.com/package/@kubees/semantic-release-config)

## References

- https://github.com/semantic-release/semantic-release

## Usage

In Semantic Release configuration file:

```json
{
  "extends": "@kubees/semantic-release-config"
}
```
npm package: @kubekit/prepare
Description: The `@kubekit/prepare` project is a tool that generates a JSON file of OpenAPI specifications that describe operations that can be executed based on the permissions of Kubernetes ServiceAccount. This tool is particularly useful for application developers 
Author: kahirokunn
Latest version: 0.0.11

# Introduction

The `@kubekit/prepare` project is a tool that generates a JSON file of OpenAPI specifications that describe operations that can be executed based on the permissions of Kubernetes ServiceAccount. This tool is particularly useful for application developers who use Kubernetes API. The generated `openapi.json` file is used as a schema file to generate client code in the `@kubekit/codegen` project.

## Key Features

- **Accurate Permission Checks**: Generates OpenAPI specifications that only include API operations that can be executed based on the permissions of the ServiceAccount.
- **Scalability**: Currently, only `ServiceAccount` is supported, but support for `User` and `Group` is also planned in the future.
- **Strict Type Definitions**: Provides more strict type definitions than the standard Swagger definitions of Kubernetes, promoting safer API usage.

## Configuration

To use the project, you need to configure the `config.ts` file. The following example shows how to configure a [ServiceAccount](file:///Users/kahiro/Documents/appthrust/kubekit-ts/packages/kubekit-prepare/README.md#3%2C22-3%2C22).

```typescript:config.ts
import { ConfigFile } from "./config"

const config: ConfigFile = {
  kind: 'ServiceAccount',
  name: 'replicaset-controller',
  namespace: 'kube-system',
  outputFile: './replicaset-controller.openapi.json',
}

export default config
```

## Execution Method

After creating the configuration file, execute the following command to generate `replicaset-controller.openapi.json`.

```bash
npx @kubekit/prepare config.ts
```

## Future Prospects

This project is currently under development and plans to add support for `User` and `Group`, as well as further feature enhancements. This is aimed at enabling more users to effectively utilize Kubernetes API.
npm package: @kubenode/reference
Description: Utilities for working with container image references
Author: Colin J. Ihrig
Latest version: 0.1.1

# `@kubenode/reference`

Utilities for working with container image references.

## Functions

<dl>
<dt><a href="#parse">parse(input)</a> ⇒ <code><a href="#Reference">Reference</a></code></dt>
<dd><p>parse() splits an image reference into its various components.</p>
</dd>
</dl>

## Typedefs

<dl>
<dt><a href="#NamedRepository">NamedRepository</a> : <code>Object</code></dt>
<dd></dd>
<dt><a href="#Reference">Reference</a> : <code>Object</code></dt>
<dd></dd>
</dl>

<a name="parse"></a>

## parse(input) ⇒ [<code>Reference</code>](#Reference)
parse() splits an image reference into its various components.

**Kind**: global function

| Param | Type | Description |
| --- | --- | --- |
| input | <code>string</code> | The image reference string to parse. |

<a name="NamedRepository"></a>

## NamedRepository : <code>Object</code>
**Kind**: global typedef
**Properties**

| Name | Type | Description |
| --- | --- | --- |
| [domain] | <code>string</code> | The repository host and port information. |
| [path] | <code>string</code> | The image path. |

<a name="Reference"></a>

## Reference : <code>Object</code>
**Kind**: global typedef
**Properties**

| Name | Type | Description |
| --- | --- | --- |
| namedRepository | [<code>NamedRepository</code>](#NamedRepository) | Object holding the image host, port, and path information. |
| [tag] | <code>string</code> | The image tag if one exists. |
| [digest] | <code>string</code> | The image digest if one exists. |

## Acknowledgment

This package was adapted from the Golang
[`distribution/reference`](https://pkg.go.dev/github.com/distribution/reference)
package.
npm package: @kubeopt/cli
Description: Kubernetes Cost Optimizer — run locally via Docker
Author: KubeOpt
Latest version: 1.0.0

# KubeOpt CLI

Kubernetes Cost Optimizer — run locally via Docker, analyze clusters from the command line.

## Prerequisites

- **Node.js** >= 18
- **Docker** (for `start`/`stop`/`upgrade` commands)

## Install

```bash
npm install -g kubeopt
```

## Quick Start

```bash
# Option 1: Run via Docker
kubeopt start                  # Pull image from GHCR, start server, open browser

# Option 2: Connect to existing KubeOpt instance
kubeopt config --api-url http://localhost:5001 --username admin --password secret
kubeopt clusters               # List clusters with cost summary
kubeopt report <cluster-id>    # View analysis results
```

Dashboard opens at http://localhost:5001

**Docker image:** `ghcr.io/kubeopt/kubeopt:latest` (public, no login required)

## Commands

### Docker Management

| Command | Description |
|---------|-------------|
| `kubeopt start [--port 5001] [--detach]` | Start server, open browser |
| `kubeopt stop` | Stop server |
| `kubeopt status` | Show health + port |
| `kubeopt logs [--follow]` | Tail container logs |
| `kubeopt upgrade` | Pull latest image, restart |

### Cluster Analysis

| Command | Description |
|---------|-------------|
| `kubeopt clusters [--json]` | List all clusters with cost, savings, and score |
| `kubeopt analyze <cluster-id> [--wait]` | Trigger analysis (use `--wait` to poll until complete) |
| `kubeopt report <cluster-id> [--json]` | Show cost breakdown, savings, and recommendations |

All analysis commands accept `--api-url`, `-u/--username`, and `-p/--password` overrides, or read from config.

### Configuration

| Command | Description |
|---------|-------------|
| `kubeopt config --show` | Show current configuration |
| `kubeopt config --api-url <url>` | Set KubeOpt API URL |
| `kubeopt config --username <user>` | Set API username |
| `kubeopt config --password <pass>` | Set API password |
| `kubeopt config --license-key <key>` | Set license key |
| `kubeopt config --azure-subscription <id>` | Set Azure subscription |

## Configuration

Settings are stored in `~/.kubeopt/config.json`:

```bash
kubeopt config --api-url http://localhost:5001
kubeopt config --username admin
kubeopt config --password secret
kubeopt config --license-key YOUR_KEY
kubeopt config --azure-subscription SUB_ID
kubeopt config --azure-client-id CLIENT_ID
kubeopt config --azure-client-secret SECRET
kubeopt config --azure-tenant TENANT_ID
kubeopt config --kubeconfig ~/.kube/config
```

## Example Workflow

```bash
# Configure once
kubeopt config --api-url https://demo.kubeopt.com --username admin --password secret

# List clusters
kubeopt clusters
#   6 cluster(s)
#   kubeopt-test (GCP)
#     Cost: $98/mo  Savings: $18/mo  Score: 81.2%

# Trigger fresh analysis and wait
kubeopt analyze project-130bc253_kubeopt-test --wait

# View results
kubeopt report project-130bc253_kubeopt-test
#   Monthly Cost:       $98
#   Potential Savings:  $18
#   Health Score:       50%
```

## License

MIT
npm package: @kubernetes-models/argo-cd
Description: Argo CD models
Author: Tommy Chen
Latest version: 2.7.2

# @kubernetes-models/argo-cd

[Argo CD](https://argo-cd.readthedocs.io/) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/argo-cd
```

## Usage

```js
import { Application } from "@kubernetes-models/argo-cd/argoproj.io/v1alpha1/Application";

// Create a new Application
const app = new Application({
  metadata: {
    name: "guestbook"
  },
  spec: {
    project: "default",
    source: {
      repoURL: "https://github.com/argoproj/argocd-example-apps.git",
      targetRevision: "HEAD",
      path: "guestbook"
    },
    destination: {
      server: "https://kubernetes.default.svc",
      namespace: "guestbook"
    }
  }
});

// Validate against JSON schema
app.validate();
```

## License

MIT
npm package: @kubernetes-models/argo-rollouts
Description: Argo Rollouts models
Author: Tommy Chen
Latest version: 0.4.4

# @kubernetes-models/argo-rollouts

[Argo Rollouts](https://argoproj.github.io/argo-rollouts/) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/argo-rollouts
```

## Usage

```js
import { Rollout } from "@kubernetes-models/argo-rollouts/argoproj.io/v1alpha1/Rollout";

// Create a new Rollout
const rollout = new Rollout({
  metadata: {
    name: "rollouts-demo"
  },
  spec: {
    replicas: 5,
    strategy: {
      canary: {
        steps: [
          { setWeight: 20 },
          { pause: {} },
          { setWeight: 40 },
          { pause: { duration: 10 } }
        ]
      }
    },
    revisionHistoryLimit: 2,
    selector: {
      matchLabels: {
        app: "rollouts-demo"
      }
    },
    template: {
      metadata: {
        labels: {
          app: "rollouts-demo"
        }
      },
      spec: {
        containers: [
          {
            name: "rollouts-demo",
            image: "argoproj/rollouts-demo:blue"
          }
        ]
      }
    }
  }
});

// Validate against JSON schema
rollout.validate();
```

## License

MIT
npm package: @kubernetes-models/argo-workflows
Description: Argo Workflows models
Author: Tommy Chen
Latest version: 0.1.4

# @kubernetes-models/argo-workflows

[Argo Workflows](https://argoproj.github.io/argo-workflows/) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/argo-workflows
```

## Usage

```js
import { Rollout } from "@kubernetes-models/argo-workflows/argoproj.io/v1alpha1/Workflow";

// Create a new Rollout
const workflow = new Workflow({
  metadata: {
    name: "workflows-demo"
  },
  spec: {
    entrypoint: "hello",
    templates: [
      {
        name: "hello",
        container: {
          image: "alpine:latest",
          command: ["echo", "Hello, Argo!"]
        }
      }
    ]
  }
});

// Validate against JSON schema
workflow.validate();
```

## License

MIT
npm package: @kubernetes-models/autoscaler
Description: Kubernetes Autoscaler models
Author: Rueian
Latest version: 3.3.4

# @kubernetes-models/autoscaler

[Kubernetes Autoscaler](https://github.com/kubernetes/autoscaler) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/autoscaler
```

## Usage

```js
import { VerticalPodAutoscaler } from "@kubernetes-models/autoscaler/autoscaling.k8s.io/v1/VerticalPodAutoscaler";

const vpa = new VerticalPodAutoscaler({
  spec: {
    targetRef: {
      apiVersion: 'apps/v1',
      kind: 'Deployment',
      name: 'my-app'
    },
    updatePolicy: {
      updateMode: 'Off'
    }
  }
});

// Validate against JSON schema
vpa.validate();
```

## License

MIT
npm package: @kubernetes-models/cert-manager
Description: cert-manager models
Author: Tommy Chen
Latest version: 4.4.4

# @kubernetes-models/cert-manager

[cert-manager](https://cert-manager.io/) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/cert-manager
```

## Usage

```js
import { Certificate } from "@kubernetes-models/cert-manager/cert-manager.io/v1/Certificate";

// Create a new certificate
const cert = new Certificate({
  metadata: {
    name: "foo"
  },
  spec: {
    secretName: "foo-secret",
    dnsNames: ["foo.example.com"],
    issuerRef: {
      name: "letsencrypt-prod",
      kind: "Issuer"
    }
  }
});

// Validate against JSON schema
cert.validate();
```

## License

MIT
npm package: @kubernetes-models/cilium
Description: Cilium CRD
Author: Rueian
Latest version: 2.3.4

# @kubernetes-models/cilium

[Cilium](https://cilium.io/) CRD.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/cilium
```

## Usage

```js
import { CiliumLocalRedirectPolicy } from "@kubernetes-models/cilium/cilium.io/v2/CiliumLocalRedirectPolicy";

const lrp = new CiliumLocalRedirectPolicy({
  metadata: {
    name: "lrp"
  },
  spec: {
    redirectFrontend: {
      serviceMatcher: {
        serviceName: "my-service",
        namespace: "default"
      }
    },
    redirectBackend: {
      localEndpointSelector: {
        matchLabels: {
          name: "proxy"
        }
      },
      toPorts: [
        {
          port: "8080",
          protocol: "TCP"
        }
      ]
    }
  }
});

// Validate against JSON schema
lrp.validate();
```

## License

MIT
npm package: @kubernetes-models/clickhouse
Description: Clickhouse models
Author: Tommy Chen
Latest version: 0.1.0

# @kubernetes-models/clickhouse

[ClickHouse Kubernetes Operator](https://github.com/Altinity/clickhouse-operator) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/clickhouse
```

## Usage

```js
import { ClickHouseInstallation } from "@kubernetes-models/clickhouse/clickhouse.altinity.com/v1/ClickHouseInstallation";

// Create a new installation
const installation = new ClickHouseInstallation({
  metadata: {
    name: "simple-01"
  },
  spec: {
    configuration: {
      clusters: [{ name: "simple" }],
      users: {
        "test_user/password_sha256_hex":
          "10a6e6cc8311a3e2bcc09bf6c199adecd5dd59408c343e926b129c4914f3cb01",
        "test_user/networks/ip": ["0.0.0.0/0"]
      }
    }
  }
});

// Validate against JSON schema
installation.validate();
```

## License

MIT
npm package: @kubernetes-models/cloudnative-pg
Description: cloudnative-pg models
Author: Alexandre Dos Reis
Latest version: 0.1.4

# @kubernetes-models/cloudnative-pg

[CloudNative PG](https://cloudnative-pg.io/) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/cloudnative-pg
```

## Usage

```js
import { Cluster } from "@kubernetes-models/cloudnative-pg/postgresql.cnpg.io/v1/Cluster";

// Create a new GitRepository
const cluster = new Cluster({
  metadata: {
    name: "cluster-example"
  },
  spec: {
    instances: 3,
    storage: {
      size: "1Gi"
    }
  }
});

// Validate against JSON schema
cluster.validate();
```

## License

MIT
npm package: @kubernetes-models/contour
Description: Contour models
Author: Tommy Chen
Latest version: 4.3.4

# @kubernetes-models/contour

[Contour](https://projectcontour.io/) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/contour
```

## Usage

```js
import { HTTPProxy } from "@kubernetes-models/contour/projectcontour.io/v1";

// Create a new HTTP proxy
const route = new HTTPProxy({
  metadata: {
    name: "foo"
  },
  spec: {
    virtualhost: {
      fqdn: "foo.example.com"
    },
    routes: [
      {
        conditions: [
          {
            prefix: "/"
          }
        ],
        services: [
          {
            name: "foo",
            port: 80
          }
        ]
      }
    ]
  }
});

// Validate against JSON schema
route.validate();
```

## License

MIT
npm package: @kubernetes-models/elastic-cloud
Description: You Know, for Search.
Author: Eddie Wen
Latest version: 0.2.4

# @kubernetes-models/elastic-cloud

[Elastic Cloud on Kubernetes (ECK)](https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-overview.html) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/elastic-cloud
```

```js
import { Elasticsearch } from '@kubernetes-models/elastic-cloud/elasticsearch.k8s.elastic.co/v1';

const elasticsearch = new Elasticsearch({
  metadata: {
    name: "example"
  },
  spec: {
    version: "8.9.2",
    nodeSets: [
      {
        name: "example"
      }
    ]
  },
});

// Validate against JSON schema
elasticsearch.validate();
```

## License

MIT
npm package: @kubernetes-models/envoy-gateway
Description: Envoy Gateway models
Author: Leo Zhan
Latest version: 0.3.4

# @kubernetes-models/envoy-gateway

[Envoy Gateway](https://gateway.envoyproxy.io/) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/envoy-gateway
```

## Usage

```js
import { BackendTrafficPolicy } from "@kubernetes-models/envoy-gateway/gateway.envoyproxy.io/v1alpha1";

// Create a new BackendTrafficPolicy
const app = new BackendTrafficPolicy({
  metadata: {
    namespace: "envoy-gateway",
    name: "target-gateway-1"
  },
  spec: {
    targetRef: {
      group: "gateway.networking.k8s.io",
      kind: "Gateway",
      name: "gateway-1",
      namespace: "envoy-gateway"
    }
  }
});

// Validate against JSON schema
app.validate();
```

## License

MIT
npm package: @kubernetes-models/external-secrets
Description: External secrets models
Author: Tommy Chen
Latest version: 0.6.2

# @kubernetes-models/external-secrets

[External secrets](https://external-secrets.io) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/external-secrets
```

## Usage

```js
import { ExternalSecret } from "@kubernetes-models/external-secrets/external-secrets.io/v1beta1/ExternalSecret";

// Create a new ExternalSecret
const secret = new ExternalSecret({
  metadata: {
    name: "example"
  },
  spec: {
    refreshInterval: "1h",
    secretStoreRef: {
      name: "secret-store-sample",
      kind: "SecretStore"
    },
    target: {
      name: "secret-to-be-created",
      creationPolicy: "Owner"
    },
    data: [
      {
        secretKey: "secret-key-to-be-managed",
        remoteRef: {
          key: "provider-key",
          version: "provider-key-version",
          property: "provider-key-property"
        }
      }
    ],
    dataFrom: [
      {
        extract: { key: "remote-key-in-the-provider" }
      }
    ]
  }
});

// Validate against JSON schema
secret.validate();
```

## License

MIT
npm package: @kubernetes-models/fission
Description: fission models
Author: Tommy Chen
Latest version: 0.2.4

# @kubernetes-models/fission

[Fission](https://fission.io) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/fission
```

## Usage

```js
import { Package } from "@kubernetes-models/fission/fission.io/v1/Package";

// Create a new Package
const pkg = new Package({
  metadata: {
    name: "example"
  },
  spec: {
    environment: {
      name: "nodejs",
      namespace: "fission-function"
    },
    deployment: {
      type: "literal",
      literal: "console.log('Hello, World!')"
    }
  }
});

// Validate against JSON schema
pkg.validate();
```

## License

MIT
npm package: @kubernetes-models/flagger
Description: Flagger models
Author: Tommy Chen
Latest version: 0.4.4

# @kubernetes-models/flagger

[Flagger](https://flagger.app/) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/flagger
```

## Usage

```js
import { Canary } from "@kubernetes-models/flagger/flagger.app/v1beta1/Canary";

// Create a new Canary
const canary = new Canary({
  metadata: {
    name: "example"
  },
  spec: {
    targetRef: {
      apiVersion: "apps/v1",
      kind: "Deployment",
      name: "example"
    },
    service: { port: 9898 },
    analysis: {
      interval: "1m",
      threshold: 10,
      maxWeight: 50,
      stepWeight: 5
    }
  }
});

// Validate against JSON schema
canary.validate();
```

## License

MIT
npm package: @kubernetes-models/flink
Description: Flink models
Author: Tommy Chen
Latest version: 0.1.1

# @kubernetes-models/flink

[Flink Kubernetes Operator](https://nightlies.apache.org/flink/flink-kubernetes-operator-docs-main/) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/flink
```

## Usage

```js
import { FlinkDeployment } from "@kubernetes-models/flink/flink.apache.org/v1beta1/FlinkDeployment";

// Create a new deployment
const deployment = new FlinkDeployment({
  metadata: {
    name: "example"
  },
  spec: {
    image: "flink:1.20",
    flinkVersion: "v1_20",
    flinkConfiguration: {
      "taskmanager.numberOfTaskSlots": "2"
    },
    serviceAccount: "flink",
    jobManager: {
      resource: {
        memory: "1024m",
        cpu: 1
      }
    },
    taskManager: {
      resource: {
        memory: "2048m",
        cpu: 1
      }
    },
    job: {
      jarURI: "local:///opt/flink/examples/streaming/StateMachineExample.jar",
      parallelism: 2,
      upgradeMode: "stateless",
      state: "running"
    }
  }
});

// Validate against JSON schema
deployment.validate();
```

## License

MIT
npm package: @kubernetes-models/flux-cd
Description: Flux CD models
Author: Tommy Chen
Latest version: 2.3.4

# @kubernetes-models/flux-cd

[Flux CD](https://fluxcd.io/) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/flux-cd
```

## Usage

```js
import { GitRepository } from "@kubernetes-models/flux-cd/source.toolkit.fluxcd.io/v1beta1/GitRepository";

// Create a new GitRepository
const repo = new GitRepository({
  metadata: {
    name: "webapp"
  },
  spec: {
    interval: "60m",
    url: "https://github.com/tommy351/kubernetes-models-ts",
    ref: {
      branch: "master"
    }
  }
});

// Validate against JSON schema
repo.validate();
```

## License

MIT
npm package: @kubernetes-models/gateway-api
Description: Gateway API models
Author: Tommy Chen
Latest version: 0.7.4

# @kubernetes-models/gateway-api

[Gateway API](https://gateway-api.sigs.k8s.io/) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/gateway-api
```

## Usage

```js
import { HTTPRoute } from "@kubernetes-models/gateway-api/gateway.networking.k8s.io/v1/HTTPRoute";

// Create a new HTTPRoute
const route = new HTTPRoute({
  metadata: {
    name: "http-route"
  },
  spec: {
    parentRefs: [
      {
        kind: "Gateway",
        name: "foo-gateway"
      }
    ],
    rules: [
      {
        backendRefs: [{ name: "foo-svc", port: 8080 }]
      }
    ]
  }
});

// Validate against JSON schema
route.validate();
```

## License

MIT
npm package: @kubernetes-models/gke
Description: Kubernetes GKE models
Author: Rueian
Latest version: 4.6.2

# @kubernetes-models/gke

[Google Kubernetes Engine](https://cloud.google.com/kubernetes-engine/docs/concepts/) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/gke
```

## Usage

### Google Cloud CDN/IAP/Cloud Armor Settings

via [BackendConfig](https://cloud.google.com/kubernetes-engine/docs/concepts/backendconfig)

```js
import { BackendConfig } from "@kubernetes-models/gke/cloud.google.com/v1beta1/BackendConfig";

const config = new BackendConfig({
  metadata: {
    name: "iap-example"
  },
  spec: {
    iap: {
      enabled: true,
      oauthclientCredentials: {
        secretName: "iap-oauth-secret"
      }
    }
  }
});

// Validate against JSON schema
config.validate();
```

### Config Connector

```js
import { SpannerInstance } from "@kubernetes-models/gke/spanner.cnrm.cloud.google.com/v1beta1/SpannerInstance";

const instance = new SpannerInstance({
  metadata: {
    name: "spanner-example"
  },
  spec: {
    config: "regional-us-west1",
    displayName: "Spanner Example",
    numNodes: 1
  }
});

instance.validate();
```

## License

MIT
npm package: @kubernetes-models/grafana-agent-operator
Description: Grafana agent operator models
Author: Tommy Chen
Latest version: 2.3.4

# @kubernetes-models/grafana-agent-operator

[Grafana agent operator](https://grafana.com/docs/agent/latest/operator/) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/grafana-agent-operator
```

## Usage

```js
import { GrafanaAgent } from "@kubernetes-models/grafana-agent-operator/monitoring.grafana.com/v1alpha1/GrafanaAgent";

// Create a new GrafanaAgent
const agent = new GrafanaAgent({
  metadata: { name: "grafana-agent" },
  spec: {
    image: "grafana/agent:v0.21.2",
    logLevel: "info",
    metrics: {
      instanceSelector: {
        matchLabels: {
          agent: "grafana-agent-metrics"
        }
      }
    }
  }
});

// Validate against JSON schema
agent.validate();
```

## License

See [LICENSE](../../LICENSE)
npm package: @kubernetes-models/grafana-operator
Description: Grafana operator models
Author: Tommy Chen
Latest version: 2.4.4

# @kubernetes-models/grafana-operator

[Grafana operator](https://github.com/grafana-operator/grafana-operator) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/grafana-operator
```

## Usage

```js
import { Grafana } from "@kubernetes-models/grafana-operator/integreatly.org/v1alpha1/Grafana";

// Create a new Grafana
const grafana = new Grafana({
  metadata: { name: "example" },
  spec: {
    config: {
      log: {
        mode: "console",
        level: "error"
      }
    }
  }
});

// Validate against JSON schema
grafana.validate();
```

## License

See [LICENSE](../../LICENSE)
npm package: @kubernetes-models/istio
Description: Istio models
Author: Tommy Chen
Latest version: 2.4.4

# @kubernetes-models/istio

[Istio](https://istio.io/) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/istio
```

## Usage

```js
import { Gateway } from "@kubernetes-models/istio/networking.istio.io/v1beta1/Gateway";

// Create a new Gateway
const gateway = new Gateway({
  metadata: {
    name: "test"
  },
  spec: {
    selector: {
      app: "istio"
    },
    servers: [
      {
        port: {
          number: 80
        },
        hosts: ["*"]
      }
    ]
  }
});

// Validate against JSON schema
gateway.validate();
```

## License

MIT
npm package: @kubernetes-models/jaeger-operator
Description: Jaeger operator models
Author: Tommy Chen
Latest version: 2.3.4

# @kubernetes-models/jaeger-operator

[Jaeger operator](https://www.jaegertracing.io/docs/latest/operator/) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/jaeger-operator
```

## Usage

```js
import { Jaeger } from "@kubernetes-models/jaeger-operator/jaegertracing.io/v1/Jaeger";

// Create a new Jaeger
const jaeger = new Jaeger({
  metadata: { name: "hello" },
  spec: {
    strategy: "production",
    collector: {
      maxReplicas: 5,
      resources: {
        limits: {
          cpu: "100m",
          memory: "128Mi"
        }
      }
    },
    storage: {
      type: "elasticsearch",
      options: {
        es: {
          "server-urls": "http://elasticsearch:9200"
        }
      }
    }
  }
});

// Validate against JSON schema
jaeger.validate();
```

## License

See [LICENSE](../../LICENSE)
npm package: @kubernetes-models/k8ssandra-operator
Description: Manage Apache Cassandra and DSE on Kubernetes.
Author: Eddie Wen
Latest version: 0.2.4

# @kubernetes-models/k8ssandra-operator

[K8ssandra](https://k8ssandra.io/) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/k8ssandra-operator
```

```js
import { K8ssandraCluster } from '@kubernetes-models/k8ssandra-operator/v1alpha1';

const cluster = new K8ssandraCluster({
  metadata: { name: "example" },
  spec: {
    cassandra: {
      datacenters: [
        {
          metadata: {
            name: "example"
          },
          size: 3
        }
      ]
    }
  }
});

// Validate against JSON schema
cluster.validate();
```

## License

MIT
npm package: @kubernetes-models/kapp-controller
Description: Carvel kapp contoller models
Latest version: 2.3.4

# @kubernetes-models/kapp-controller

[Carvel kapp contoller](https://github.com/vmware-tanzu/carvel-kapp-controller) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/kapp-controller
```

## Usage

```js
import { App } from "@kubernetes-models/kapp-controller/kappctrl.k14s.io/v1alpha1/App";

// Create a new Application
const app = new App({
  metadata: { name: "hello" },
  spec: {
    serviceAccountName: "default-ns-sa",
    fetch: [
      {
        git: {
          url: "https://github.com/vmware-tanzu/carvel-simple-app-on-kubernetes",
          ref: "origin/develop",
          subPath: "config-step-2-template"
        }
      }
    ],
    template: [{ ytt: {} }],
    deploy: [{ kapp: {} }]
  }
});

// Validate against JSON schema
app.validate();
```

## License

See [LICENSE](../../LICENSE)
npm package: @kubernetes-models/karpenter
Description: Karpenter models
Author: heycalmdown
Latest version: 0.2.4

# @kubernetes-models/karpenter

[Karpenter](https://karpenter.sh/) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/karpenter
```

## Usage

```ts
import { EC2NodeClass } from "@kubernetes-models/karpenter/karpenter.k8s.aws/v1beta1";

// Create a new EC2NodeClass
const nodeClass = new EC2NodeClass({
  metadata: { name: "test" },
  spec: {
    amiFamily: "AL2",
    subnetSelectorTerms: [{ tags: { "aws-cdk:subnet-name": "private" } }],
    securityGroupSelectorTerms: [{ name: "test" }]
  }
});

// Validate against JSON schema
nodeClass.validate();
```

## License

MIT
npm package: @kubernetes-models/keda
Description: KEDA(Kubernetes Event-driven Autoscaling) models
Author: Jay Chung
Latest version: 0.4.4

# @kubernetes-models/keda

[KEDA](https://github.com/kedacore/keda) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/keda
```

## Usage

```js
import { ScaledObject } from "@kubernetes-models/keda/keda.sh/v1alpha1/ScaledObject";

// Create a new ScaledObject
const scaledObject = new ScaledObject({
  metadata: {
    name: "example",
  },
  spec: {
    scaleTargetRef: {
      name: 'example',
    },
    triggers: [
      {
        type: "cpu",
        metadata: {
          type: "Utilization",
          value: "70",
        },
      }
    ],
  },
});

// Validate against JSON schema
scaledObject.validate();
```

## License

See [LICENSE](../../LICENSE)
npm package: @kubernetes-models/knative
Description: Knative models
Author: Tommy Chen
Latest version: 2.4.4

# @kubernetes-models/knative

[Knative](https://knative.dev/) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/knative
```

## Usage

```js
import { Service } from "@kubernetes-models/knative/serving.knative.dev/v1/Service";

// Create a service
const service = new Service({
  metadata: { name: "hello" },
  spec: {
    template: {
      metadata: { name: "hello-world" },
      spec: {
        containers: [
          {
            image: "gcr.io/knative-samples/helloworld-go",
            ports: [{ containerPort: 8080 }]
          }
        ]
      }
    }
  }
});

// Validate against JSON schema
service.validate();
```

## License

MIT
npm package: @kubernetes-models/kubedb
Description: KubeDB models
Author: Tommy Chen
Latest version: 0.4.4

# @kubernetes-models/kubedb

[KubeDB](https://kubedb.com/) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/kubedb
```

## Usage

```js
import { App } from "@kubernetes-models/kubedb/kubedb.com/v1alpha2/Postgres";

// Create a new Postgres
const pg = new Postgres({
  metadata: { name: "example" },
  spec: {
    version: "13.2",
    storageType: "Durable",
    storage: {
      storageClassName: "standard",
      accessModes: ["ReadWriteOnce"],
      resources: {
        requests: { storage: "1Gi" }
      }
    },
    terminationPolicy: "DoNotTerminate"
  }
});

// Validate against JSON schema
pg.validate();
```

## License

See [LICENSE](../../LICENSE)
npm package: @kubernetes-models/kyverno
Description: Kyverno models
Author: benjamin99
Latest version: 0.3.4

# @kubernetes-models/kyverno

[Kyverno](https://kyverno.io/) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/kyverno
```

## Usage

```js
import { ClusterPolicy } from "@kubernetes-models/kyverno/kyverno.io/v1/ClusterPolicy";

// Create a new ClusterPolicy
const policy = new ClusterPolicy({
  metadata: {
    name: "require-labels"
  },
  spec: {
    validationFailureAction: "enforce",
    background: false,
    rules: [
      {
        name: "check-team",
        match: {
          any: [
            {
              resources: {
                namespaces: ["default"],
                kinds: ["Pod"]
              }
            }
          ]
        },
        validate: {
          message: "label team must be set",
          pattern: {
            metadata: {
              labels: {
                team: "?*"
              }
            }
          }
        }
      }
    ]
  }
});

// Validate against JSON schema
policy.validate();
```

## License

MIT
npm package: @kubernetes-models/linkerd
Description: [Linkerd](https://linkerd.io/) models.
Author: YC Kao
Latest version: 0.4.3

# @kubernetes-models/linkerd

[Linkerd](https://linkerd.io/) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/linkerd
```

```js
import { ServiceProfile } from '@kubernetes-models/linkerd/linkerd.io/v1alpha2/ServiceProfile';

const serviceProfile = new ServiceProfile({
  metadata: {
    name: "example"
  },
  spec: {
    routes: [
      {
        name: "example",
        condition: {
          method: "GET",
          pathRegex: "/v1/example/.*"
        }
      }
    ]
  },
});

// Validate against JSON schema
serviceProfile.validate();
```

## License

MIT
npm package: @kubernetes-models/longhorn
Description: Longhorn models
Author: Alexandre Dos Reis
Latest version: 0.1.4

# @kubernetes-models/longhorn

[Longhorn](https://longhorn.io/) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/longhorn
```

## Usage

```js
import { Backup } from "@kubernetes-models/longhorn/longhorn.io/v1beta1/Backup";

// Create a new Backup
const backup = new Backup({
  metadata: {
    name: "backup"
  },
  spec: {
    backupMode: "incremental",
    snapshotName: "snapshot-name-example",
    labels: {
      app: "test"
    }
  }
});

// Validate against JSON schema
backup.validate();
```

## License

MIT
npm package: @kubernetes-models/nats
Description: NATS models
Author: Yz C
Latest version: 0.2.4

# @kubernetes-models/nats

NATS models.

This package contains the following operators:

- [NATS Controllers for Kubernetes (NACK)](https://github.com/nats-io/nack)

Feel free to submit an issue or a pull request if the operator you are using is not here.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/nats
```

## Usage

### NATS Controllers for Kubernetes (NACK)

```js
import { Stream } from "@kubernetes-models/nats/jetstream.nats.io/v1beta2/Stream";
import { Consumer } from "@kubernetes-models/nats/jetstream.nats.io/v1beta2/Consumer";

// Create a new NATS JetStream stream
const myStream = new Stream({
  metadata: { name: "mystream" },
  spec: {
    name: "mystream",
    subjects: ["orders.*"],
    storage: "memory",
    maxAge: "1h"
  }
});

// Create a new NATS JetStream consumer
const myPushConsumer = new Consumer({
  metadata: { name: "my-push-consumer" },
  spec: {
    streamName: "mystream",
    durableName: "my-push-consumer",
    deliverSubject: "my-push-consumer.orders",
    deliverPolicy: "last",
    ackPolicy: "none",
    replayPolicy: "instant"
  }
});

// Create a new NATS JetStream consumer
const myPullConsumer = new Consumer({
  metadata: { name: "my-pull-consumer" },
  spec: {
    streamName: "mystream",
    durableName: "my-pull-consumer",
    deliverPolicy: "all",
    filterSubject: "orders.received",
    maxDeliver: 20,
    ackPolicy: "explicit"
  }
});

// Validate against JSON schema
myStream.validate();
myPushConsumer.validate();
myPullConsumer.validate();
```

## License

See [LICENSE](../../LICENSE)
npm package: @kubernetes-models/opentelemetry-operator
Description: OpenTelemetry Operator models
Author: Oriol Mari
Latest version: 0.1.2

# @kubernetes-models/opentelemetry-operator

OpenTelemetry Operator Models for Kubernetes

This package contains the following operators:

- [OpenTelemetry Operator](https://github.com/open-telemetry/opentelemetry-operator)

Feel free to submit an issue or a pull request if the operator you are using is not here.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/opentelemetry-operator
```

## Usage

### OpenTelemetry Operator

```js
import { OpenTelemetryCollector } from "@kubernetes-models/opentelemetry-operator/opentelemetry.io/v1beta1/OpenTelemetryCollector";
import { Instrumentation } from "@kubernetes-models/opentelemetry-operator/opentelemetry.io/v1alpha1/Instrumentation";

// Create a new OpenTelemetry Collector
const collector = new OpenTelemetryCollector({
  metadata: { name: "my-collector" },
  spec: {
    mode: "deployment",
    image:
      "ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector-contrib:0.96.0",
    config: {
      receivers: {
        otlp: {
          protocols: {
            grpc: {},
            http: {}
          }
        }
      },
      exporters: {
        prometheus: {
          endpoint: "0.0.0.0:8889"
        }
      },
      service: {
        pipelines: {
          metrics: {
            receivers: ["otlp"],
            exporters: ["prometheus"]
          }
        }
      }
    }
  }
});

// Create an OpenTelemetry Instrumentation resource
const instrumentation = new Instrumentation({
  metadata: { name: "my-instrumentation" },
  spec: {
    exporter: {
      endpoint: "http://my-collector-collector:4318"
    },
    propagators: ["tracecontext", "baggage"],
    sampler: {
      type: "parentbased_traceidratio",
      argument: "0.25"
    },
    nodejs: {
      image: "auto"
    },
    java: {
      image: "auto"
    }
  }
});

// Validate against JSON schema
collector.validate();
instrumentation.validate();
```

## License

See [LICENSE](../../LICENSE)
npm package: @kubernetes-models/pipelines-as-code
Description: Pipelines-as-Code models
Author: Christoph Jerolimov
Latest version: 0.2.4

# @kubernetes-models/pipelines-as-code

[Pipelines-as-Code](https://pipelinesascode.com/) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/pipelines-as-code
```

## Usage

```js
import { Repository } from "@kubernetes-models/pipelines-as-code/pipelinesascode.tekton.dev/v1alpha1/Repository";

// Create a new Application
const repository = new Repository({
  metadata: {
    name: "pac-repo"
  },
  spec: {
    url: "https://github.com/linda/project",
    git_provider: {
      secret: {
        name: 'my-secret',
        key: 'repo-secret',
      },
      webhook_secret: {
        name: 'my-secret',
        key: 'webhook-secret',
      },
    },
  },
});

// Validate against JSON schema
app.validate();
```

## License

MIT
npm package: @kubernetes-models/postgres-operator
Description: PostgreSQL operator models
Author: Tommy Chen
Latest version: 0.5.2

# @kubernetes-models/postgres-operator

PostgreSQL models.

This package contains the following operators:

- [Crunchy Data Postgres Operator (PGO)](https://access.crunchydata.com/documentation/postgres-operator/v5/)
- [Zalando Postgres Operator](https://postgres-operator.readthedocs.io/en/latest/)

Feel free to submit an issue or a pull request if the operator you are using is not here.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/postgres-operator
```

## Usage

### Crunchy Data

```js
import { PostgresCluster } from "@kubernetes-models/postgres-operator/postgres-operator.crunchydata.com/v1beta1/PostgresCluster";

// Create a new PostgreSQL cluster
const cluster = new PostgresCluster({
  metadata: { name: "example" },
  spec: {
    image:
      "registry.developers.crunchydata.com/crunchydata/crunchy-postgres:ubi8-14.5-1",
    postgresVersion: 14,
    instances: [
      {
        name: "instance1",
        dataVolumeClaimSpec: {
          accessModes: ["ReadWriteOnce"],
          resources: {
            requests: {
              storage: "1Gi"
            }
          }
        }
      }
    ],
    backups: {
      pgbackrest: {
        image:
          "registry.developers.crunchydata.com/crunchydata/crunchy-pgbackrest:ubi8-2.40-1",
        repos: [
          {
            name: "repo1",
            volume: {
              volumeClaimSpec: {
                accessModes: ["ReadWriteOnce"],
                resources: {
                  requests: {
                    storage: "1Gi"
                  }
                }
              }
            }
          }
        ]
      }
    }
  }
});

// Validate against JSON schema
cluster.validate();
```

### Zalando

```js
import { postgresql } from "@kubernetes-models/postgres-operator/acid.zalan.do/v1/postgresql";

// Create a new PostgreSQL cluster
const cluster = new postgresql({
  metadata: {
    name: "example"
  },
  spec: {
    teamId: "acid",
    volume: {
      size: "1Gi"
    },
    numberOfInstances: 2,
    users: {
      zalando: ["superuser", "createdb"]
    },
    databases: {
      foo: "zalando"
    },
    preparedDatabases: {
      bar: {}
    },
    postgresql: {
      version: "14"
    }
  }
});

// Validate against JSON schema
cluster.validate();
```

## License

See [LICENSE](../../LICENSE)
npm package: @kubernetes-models/prometheus-operator
Description: Kubernetes prometheus-operator models
Author: Julien Bouquillon
Latest version: 4.4.4

# @kubernetes-models/prometheus-operator

[Prometheus operator](https://github.com/prometheus-operator/prometheus-operator/) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/prometheus-operator
```

## Usage

```js
import { ServiceMonitor } from "@kubernetes-models/prometheus-operator/monitoring.coreos.com/v1/ServiceMonitor";

const monitor = new ServiceMonitor({
  metadata: {
    name: "my-service-monitor"
  },
  spec: {
    selector: {
      matchLabels: {
        app: "some-app"
      }
    },
    endpoints: [
      {
        port: web
      }
    ]
  }
});

// Validate against JSON schema
monitor.validate();
```

## License

MIT
npm package: @kubernetes-models/pulsar-resources-operator
Description: [Pulsar resources operator](https://github.com/streamnative/pulsar-resources-operator) models.
Author: Tommy Chen
Latest version: 0.1.2

# @kubernetes-models/pulsar-resources-operator

[Pulsar resources operator](https://github.com/streamnative/pulsar-resources-operator) models.

## Installation

Install with npm.

```sh
npm install @kubernetes-models/pulsar-resources-operator
```

## Usage

```js
import { PulsarTenant } from "@kubernetes-models/pulsar-resources-operator/resource.streamnative.io/v1alpha1/PulsarTenant";

// Create a new PulsarTenant
const tenant = new PulsarTenant({
  metadata: { name: "example" },
  spec: {
    name: "example-tenant",
    connectionRef: { name: "example-connection" }
  }
});

// Validate against JSON schema
tenant.validate();
```

## License

See [LICENSE](../../LICENSE)