1 Commits

Author SHA1 Message Date
Chris Farhood 03e2bc1e11 chore: remove unused MCP server from API package
CI / Type-check & lint (pull_request) Successful in 16s
CI / Build & push API image (pull_request) Has been skipped
CI / Build & push worker image (pull_request) Has been skipped
The MCP server was never wired into the API entry point — dead code.
The REST API + Paperclip skill provides sufficient surface area.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-19 10:26:41 +00:00
22 changed files with 100 additions and 861 deletions
+23 -11
View File
@@ -4,7 +4,7 @@ on:
push: push:
branches: [main] branches: [main]
paths: paths:
- 'charts/trebuchet/**' - 'charts/hightower/**'
permissions: permissions:
contents: write contents: write
@@ -23,19 +23,31 @@ jobs:
uses: azure/setup-helm@b9e51907a09c216f16ebe8536097933489208112 # v4.3.0 uses: azure/setup-helm@b9e51907a09c216f16ebe8536097933489208112 # v4.3.0
- name: Lint chart - name: Lint chart
run: helm lint charts/trebuchet run: helm lint charts/hightower
- name: Package chart - name: Package chart
run: | run: |
mkdir -p .helm-packages mkdir -p .helm-packages
helm package charts/trebuchet -d .helm-packages helm package charts/hightower -d .helm-packages
- name: Upload chart to Gitea releases - name: Checkout gh-pages
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
ref: gh-pages
path: gh-pages
fetch-depth: 0
- name: Update Helm repo index
run: | run: |
CHART_FILE=$(ls .helm-packages/*.tgz | head -1) cp .helm-packages/*.tgz gh-pages/
CHART_NAME=$(basename "$CHART_FILE") helm repo index gh-pages --url https://farhoodlabs.github.io/hightower
echo "Chart packaged: $CHART_NAME"
echo "Chart is available in the CI artifacts at .helm-packages/$CHART_NAME" - name: Push to gh-pages
echo "To use this chart, either:" run: |
echo " - Download from CI artifacts" cd gh-pages
echo " - Publish to a Helm registry (infrastructure repo or Gitea package registry)" git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add .
git diff --staged --quiet && echo "No changes to commit" && exit 0
git commit -m "Release Helm chart $(ls *.tgz | head -1)"
git push
-1
View File
@@ -12,7 +12,6 @@
"dependencies": { "dependencies": {
"@hono/node-server": "^1.14.0", "@hono/node-server": "^1.14.0",
"@kubernetes/client-node": "^1.4.0", "@kubernetes/client-node": "^1.4.0",
"@modelcontextprotocol/sdk": "^1.29.0",
"@trebuchet/worker": "workspace:*", "@trebuchet/worker": "workspace:*",
"@temporalio/client": "^1.11.0", "@temporalio/client": "^1.11.0",
"hono": "^4.7.0", "hono": "^4.7.0",
-2
View File
@@ -5,7 +5,6 @@
export interface Config { export interface Config {
readonly port: number; readonly port: number;
readonly mcpPort: number;
readonly temporalAddress: string; readonly temporalAddress: string;
readonly apiKey: string; readonly apiKey: string;
readonly k8sNamespace: string; readonly k8sNamespace: string;
@@ -29,7 +28,6 @@ export function loadConfig(): Config {
return { return {
port: Number(process.env.PORT) || 3000, port: Number(process.env.PORT) || 3000,
mcpPort: Number(process.env.MCP_PORT) || 3100,
temporalAddress: process.env.TEMPORAL_ADDRESS || 'hightower-temporal:7233', temporalAddress: process.env.TEMPORAL_ADDRESS || 'hightower-temporal:7233',
apiKey, apiKey,
k8sNamespace: process.env.K8S_NAMESPACE || 'hightower', k8sNamespace: process.env.K8S_NAMESPACE || 'hightower',
-204
View File
@@ -1,204 +0,0 @@
/**
* MCP server for Hightower scan management.
* Exposes scan-manager tools via the Model Context Protocol over HTTP.
*/
import http from 'node:http';
import type * as k8s from '@kubernetes/client-node';
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
import type { Client } from '@temporalio/client';
import { z } from 'zod';
import type { Config } from '../config.js';
import { cancelScan, getReport, getScan, listScans, startScan } from '../services/scan-manager.js';
import type { CreateScanInput } from '../types/api.js';
export interface McpServerDeps {
readonly config: Config;
readonly temporalClient: Client;
readonly batchApi: k8s.BatchV1Api;
readonly coreApi: k8s.CoreV1Api;
}
function createMcpServer(deps: McpServerDeps): McpServer {
const server = new McpServer(
{ name: 'hightower', version: '1.0.0' },
{
capabilities: {
tools: {},
},
},
);
// === Tool: start_scan ===
server.registerTool(
'start_scan',
{
description: 'Start a new penetration test scan. Returns the scan ID and initial status.',
inputSchema: z.object({
targetUrl: z.string().describe('Target URL to scan (e.g., https://example.com)'),
gitUrl: z.string().describe('Git URL of the repository to analyze (e.g., https://github.com/user/repo)'),
workspace: z
.string()
.optional()
.describe(
'Optional workspace name. Must match /^[a-zA-Z0-9][a-zA-Z0-9_-]{0,127}$/. Defaults to auto-generated from target URL.',
),
gitRef: z.string().optional().describe('Optional Git branch/tag/commit to checkout before scanning.'),
pipelineTesting: z
.boolean()
.optional()
.describe('If true, runs in minimal testing mode with fast retries (10s). Use for development.'),
}),
},
async ({ targetUrl, gitUrl, workspace, gitRef, pipelineTesting }) => {
const input: CreateScanInput = {
targetUrl,
gitUrl,
workspace,
...(gitRef !== undefined && { gitRef }),
...(pipelineTesting !== undefined && { pipelineTesting }),
};
const result = await startScan(deps.config, deps.batchApi, input);
return {
content: [
{
type: 'text' as const,
text: JSON.stringify(result, null, 2),
},
],
};
},
);
// === Tool: get_scan ===
server.registerTool(
'get_scan',
{
description: 'Get the status, progress, and results of a running or completed scan.',
inputSchema: z.object({
scanId: z.string().describe('The scan ID returned from start_scan (e.g., hightower-worker-abc123)'),
}),
},
async ({ scanId }) => {
const result = await getScan(deps.config, deps.temporalClient, scanId);
if (!result) {
return {
content: [{ type: 'text' as const, text: `Scan '${scanId}' not found.` }],
isError: true,
};
}
return {
content: [
{
type: 'text' as const,
text: JSON.stringify(result, null, 2),
},
],
};
},
);
// === Tool: list_scans ===
server.registerTool(
'list_scans',
{
description: 'List all running and historical scans.',
inputSchema: z.object({}),
},
async () => {
const results = await listScans(deps.config, deps.temporalClient, deps.batchApi);
return {
content: [
{
type: 'text' as const,
text: JSON.stringify(results, null, 2),
},
],
};
},
);
// === Tool: cancel_scan ===
server.registerTool(
'cancel_scan',
{
description: 'Cancel a running scan by terminating its Kubernetes Job and Temporal workflow.',
inputSchema: z.object({
scanId: z.string().describe('The scan ID to cancel.'),
}),
},
async ({ scanId }) => {
await cancelScan(deps.config, deps.temporalClient, deps.batchApi, scanId);
return {
content: [
{
type: 'text' as const,
text: `Scan '${scanId}' cancellation requested.`,
},
],
};
},
);
// === Tool: get_report ===
server.registerTool(
'get_report',
{
description: 'Get the final security report for a completed scan.',
inputSchema: z.object({
scanId: z.string().describe('The scan ID to get the report for.'),
}),
},
async ({ scanId }) => {
const report = await getReport(deps.config, scanId);
if (!report) {
return {
content: [
{
type: 'text' as const,
text: `Report for scan '${scanId}' not found.`,
},
],
isError: true,
};
}
return {
content: [{ type: 'text' as const, text: report }],
};
},
);
return server;
}
export async function startMcpServer(deps: McpServerDeps, port: number): Promise<http.Server> {
const mcpServer = createMcpServer(deps);
const transport = new StreamableHTTPServerTransport({
sessionIdGenerator: () => crypto.randomUUID(),
});
// Cast to Transport — the SDK's Transport interface requires onclose: () => void
// but StreamableHTTPServerTransport allows undefined (handled internally).
await mcpServer.connect(transport as never);
const server = http.createServer((req, res) => {
transport.handleRequest(req, res, undefined);
});
return new Promise<http.Server>((resolve, reject) => {
server.on('error', reject);
server.listen(port, () => {
console.log(`MCP server listening on port ${port}`);
resolve(server);
});
});
}
@@ -1,5 +1,5 @@
apiVersion: v2 apiVersion: v2
name: trebuchet name: hightower
description: API-driven AI pentester built on Shannon, deployed as a service on Kubernetes description: API-driven AI pentester built on Shannon, deployed as a service on Kubernetes
type: application type: application
version: 0.1.1 version: 0.1.1
@@ -22,9 +22,9 @@ Ensure the following secrets exist in the {{ .Release.Namespace }} namespace:
== Services == == Services ==
API: {{ include "trebuchet.api.fullname" . }}:{{ .Values.api.port }} API: {{ include "hightower.api.fullname" . }}:{{ .Values.api.port }}
Temporal: {{ include "trebuchet.temporal.serviceName" . }}:{{ .Values.temporal.ports.grpc }} (gRPC) Temporal: {{ include "hightower.temporal.serviceName" . }}:{{ .Values.temporal.ports.grpc }} (gRPC)
{{ include "trebuchet.temporal.serviceName" . }}:{{ .Values.temporal.ports.webUi }} (Web UI) {{ include "hightower.temporal.serviceName" . }}:{{ .Values.temporal.ports.webUi }} (Web UI)
{{- if .Values.router.enabled }} {{- if .Values.router.enabled }}
Router: {{ include "trebuchet.router.fullname" . }}:{{ .Values.router.port }} Router: {{ include "hightower.router.fullname" . }}:{{ .Values.router.port }}
{{- end }} {{- end }}
@@ -1,14 +1,14 @@
{{/* {{/*
Chart name, truncated to 63 chars. Chart name, truncated to 63 chars.
*/}} */}}
{{- define "trebuchet.name" -}} {{- define "hightower.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }} {{- end }}
{{/* {{/*
Fully qualified app name, truncated to 63 chars. Fully qualified app name, truncated to 63 chars.
*/}} */}}
{{- define "trebuchet.fullname" -}} {{- define "hightower.fullname" -}}
{{- if .Values.fullnameOverride }} {{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }} {{- else }}
@@ -24,99 +24,99 @@ Fully qualified app name, truncated to 63 chars.
{{/* {{/*
Chart label value. Chart label value.
*/}} */}}
{{- define "trebuchet.chart" -}} {{- define "hightower.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }} {{- end }}
{{/* {{/*
Common labels. Common labels.
*/}} */}}
{{- define "trebuchet.labels" -}} {{- define "hightower.labels" -}}
helm.sh/chart: {{ include "trebuchet.chart" . }} helm.sh/chart: {{ include "hightower.chart" . }}
app.kubernetes.io/managed-by: {{ .Release.Service }} app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }} {{- end }}
{{/* {{/*
API component name. API component name.
*/}} */}}
{{- define "trebuchet.api.fullname" -}} {{- define "hightower.api.fullname" -}}
{{- printf "%s-api" (include "trebuchet.fullname" .) | trunc 63 | trimSuffix "-" }} {{- printf "%s-api" (include "hightower.fullname" .) | trunc 63 | trimSuffix "-" }}
{{- end }} {{- end }}
{{/* {{/*
API selector labels. API selector labels.
*/}} */}}
{{- define "trebuchet.api.selectorLabels" -}} {{- define "hightower.api.selectorLabels" -}}
app: {{ include "trebuchet.api.fullname" . }} app: {{ include "hightower.api.fullname" . }}
{{- end }} {{- end }}
{{/* {{/*
Temporal component name. Temporal component name.
*/}} */}}
{{- define "trebuchet.temporal.fullname" -}} {{- define "hightower.temporal.fullname" -}}
{{- printf "%s-temporal" (include "trebuchet.fullname" .) | trunc 63 | trimSuffix "-" }} {{- printf "%s-temporal" (include "hightower.fullname" .) | trunc 63 | trimSuffix "-" }}
{{- end }} {{- end }}
{{/* {{/*
Temporal service name (same as fullname). Temporal service name (same as fullname).
*/}} */}}
{{- define "trebuchet.temporal.serviceName" -}} {{- define "hightower.temporal.serviceName" -}}
{{- include "trebuchet.temporal.fullname" . }} {{- include "hightower.temporal.fullname" . }}
{{- end }} {{- end }}
{{/* {{/*
Temporal selector labels. Temporal selector labels.
*/}} */}}
{{- define "trebuchet.temporal.selectorLabels" -}} {{- define "hightower.temporal.selectorLabels" -}}
app: {{ include "trebuchet.temporal.fullname" . }} app: {{ include "hightower.temporal.fullname" . }}
{{- end }} {{- end }}
{{/* {{/*
Router component name. Router component name.
*/}} */}}
{{- define "trebuchet.router.fullname" -}} {{- define "hightower.router.fullname" -}}
{{- printf "%s-router" (include "trebuchet.fullname" .) | trunc 63 | trimSuffix "-" }} {{- printf "%s-router" (include "hightower.fullname" .) | trunc 63 | trimSuffix "-" }}
{{- end }} {{- end }}
{{/* {{/*
Router selector labels. Router selector labels.
*/}} */}}
{{- define "trebuchet.router.selectorLabels" -}} {{- define "hightower.router.selectorLabels" -}}
app: {{ include "trebuchet.router.fullname" . }} app: {{ include "hightower.router.fullname" . }}
{{- end }} {{- end }}
{{/* {{/*
CNPG cluster name. CNPG cluster name.
*/}} */}}
{{- define "trebuchet.cnpg.fullname" -}} {{- define "hightower.cnpg.fullname" -}}
{{- printf "%s-temporal-db" (include "trebuchet.fullname" .) | trunc 63 | trimSuffix "-" }} {{- printf "%s-temporal-db" (include "hightower.fullname" .) | trunc 63 | trimSuffix "-" }}
{{- end }} {{- end }}
{{/* {{/*
CNPG read-write service name (CNPG auto-creates <cluster>-rw). CNPG read-write service name (CNPG auto-creates <cluster>-rw).
*/}} */}}
{{- define "trebuchet.cnpg.serviceName" -}} {{- define "hightower.cnpg.serviceName" -}}
{{- printf "%s-rw" (include "trebuchet.cnpg.fullname" .) }} {{- printf "%s-rw" (include "hightower.cnpg.fullname" .) }}
{{- end }} {{- end }}
{{/* {{/*
Service account name for the API. Service account name for the API.
*/}} */}}
{{- define "trebuchet.serviceAccountName" -}} {{- define "hightower.serviceAccountName" -}}
{{- if .Values.api.serviceAccount.name }} {{- if .Values.api.serviceAccount.name }}
{{- .Values.api.serviceAccount.name }} {{- .Values.api.serviceAccount.name }}
{{- else }} {{- else }}
{{- include "trebuchet.api.fullname" . }} {{- include "hightower.api.fullname" . }}
{{- end }} {{- end }}
{{- end }} {{- end }}
{{/* {{/*
Postgres seeds host — use override or default to CNPG service. Postgres seeds host — use override or default to CNPG service.
*/}} */}}
{{- define "trebuchet.temporal.postgresSeeds" -}} {{- define "hightower.temporal.postgresSeeds" -}}
{{- if .Values.temporal.db.host }} {{- if .Values.temporal.db.host }}
{{- .Values.temporal.db.host }} {{- .Values.temporal.db.host }}
{{- else }} {{- else }}
{{- include "trebuchet.cnpg.serviceName" . }} {{- include "hightower.cnpg.serviceName" . }}
{{- end }} {{- end }}
{{- end }} {{- end }}
@@ -1,21 +1,21 @@
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: {{ include "trebuchet.api.fullname" . }} name: {{ include "hightower.api.fullname" . }}
labels: labels:
{{- include "trebuchet.labels" . | nindent 4 }} {{- include "hightower.labels" . | nindent 4 }}
{{- include "trebuchet.api.selectorLabels" . | nindent 4 }} {{- include "hightower.api.selectorLabels" . | nindent 4 }}
spec: spec:
replicas: {{ .Values.api.replicaCount }} replicas: {{ .Values.api.replicaCount }}
selector: selector:
matchLabels: matchLabels:
{{- include "trebuchet.api.selectorLabels" . | nindent 6 }} {{- include "hightower.api.selectorLabels" . | nindent 6 }}
template: template:
metadata: metadata:
labels: labels:
{{- include "trebuchet.api.selectorLabels" . | nindent 8 }} {{- include "hightower.api.selectorLabels" . | nindent 8 }}
spec: spec:
serviceAccountName: {{ include "trebuchet.serviceAccountName" . }} serviceAccountName: {{ include "hightower.serviceAccountName" . }}
{{- with .Values.imagePullSecrets }} {{- with .Values.imagePullSecrets }}
imagePullSecrets: imagePullSecrets:
{{- toYaml . | nindent 8 }} {{- toYaml . | nindent 8 }}
@@ -29,7 +29,7 @@ spec:
name: http name: http
env: env:
- name: TEMPORAL_ADDRESS - name: TEMPORAL_ADDRESS
value: "{{ include "trebuchet.temporal.serviceName" . }}:{{ .Values.temporal.ports.grpc }}" value: "{{ include "hightower.temporal.serviceName" . }}:{{ .Values.temporal.ports.grpc }}"
- name: WORKER_IMAGE - name: WORKER_IMAGE
value: {{ .Values.api.workerImage }} value: {{ .Values.api.workerImage }}
- name: K8S_NAMESPACE - name: K8S_NAMESPACE
@@ -59,4 +59,4 @@ spec:
volumes: volumes:
- name: workspaces - name: workspaces
persistentVolumeClaim: persistentVolumeClaim:
claimName: {{ include "trebuchet.fullname" . }}-workspaces claimName: {{ include "hightower.fullname" . }}-workspaces
@@ -1,9 +1,9 @@
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: Role kind: Role
metadata: metadata:
name: {{ include "trebuchet.api.fullname" . }} name: {{ include "hightower.api.fullname" . }}
labels: labels:
{{- include "trebuchet.labels" . | nindent 4 }} {{- include "hightower.labels" . | nindent 4 }}
rules: rules:
- apiGroups: ["batch"] - apiGroups: ["batch"]
resources: ["jobs"] resources: ["jobs"]
@@ -1,14 +1,14 @@
apiVersion: rbac.authorization.k8s.io/v1 apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding kind: RoleBinding
metadata: metadata:
name: {{ include "trebuchet.api.fullname" . }} name: {{ include "hightower.api.fullname" . }}
labels: labels:
{{- include "trebuchet.labels" . | nindent 4 }} {{- include "hightower.labels" . | nindent 4 }}
subjects: subjects:
- kind: ServiceAccount - kind: ServiceAccount
name: {{ include "trebuchet.serviceAccountName" . }} name: {{ include "hightower.serviceAccountName" . }}
namespace: {{ .Release.Namespace }} namespace: {{ .Release.Namespace }}
roleRef: roleRef:
kind: Role kind: Role
name: {{ include "trebuchet.api.fullname" . }} name: {{ include "hightower.api.fullname" . }}
apiGroup: rbac.authorization.k8s.io apiGroup: rbac.authorization.k8s.io
@@ -1,12 +1,12 @@
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: {{ include "trebuchet.api.fullname" . }} name: {{ include "hightower.api.fullname" . }}
labels: labels:
{{- include "trebuchet.labels" . | nindent 4 }} {{- include "hightower.labels" . | nindent 4 }}
spec: spec:
selector: selector:
{{- include "trebuchet.api.selectorLabels" . | nindent 4 }} {{- include "hightower.api.selectorLabels" . | nindent 4 }}
ports: ports:
- name: http - name: http
port: {{ .Values.api.port }} port: {{ .Values.api.port }}
@@ -2,7 +2,7 @@
apiVersion: v1 apiVersion: v1
kind: ServiceAccount kind: ServiceAccount
metadata: metadata:
name: {{ include "trebuchet.serviceAccountName" . }} name: {{ include "hightower.serviceAccountName" . }}
labels: labels:
{{- include "trebuchet.labels" . | nindent 4 }} {{- include "hightower.labels" . | nindent 4 }}
{{- end }} {{- end }}
@@ -2,9 +2,9 @@
apiVersion: v1 apiVersion: v1
kind: ConfigMap kind: ConfigMap
metadata: metadata:
name: {{ include "trebuchet.router.fullname" . }}-config name: {{ include "hightower.router.fullname" . }}-config
labels: labels:
{{- include "trebuchet.labels" . | nindent 4 }} {{- include "hightower.labels" . | nindent 4 }}
data: data:
router-config.json: {{ .Values.router.config | toJson | quote }} router-config.json: {{ .Values.router.config | toJson | quote }}
{{- end }} {{- end }}
@@ -2,19 +2,19 @@
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: {{ include "trebuchet.router.fullname" . }} name: {{ include "hightower.router.fullname" . }}
labels: labels:
{{- include "trebuchet.labels" . | nindent 4 }} {{- include "hightower.labels" . | nindent 4 }}
{{- include "trebuchet.router.selectorLabels" . | nindent 4 }} {{- include "hightower.router.selectorLabels" . | nindent 4 }}
spec: spec:
replicas: {{ .Values.router.replicaCount }} replicas: {{ .Values.router.replicaCount }}
selector: selector:
matchLabels: matchLabels:
{{- include "trebuchet.router.selectorLabels" . | nindent 6 }} {{- include "hightower.router.selectorLabels" . | nindent 6 }}
template: template:
metadata: metadata:
labels: labels:
{{- include "trebuchet.router.selectorLabels" . | nindent 8 }} {{- include "hightower.router.selectorLabels" . | nindent 8 }}
spec: spec:
{{- with .Values.imagePullSecrets }} {{- with .Values.imagePullSecrets }}
imagePullSecrets: imagePullSecrets:
@@ -62,5 +62,5 @@ spec:
volumes: volumes:
- name: config - name: config
configMap: configMap:
name: {{ include "trebuchet.router.fullname" . }}-config name: {{ include "hightower.router.fullname" . }}-config
{{- end }} {{- end }}
@@ -2,12 +2,12 @@
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: {{ include "trebuchet.router.fullname" . }} name: {{ include "hightower.router.fullname" . }}
labels: labels:
{{- include "trebuchet.labels" . | nindent 4 }} {{- include "hightower.labels" . | nindent 4 }}
spec: spec:
selector: selector:
{{- include "trebuchet.router.selectorLabels" . | nindent 4 }} {{- include "hightower.router.selectorLabels" . | nindent 4 }}
ports: ports:
- port: {{ .Values.router.port }} - port: {{ .Values.router.port }}
targetPort: {{ .Values.router.port }} targetPort: {{ .Values.router.port }}
@@ -2,9 +2,9 @@
apiVersion: postgresql.cnpg.io/v1 apiVersion: postgresql.cnpg.io/v1
kind: Cluster kind: Cluster
metadata: metadata:
name: {{ include "trebuchet.cnpg.fullname" . }} name: {{ include "hightower.cnpg.fullname" . }}
labels: labels:
{{- include "trebuchet.labels" . | nindent 4 }} {{- include "hightower.labels" . | nindent 4 }}
spec: spec:
instances: {{ .Values.cnpg.instances }} instances: {{ .Values.cnpg.instances }}
storage: storage:
@@ -1,19 +1,19 @@
apiVersion: apps/v1 apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: {{ include "trebuchet.temporal.fullname" . }} name: {{ include "hightower.temporal.fullname" . }}
labels: labels:
{{- include "trebuchet.labels" . | nindent 4 }} {{- include "hightower.labels" . | nindent 4 }}
{{- include "trebuchet.temporal.selectorLabels" . | nindent 4 }} {{- include "hightower.temporal.selectorLabels" . | nindent 4 }}
spec: spec:
replicas: {{ .Values.temporal.replicaCount }} replicas: {{ .Values.temporal.replicaCount }}
selector: selector:
matchLabels: matchLabels:
{{- include "trebuchet.temporal.selectorLabels" . | nindent 6 }} {{- include "hightower.temporal.selectorLabels" . | nindent 6 }}
template: template:
metadata: metadata:
labels: labels:
{{- include "trebuchet.temporal.selectorLabels" . | nindent 8 }} {{- include "hightower.temporal.selectorLabels" . | nindent 8 }}
spec: spec:
{{- with .Values.imagePullSecrets }} {{- with .Values.imagePullSecrets }}
imagePullSecrets: imagePullSecrets:
@@ -34,7 +34,7 @@ spec:
- name: DB_PORT - name: DB_PORT
value: {{ .Values.temporal.db.port | quote }} value: {{ .Values.temporal.db.port | quote }}
- name: POSTGRES_SEEDS - name: POSTGRES_SEEDS
value: {{ include "trebuchet.temporal.postgresSeeds" . }} value: {{ include "hightower.temporal.postgresSeeds" . }}
- name: DBNAME - name: DBNAME
value: {{ .Values.temporal.db.name }} value: {{ .Values.temporal.db.name }}
- name: VISIBILITY_DBNAME - name: VISIBILITY_DBNAME
@@ -1,12 +1,12 @@
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: {{ include "trebuchet.temporal.serviceName" . }} name: {{ include "hightower.temporal.serviceName" . }}
labels: labels:
{{- include "trebuchet.labels" . | nindent 4 }} {{- include "hightower.labels" . | nindent 4 }}
spec: spec:
selector: selector:
{{- include "trebuchet.temporal.selectorLabels" . | nindent 4 }} {{- include "hightower.temporal.selectorLabels" . | nindent 4 }}
ports: ports:
- name: grpc - name: grpc
port: {{ .Values.temporal.ports.grpc }} port: {{ .Values.temporal.ports.grpc }}
@@ -1,9 +1,9 @@
apiVersion: v1 apiVersion: v1
kind: PersistentVolumeClaim kind: PersistentVolumeClaim
metadata: metadata:
name: {{ include "trebuchet.fullname" . }}-workspaces name: {{ include "hightower.fullname" . }}-workspaces
labels: labels:
{{- include "trebuchet.labels" . | nindent 4 }} {{- include "hightower.labels" . | nindent 4 }}
{{- if .Values.workspaces.retain }} {{- if .Values.workspaces.retain }}
annotations: annotations:
helm.sh/resource-policy: keep helm.sh/resource-policy: keep
@@ -4,8 +4,8 @@ imagePullSecrets: []
# Externally-managed secrets (chart never creates these) # Externally-managed secrets (chart never creates these)
secrets: secrets:
credentials: trebuchet-credentials credentials: hightower-credentials
temporalDbApp: trebuchet-temporal-db-app temporalDbApp: hightower-temporal-db-app
# Shared workspaces PVC # Shared workspaces PVC
workspaces: workspaces:
-566
View File
File diff suppressed because it is too large Load Diff