Files
Minikura/packages/k8s-operator/src/crds/rbac.ts
T

155 lines
3.7 KiB
TypeScript
Raw Normal View History

2026-02-17 18:12:02 +07:00
import { API_GROUP, NAMESPACE } from "../config/constants";
2025-05-12 12:34:09 +07:00
export const minikuraNamespace = {
2026-01-16 12:32:36 +07:00
apiVersion: "v1",
kind: "Namespace",
2025-05-12 12:34:09 +07:00
metadata: {
name: NAMESPACE,
},
};
export const minikuraServiceAccount = {
2026-01-16 12:32:36 +07:00
apiVersion: "v1",
kind: "ServiceAccount",
2025-05-12 12:34:09 +07:00
metadata: {
2026-01-16 12:32:36 +07:00
name: "minikura-operator",
2025-05-12 12:34:09 +07:00
namespace: NAMESPACE,
},
};
export const minikuraClusterRole = {
2026-01-16 12:32:36 +07:00
apiVersion: "rbac.authorization.k8s.io/v1",
kind: "ClusterRole",
2025-05-12 12:34:09 +07:00
metadata: {
2026-01-16 12:32:36 +07:00
name: "minikura-operator-role",
2025-05-12 12:34:09 +07:00
},
rules: [
{
2026-01-16 12:32:36 +07:00
apiGroups: [""],
resources: ["configmaps", "services", "secrets"],
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"],
2025-05-12 12:34:09 +07:00
},
{
2026-01-16 12:32:36 +07:00
apiGroups: ["apps"],
resources: ["deployments", "statefulsets"],
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"],
2025-05-12 12:34:09 +07:00
},
{
2026-01-16 12:32:36 +07:00
apiGroups: ["networking.k8s.io"],
resources: ["ingresses"],
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"],
2025-05-12 12:34:09 +07:00
},
{
2026-01-16 12:32:36 +07:00
apiGroups: ["apiextensions.k8s.io"],
resources: ["customresourcedefinitions"],
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"],
2025-05-12 12:34:09 +07:00
},
{
2026-02-17 18:12:02 +07:00
apiGroups: [API_GROUP],
2026-01-16 12:32:36 +07:00
resources: ["minecraftservers", "velocityproxies"],
verbs: ["get", "list", "watch", "create", "update", "patch", "delete"],
2025-05-12 12:34:09 +07:00
},
{
2026-02-17 18:12:02 +07:00
apiGroups: [API_GROUP],
2026-01-16 12:32:36 +07:00
resources: ["minecraftservers/status", "velocityproxies/status"],
verbs: ["get", "update", "patch"],
2025-05-12 12:34:09 +07:00
},
],
};
export const minikuraClusterRoleBinding = {
2026-01-16 12:32:36 +07:00
apiVersion: "rbac.authorization.k8s.io/v1",
kind: "ClusterRoleBinding",
2025-05-12 12:34:09 +07:00
metadata: {
2026-01-16 12:32:36 +07:00
name: "minikura-operator-role-binding",
2025-05-12 12:34:09 +07:00
},
subjects: [
{
2026-01-16 12:32:36 +07:00
kind: "ServiceAccount",
name: "minikura-operator",
2025-05-12 12:34:09 +07:00
namespace: NAMESPACE,
},
],
roleRef: {
2026-01-16 12:32:36 +07:00
kind: "ClusterRole",
name: "minikura-operator-role",
apiGroup: "rbac.authorization.k8s.io",
2025-05-12 12:34:09 +07:00
},
};
export const minikuraOperatorDeployment = {
2026-01-16 12:32:36 +07:00
apiVersion: "apps/v1",
kind: "Deployment",
2025-05-12 12:34:09 +07:00
metadata: {
2026-01-16 12:32:36 +07:00
name: "minikura-operator",
2025-05-12 12:34:09 +07:00
namespace: NAMESPACE,
},
spec: {
replicas: 1,
selector: {
matchLabels: {
2026-01-16 12:32:36 +07:00
app: "minikura-operator",
2025-05-12 12:34:09 +07:00
},
},
template: {
metadata: {
labels: {
2026-01-16 12:32:36 +07:00
app: "minikura-operator",
2025-05-12 12:34:09 +07:00
},
},
spec: {
2026-01-16 12:32:36 +07:00
serviceAccountName: "minikura-operator",
2025-05-12 12:34:09 +07:00
containers: [
{
2026-01-16 12:32:36 +07:00
name: "operator",
image: "${REGISTRY_URL}/minikura-operator:latest",
2025-05-12 12:34:09 +07:00
env: [
{
2026-01-16 12:32:36 +07:00
name: "DATABASE_URL",
2025-05-12 12:34:09 +07:00
valueFrom: {
secretKeyRef: {
2026-01-16 12:32:36 +07:00
name: "minikura-operator-secrets",
key: "DATABASE_URL",
2025-05-12 12:34:09 +07:00
},
},
},
{
2026-01-16 12:32:36 +07:00
name: "KUBERNETES_NAMESPACE",
2025-05-12 12:34:09 +07:00
value: NAMESPACE,
},
{
2026-01-16 12:32:36 +07:00
name: "USE_CRDS",
value: "true",
2025-05-12 12:34:09 +07:00
},
],
resources: {
requests: {
2026-01-16 12:32:36 +07:00
memory: "256Mi",
cpu: "200m",
2025-05-12 12:34:09 +07:00
},
limits: {
2026-01-16 12:32:36 +07:00
memory: "512Mi",
cpu: "500m",
2025-05-12 12:34:09 +07:00
},
},
livenessProbe: {
exec: {
2026-01-16 12:32:36 +07:00
command: ["bun", "-e", "console.log('Health check')"],
2025-05-12 12:34:09 +07:00
},
initialDelaySeconds: 30,
periodSeconds: 30,
},
readinessProbe: {
exec: {
2026-01-16 12:32:36 +07:00
command: ["bun", "-e", "console.log('Ready check')"],
2025-05-12 12:34:09 +07:00
},
initialDelaySeconds: 5,
periodSeconds: 10,
},
},
],
},
},
},
2026-01-16 12:32:36 +07:00
};