Add k3s Helm charts for Opus API and TeX Live API

This commit is contained in:
Solaria
2026-03-14 23:32:38 +00:00
parent 1a627dc099
commit 1b94a71f02
7 changed files with 215 additions and 0 deletions
@@ -0,0 +1,6 @@
apiVersion: v2
name: opus-orchestrator
description: Opus Orchestrator AI - Book Generation System
type: application
version: 0.1.0
appVersion: "latest"
@@ -0,0 +1,56 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}
labels:
app: opus-orchestrator
spec:
replicas: {{ .Values.api.replicaCount | default 1 }}
selector:
matchLabels:
app: opus-orchestrator
template:
metadata:
labels:
app: opus-orchestrator
spec:
containers:
- name: opus
image: "{{ .Values.api.image.repository }}:{{ .Values.api.image.tag | default "latest" }}"
imagePullPolicy: Always
ports:
- containerPort: {{ .Values.api.service.port | default 8000 }}
env:
- name: MINIMAX_API_KEY
value: {{ .Values.api.env.MINIMAX_API_KEY | quote }}
- name: GITHUB_TOKEN
value: {{ .Values.api.env.GITHUB_TOKEN | quote }}
- name: LOG_LEVEL
value: {{ .Values.api.env.LOG_LEVEL | default "INFO" | quote }}
resources:
{{- toYaml .Values.resources | nindent 10 }}
livenessProbe:
httpGet:
path: /health
port: {{ .Values.api.service.port | default 8000 }}
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /health
port: {{ .Values.api.service.port | default 8000 }}
initialDelaySeconds: 10
periodSeconds: 5
---
apiVersion: v1
kind: Service
metadata:
name: {{ .Release.Name }}-service
spec:
selector:
app: opus-orchestrator
ports:
- protocol: TCP
port: {{ .Values.api.service.port | default 8000 }}
targetPort: {{ .Values.api.service.port | default 8000 }}
type: {{ .Values.api.service.type | default "ClusterIP" }}
@@ -0,0 +1,22 @@
{{- if .Values.ingress.enabled -}}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ .Release.Name }}-ingress
annotations:
kubernetes.io/ingress.class: {{ .Values.ingress.className | default "nginx" }}
spec:
rules:
{{- range .Values.ingress.hosts }}
- host: {{ .host | quote }}
http:
paths:
- path: {{ .path | default "/" }}
pathType: {{ .pathType | default "Prefix" }}
backend:
service:
name: {{ $.Release.Name }}-service
port:
number: {{ $.Values.api.service.port | default 8000 }}
{{- end }}
{{- end }}
@@ -0,0 +1,61 @@
# Opus Orchestrator API
# k3s Helm Chart
## Install
```bash
# Add helm repo
helm repo add opus-orchestrator https://mrhavens.github.io/opus-orchestrator
# Install
helm install opus opus-orchestrator/opus-orchestrator \
--set api.minimaxApiKey=your_key \
--set api.githubToken=your_token
```
## Values
```yaml
api:
replicaCount: 1
image:
repository: ghcr.io/mrhavens/opus-orchestrator
tag: latest
service:
type: ClusterIP
port: 8000
env:
MINIMAX_API_KEY: ""
GITHUB_TOKEN: ""
LOG_LEVEL: "INFO"
resources:
limits:
cpu: 2000m
memory: 2Gi
requests:
cpu: 500m
memory: 512Mi
ingress:
enabled: true
className: nginx
hosts:
- host: opus.internal
paths:
- path: /
pathType: Prefix
```
## Deploy
```bash
# Create namespace
kubectl create namespace opus
# Deploy
kubectl apply -f values.yaml -n opus
```
+6
View File
@@ -0,0 +1,6 @@
apiVersion: v2
name: texlive-api
description: TeX Live API for LaTeX compilation
type: application
version: 0.1.0
appVersion: "latest"
@@ -0,0 +1,36 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}
labels:
app: texlive-api
spec:
replicas: {{ .Values.replicas | default 1 }}
selector:
matchLabels:
app: texlive-api
template:
metadata:
labels:
app: texlive-api
spec:
containers:
- name: texlive
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default "latest" }}"
ports:
- containerPort: {{ .Values.service.port | default 8080 }}
resources:
{{- toYaml .Values.resources | nindent 10 }}
---
apiVersion: v1
kind: Service
metadata:
name: {{ .Release.Name }}-service
spec:
selector:
app: texlive-api
ports:
- protocol: TCP
port: {{ .Values.service.port | default 8080 }}
targetPort: {{ .Values.service.port | default 8080 }}
type: {{ .Values.service.type | default "ClusterIP" }}
+28
View File
@@ -0,0 +1,28 @@
# TeX Live API
# k3s Helm Chart
## Install
```bash
helm install texlive deployments/k3s/texlive-api/
```
## Values
```yaml
image:
repository: alex11br/texlive-api
tag: latest
service:
type: ClusterIP
port: 8080
resources:
limits:
cpu: 4000m
memory: 8Gi
requests:
cpu: 2000m
memory: 4Gi
```