@eve-horizon/cli 0.2.27 → 0.2.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/local-k8s/base/agent-runtime-deployment.yaml +82 -0
- package/assets/local-k8s/base/agent-runtime-pvc.yaml +13 -0
- package/assets/local-k8s/base/agent-runtime-service.yaml +15 -0
- package/assets/local-k8s/base/api-deployment.yaml +63 -0
- package/assets/local-k8s/base/api-ingress.yaml +19 -0
- package/assets/local-k8s/base/api-rbac.yaml +43 -0
- package/assets/local-k8s/base/api-service.yaml +14 -0
- package/assets/local-k8s/base/app-secret.yaml +27 -0
- package/assets/local-k8s/base/auth-bootstrap-configmap.yaml +73 -0
- package/assets/local-k8s/base/auth-bootstrap-job.yaml +48 -0
- package/assets/local-k8s/base/buildkitd-deployment.yaml +38 -0
- package/assets/local-k8s/base/buildkitd-network-policy.yaml +19 -0
- package/assets/local-k8s/base/buildkitd-pvc.yaml +11 -0
- package/assets/local-k8s/base/buildkitd-service.yaml +14 -0
- package/assets/local-k8s/base/db-migrate-job.yaml +23 -0
- package/assets/local-k8s/base/gateway-deployment.yaml +51 -0
- package/assets/local-k8s/base/gateway-ingress.yaml +26 -0
- package/assets/local-k8s/base/gateway-service.yaml +14 -0
- package/assets/local-k8s/base/kustomization.yaml +42 -0
- package/assets/local-k8s/base/mailpit-deployment.yaml +44 -0
- package/assets/local-k8s/base/mailpit-ingress.yaml +19 -0
- package/assets/local-k8s/base/mailpit-service.yaml +17 -0
- package/assets/local-k8s/base/namespace.yaml +6 -0
- package/assets/local-k8s/base/orchestrator-deployment.yaml +81 -0
- package/assets/local-k8s/base/orchestrator-service.yaml +14 -0
- package/assets/local-k8s/base/postgres-secret.yaml +10 -0
- package/assets/local-k8s/base/postgres-statefulset.yaml +53 -0
- package/assets/local-k8s/base/registry-configmap.yaml +34 -0
- package/assets/local-k8s/base/registry-deployment.yaml +53 -0
- package/assets/local-k8s/base/registry-pvc.yaml +11 -0
- package/assets/local-k8s/base/registry-service.yaml +15 -0
- package/assets/local-k8s/base/sso-deployment.yaml +66 -0
- package/assets/local-k8s/base/sso-ingress.yaml +19 -0
- package/assets/local-k8s/base/sso-service.yaml +14 -0
- package/assets/local-k8s/base/supabase-auth-cors-middleware.yaml +22 -0
- package/assets/local-k8s/base/supabase-auth-deployment.yaml +100 -0
- package/assets/local-k8s/base/supabase-auth-ingress.yaml +21 -0
- package/assets/local-k8s/base/supabase-auth-service.yaml +14 -0
- package/assets/local-k8s/base/worker-deployment.yaml +69 -0
- package/assets/local-k8s/base/worker-rbac.yaml +124 -0
- package/assets/local-k8s/base/worker-service.yaml +14 -0
- package/assets/local-k8s/overlays/local/agent-runtime-org-id.patch.yaml +22 -0
- package/assets/local-k8s/overlays/local/agent-runtime-pvc.patch.yaml +8 -0
- package/assets/local-k8s/overlays/local/app-secret-ollama.patch.yaml +7 -0
- package/assets/local-k8s/overlays/local/kustomization.yaml +10 -0
- package/assets/local-k8s/overlays/local/managed-db.patch.yaml +21 -0
- package/dist/index.js +1417 -141
- package/package.json +2 -1
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
apiVersion: apps/v1
|
|
2
|
+
kind: StatefulSet
|
|
3
|
+
metadata:
|
|
4
|
+
name: eve-agent-runtime
|
|
5
|
+
namespace: eve
|
|
6
|
+
labels:
|
|
7
|
+
app.kubernetes.io/name: eve-agent-runtime
|
|
8
|
+
spec:
|
|
9
|
+
serviceName: eve-agent-runtime
|
|
10
|
+
replicas: 3
|
|
11
|
+
selector:
|
|
12
|
+
matchLabels:
|
|
13
|
+
app.kubernetes.io/name: eve-agent-runtime
|
|
14
|
+
template:
|
|
15
|
+
metadata:
|
|
16
|
+
labels:
|
|
17
|
+
app.kubernetes.io/name: eve-agent-runtime
|
|
18
|
+
spec:
|
|
19
|
+
securityContext:
|
|
20
|
+
seccompProfile:
|
|
21
|
+
type: RuntimeDefault
|
|
22
|
+
containers:
|
|
23
|
+
- name: agent-runtime
|
|
24
|
+
securityContext:
|
|
25
|
+
allowPrivilegeEscalation: false
|
|
26
|
+
image: eve-horizon/agent-runtime:local
|
|
27
|
+
imagePullPolicy: IfNotPresent
|
|
28
|
+
envFrom:
|
|
29
|
+
- secretRef:
|
|
30
|
+
name: eve-app
|
|
31
|
+
env:
|
|
32
|
+
- name: DATABASE_URL
|
|
33
|
+
value: postgres://eve:eve@postgres.eve.svc.cluster.local:5432/eve
|
|
34
|
+
- name: EVE_API_URL
|
|
35
|
+
value: http://eve-api:4701
|
|
36
|
+
- name: AGENT_RUNTIME_PORT
|
|
37
|
+
value: "4812"
|
|
38
|
+
- name: EVE_ORG_ID
|
|
39
|
+
value: org_default
|
|
40
|
+
- name: AGENT_RUNTIME_POD_NAME
|
|
41
|
+
valueFrom:
|
|
42
|
+
fieldRef:
|
|
43
|
+
fieldPath: metadata.name
|
|
44
|
+
- name: AGENT_RUNTIME_CAPACITY
|
|
45
|
+
value: "8"
|
|
46
|
+
- name: AGENT_RUNTIME_STATUS
|
|
47
|
+
value: healthy
|
|
48
|
+
- name: EVE_AGENT_RUNTIME_EXECUTION_MODE
|
|
49
|
+
value: inline
|
|
50
|
+
- name: EVE_AGENT_CLI_PATH
|
|
51
|
+
value: /app/packages/eve-agent-cli/bin/eve-agent-cli.js
|
|
52
|
+
- name: EVE_ORG_FS_ROOT
|
|
53
|
+
value: /org
|
|
54
|
+
- name: EVE_K8S_NAMESPACE
|
|
55
|
+
value: eve
|
|
56
|
+
- name: EVE_RUNTIME
|
|
57
|
+
value: k8s
|
|
58
|
+
- name: WORKSPACE_ROOT
|
|
59
|
+
value: /opt/eve/workspaces
|
|
60
|
+
ports:
|
|
61
|
+
- name: http
|
|
62
|
+
containerPort: 4812
|
|
63
|
+
volumeMounts:
|
|
64
|
+
- name: org-fs
|
|
65
|
+
mountPath: /org
|
|
66
|
+
readinessProbe:
|
|
67
|
+
httpGet:
|
|
68
|
+
path: /health
|
|
69
|
+
port: http
|
|
70
|
+
initialDelaySeconds: 5
|
|
71
|
+
periodSeconds: 5
|
|
72
|
+
failureThreshold: 10
|
|
73
|
+
livenessProbe:
|
|
74
|
+
httpGet:
|
|
75
|
+
path: /health
|
|
76
|
+
port: http
|
|
77
|
+
initialDelaySeconds: 20
|
|
78
|
+
periodSeconds: 10
|
|
79
|
+
volumes:
|
|
80
|
+
- name: org-fs
|
|
81
|
+
persistentVolumeClaim:
|
|
82
|
+
claimName: eve-org-fs-org-default
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
apiVersion: v1
|
|
2
|
+
kind: Service
|
|
3
|
+
metadata:
|
|
4
|
+
name: eve-agent-runtime
|
|
5
|
+
namespace: eve
|
|
6
|
+
labels:
|
|
7
|
+
app.kubernetes.io/name: eve-agent-runtime
|
|
8
|
+
spec:
|
|
9
|
+
clusterIP: None
|
|
10
|
+
selector:
|
|
11
|
+
app.kubernetes.io/name: eve-agent-runtime
|
|
12
|
+
ports:
|
|
13
|
+
- name: http
|
|
14
|
+
port: 4812
|
|
15
|
+
targetPort: http
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
apiVersion: apps/v1
|
|
2
|
+
kind: Deployment
|
|
3
|
+
metadata:
|
|
4
|
+
name: eve-api
|
|
5
|
+
namespace: eve
|
|
6
|
+
labels:
|
|
7
|
+
app.kubernetes.io/name: eve-api
|
|
8
|
+
spec:
|
|
9
|
+
replicas: 1
|
|
10
|
+
selector:
|
|
11
|
+
matchLabels:
|
|
12
|
+
app.kubernetes.io/name: eve-api
|
|
13
|
+
template:
|
|
14
|
+
metadata:
|
|
15
|
+
labels:
|
|
16
|
+
app.kubernetes.io/name: eve-api
|
|
17
|
+
spec:
|
|
18
|
+
serviceAccountName: eve-api
|
|
19
|
+
securityContext:
|
|
20
|
+
seccompProfile:
|
|
21
|
+
type: RuntimeDefault
|
|
22
|
+
containers:
|
|
23
|
+
- name: api
|
|
24
|
+
securityContext:
|
|
25
|
+
allowPrivilegeEscalation: false
|
|
26
|
+
image: eve-horizon/api:local
|
|
27
|
+
imagePullPolicy: IfNotPresent
|
|
28
|
+
envFrom:
|
|
29
|
+
# Mount all secrets from eve-app (auth tokens, API keys, etc.)
|
|
30
|
+
- secretRef:
|
|
31
|
+
name: eve-app
|
|
32
|
+
env:
|
|
33
|
+
- name: DATABASE_URL
|
|
34
|
+
value: postgres://eve:eve@postgres.eve.svc.cluster.local:5432/eve
|
|
35
|
+
- name: API_PORT
|
|
36
|
+
value: "4701"
|
|
37
|
+
- name: WORKER_URL
|
|
38
|
+
value: http://eve-worker.eve.svc.cluster.local:4749
|
|
39
|
+
# --- Web Auth (Supabase) ---
|
|
40
|
+
- name: SUPABASE_AUTH_URL
|
|
41
|
+
value: "http://supabase-auth.eve.svc.cluster.local:9999"
|
|
42
|
+
- name: SUPABASE_AUTH_EXTERNAL_URL
|
|
43
|
+
value: "http://auth.eve.lvh.me"
|
|
44
|
+
- name: EVE_SSO_URL
|
|
45
|
+
value: "http://sso.eve.lvh.me"
|
|
46
|
+
- name: EVE_DEFAULT_DOMAIN
|
|
47
|
+
value: lvh.me
|
|
48
|
+
ports:
|
|
49
|
+
- name: http
|
|
50
|
+
containerPort: 4701
|
|
51
|
+
readinessProbe:
|
|
52
|
+
httpGet:
|
|
53
|
+
path: /health
|
|
54
|
+
port: http
|
|
55
|
+
initialDelaySeconds: 5
|
|
56
|
+
periodSeconds: 5
|
|
57
|
+
failureThreshold: 10
|
|
58
|
+
livenessProbe:
|
|
59
|
+
httpGet:
|
|
60
|
+
path: /health
|
|
61
|
+
port: http
|
|
62
|
+
initialDelaySeconds: 20
|
|
63
|
+
periodSeconds: 10
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
apiVersion: networking.k8s.io/v1
|
|
2
|
+
kind: Ingress
|
|
3
|
+
metadata:
|
|
4
|
+
name: eve-api
|
|
5
|
+
namespace: eve
|
|
6
|
+
labels:
|
|
7
|
+
app.kubernetes.io/name: eve-api
|
|
8
|
+
spec:
|
|
9
|
+
rules:
|
|
10
|
+
- host: api.eve.lvh.me
|
|
11
|
+
http:
|
|
12
|
+
paths:
|
|
13
|
+
- path: /
|
|
14
|
+
pathType: Prefix
|
|
15
|
+
backend:
|
|
16
|
+
service:
|
|
17
|
+
name: eve-api
|
|
18
|
+
port:
|
|
19
|
+
number: 4701
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
apiVersion: v1
|
|
2
|
+
kind: ServiceAccount
|
|
3
|
+
metadata:
|
|
4
|
+
name: eve-api
|
|
5
|
+
namespace: eve
|
|
6
|
+
---
|
|
7
|
+
apiVersion: rbac.authorization.k8s.io/v1
|
|
8
|
+
kind: ClusterRole
|
|
9
|
+
metadata:
|
|
10
|
+
name: eve-api-read
|
|
11
|
+
rules:
|
|
12
|
+
- apiGroups: [""]
|
|
13
|
+
resources:
|
|
14
|
+
- pods
|
|
15
|
+
- pods/status
|
|
16
|
+
- pods/log
|
|
17
|
+
- events
|
|
18
|
+
verbs:
|
|
19
|
+
- get
|
|
20
|
+
- list
|
|
21
|
+
- watch
|
|
22
|
+
- apiGroups: ["apps"]
|
|
23
|
+
resources:
|
|
24
|
+
- deployments
|
|
25
|
+
- replicasets
|
|
26
|
+
- statefulsets
|
|
27
|
+
verbs:
|
|
28
|
+
- get
|
|
29
|
+
- list
|
|
30
|
+
- watch
|
|
31
|
+
---
|
|
32
|
+
apiVersion: rbac.authorization.k8s.io/v1
|
|
33
|
+
kind: ClusterRoleBinding
|
|
34
|
+
metadata:
|
|
35
|
+
name: eve-api-read
|
|
36
|
+
roleRef:
|
|
37
|
+
apiGroup: rbac.authorization.k8s.io
|
|
38
|
+
kind: ClusterRole
|
|
39
|
+
name: eve-api-read
|
|
40
|
+
subjects:
|
|
41
|
+
- kind: ServiceAccount
|
|
42
|
+
name: eve-api
|
|
43
|
+
namespace: eve
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
apiVersion: v1
|
|
2
|
+
kind: Secret
|
|
3
|
+
metadata:
|
|
4
|
+
name: eve-app
|
|
5
|
+
namespace: eve
|
|
6
|
+
type: Opaque
|
|
7
|
+
# Platform-only secrets — infrastructure keys required by Eve services.
|
|
8
|
+
#
|
|
9
|
+
# Everything else (LLM API keys, GitHub tokens, GHCR credentials, etc.)
|
|
10
|
+
# flows through Eve org/project-level secrets, resolved at runtime via
|
|
11
|
+
# the secrets API. Never add provider credentials here.
|
|
12
|
+
stringData:
|
|
13
|
+
EVE_INTERNAL_API_KEY: ""
|
|
14
|
+
EVE_SECRETS_MASTER_KEY: ""
|
|
15
|
+
EVE_BOOTSTRAP_TOKEN: ""
|
|
16
|
+
EVE_GITHUB_WEBHOOK_SECRET: ""
|
|
17
|
+
EVE_SLACK_SIGNING_SECRET: ""
|
|
18
|
+
# --- Supabase Auth (GoTrue) ---
|
|
19
|
+
SUPABASE_JWT_SECRET: ""
|
|
20
|
+
EVE_AUTH_ADMIN_PASSWORD: ""
|
|
21
|
+
SUPABASE_AUTH_DATABASE_URL: ""
|
|
22
|
+
SUPABASE_AUTH_SERVICE_KEY: ""
|
|
23
|
+
SUPABASE_ANON_KEY: ""
|
|
24
|
+
# --- Protocol bridge runtime (optional) ---
|
|
25
|
+
# Anthropic-wire -> OpenAI bridge endpoint and gateway auth key.
|
|
26
|
+
EVE_BRIDGE_LITELLM_ANTHROPIC_OPENAI_URL: ""
|
|
27
|
+
EVE_BRIDGE_LITELLM_ANTHROPIC_OPENAI_KEY: ""
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
apiVersion: v1
|
|
2
|
+
kind: ConfigMap
|
|
3
|
+
metadata:
|
|
4
|
+
name: auth-bootstrap-scripts
|
|
5
|
+
namespace: eve
|
|
6
|
+
data:
|
|
7
|
+
bootstrap-auth-role.sh: |
|
|
8
|
+
#!/bin/sh
|
|
9
|
+
set -e
|
|
10
|
+
echo "Bootstrapping auth DB role..."
|
|
11
|
+
|
|
12
|
+
# Create or update the eve_auth_admin role with the password from env.
|
|
13
|
+
# GoTrue auto-creates and manages the 'auth' schema on startup.
|
|
14
|
+
# This role gets CREATE on the database (needed for schema creation)
|
|
15
|
+
# but is NOT granted write access to public tables — clean blast radius.
|
|
16
|
+
psql -v ON_ERROR_STOP=1 <<EOSQL
|
|
17
|
+
DO \$\$
|
|
18
|
+
BEGIN
|
|
19
|
+
IF NOT EXISTS (SELECT FROM pg_catalog.pg_roles WHERE rolname = 'eve_auth_admin') THEN
|
|
20
|
+
EXECUTE format('CREATE ROLE eve_auth_admin LOGIN PASSWORD %L', '${AUTH_ROLE_PASSWORD}');
|
|
21
|
+
ELSE
|
|
22
|
+
EXECUTE format('ALTER ROLE eve_auth_admin PASSWORD %L', '${AUTH_ROLE_PASSWORD}');
|
|
23
|
+
END IF;
|
|
24
|
+
END \$\$;
|
|
25
|
+
|
|
26
|
+
GRANT CREATE ON DATABASE eve TO eve_auth_admin;
|
|
27
|
+
-- GoTrue creates a schema_migrations table in public before creating the auth schema.
|
|
28
|
+
-- It also needs USAGE for cross-schema references.
|
|
29
|
+
GRANT CREATE, USAGE ON SCHEMA public TO eve_auth_admin;
|
|
30
|
+
|
|
31
|
+
-- GoTrue migrations use uuid = text comparisons that need an implicit cast.
|
|
32
|
+
-- Supabase's custom Postgres has this built in; standard Postgres does not.
|
|
33
|
+
CREATE OR REPLACE FUNCTION public.uuid_eq_text(uuid, text) RETURNS boolean AS \$fn\$
|
|
34
|
+
SELECT \$1::text = \$2;
|
|
35
|
+
\$fn\$ LANGUAGE sql IMMUTABLE;
|
|
36
|
+
DO \$cast\$
|
|
37
|
+
BEGIN
|
|
38
|
+
IF NOT EXISTS (
|
|
39
|
+
SELECT 1 FROM pg_cast
|
|
40
|
+
WHERE castsource = 'uuid'::regtype AND casttarget = 'text'::regtype AND castcontext = 'i'
|
|
41
|
+
) THEN
|
|
42
|
+
-- Cannot create implicit casts via SQL, but we can create the function
|
|
43
|
+
-- GoTrue actually needs the = operator between uuid and text
|
|
44
|
+
NULL;
|
|
45
|
+
END IF;
|
|
46
|
+
END \$cast\$;
|
|
47
|
+
-- Create a cross-type operator for uuid = text comparisons
|
|
48
|
+
DROP OPERATOR IF EXISTS = (uuid, text);
|
|
49
|
+
CREATE OPERATOR = (
|
|
50
|
+
LEFTARG = uuid,
|
|
51
|
+
RIGHTARG = text,
|
|
52
|
+
FUNCTION = public.uuid_eq_text,
|
|
53
|
+
COMMUTATOR = =
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
-- Pre-create the auth schema owned by eve_auth_admin.
|
|
57
|
+
-- GoTrue's migrations expect auth.* tables but don't always CREATE SCHEMA first.
|
|
58
|
+
CREATE SCHEMA IF NOT EXISTS auth AUTHORIZATION eve_auth_admin;
|
|
59
|
+
GRANT ALL ON SCHEMA auth TO eve_auth_admin;
|
|
60
|
+
|
|
61
|
+
-- GoTrue migrations reference a 'postgres' role for RLS grants.
|
|
62
|
+
-- Our DB superuser is 'eve', not 'postgres'. Create a postgres role alias.
|
|
63
|
+
DO \$pg\$
|
|
64
|
+
BEGIN
|
|
65
|
+
IF NOT EXISTS (SELECT FROM pg_catalog.pg_roles WHERE rolname = 'postgres') THEN
|
|
66
|
+
CREATE ROLE postgres NOLOGIN;
|
|
67
|
+
END IF;
|
|
68
|
+
END \$pg\$;
|
|
69
|
+
GRANT eve TO postgres;
|
|
70
|
+
GRANT USAGE ON SCHEMA auth TO postgres;
|
|
71
|
+
EOSQL
|
|
72
|
+
|
|
73
|
+
echo "Auth DB role bootstrapped successfully."
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
apiVersion: batch/v1
|
|
2
|
+
kind: Job
|
|
3
|
+
metadata:
|
|
4
|
+
name: auth-db-bootstrap
|
|
5
|
+
namespace: eve
|
|
6
|
+
spec:
|
|
7
|
+
backoffLimit: 3
|
|
8
|
+
ttlSecondsAfterFinished: 300
|
|
9
|
+
template:
|
|
10
|
+
metadata:
|
|
11
|
+
labels:
|
|
12
|
+
app.kubernetes.io/name: auth-db-bootstrap
|
|
13
|
+
spec:
|
|
14
|
+
containers:
|
|
15
|
+
- name: bootstrap
|
|
16
|
+
image: postgres:16-alpine
|
|
17
|
+
command: ["sh", "/scripts/bootstrap-auth-role.sh"]
|
|
18
|
+
env:
|
|
19
|
+
- name: PGHOST
|
|
20
|
+
value: "postgres.eve.svc.cluster.local"
|
|
21
|
+
- name: PGPORT
|
|
22
|
+
value: "5432"
|
|
23
|
+
- name: PGDATABASE
|
|
24
|
+
value: "eve"
|
|
25
|
+
- name: PGUSER
|
|
26
|
+
valueFrom:
|
|
27
|
+
secretKeyRef:
|
|
28
|
+
name: eve-postgres
|
|
29
|
+
key: POSTGRES_USER
|
|
30
|
+
- name: PGPASSWORD
|
|
31
|
+
valueFrom:
|
|
32
|
+
secretKeyRef:
|
|
33
|
+
name: eve-postgres
|
|
34
|
+
key: POSTGRES_PASSWORD
|
|
35
|
+
- name: AUTH_ROLE_PASSWORD
|
|
36
|
+
valueFrom:
|
|
37
|
+
secretKeyRef:
|
|
38
|
+
name: eve-app
|
|
39
|
+
key: EVE_AUTH_ADMIN_PASSWORD
|
|
40
|
+
volumeMounts:
|
|
41
|
+
- name: scripts
|
|
42
|
+
mountPath: /scripts
|
|
43
|
+
volumes:
|
|
44
|
+
- name: scripts
|
|
45
|
+
configMap:
|
|
46
|
+
name: auth-bootstrap-scripts
|
|
47
|
+
defaultMode: 0755
|
|
48
|
+
restartPolicy: OnFailure
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
apiVersion: apps/v1
|
|
2
|
+
kind: Deployment
|
|
3
|
+
metadata:
|
|
4
|
+
name: buildkitd
|
|
5
|
+
namespace: eve
|
|
6
|
+
labels:
|
|
7
|
+
app.kubernetes.io/name: buildkitd
|
|
8
|
+
spec:
|
|
9
|
+
replicas: 1
|
|
10
|
+
selector:
|
|
11
|
+
matchLabels:
|
|
12
|
+
app.kubernetes.io/name: buildkitd
|
|
13
|
+
template:
|
|
14
|
+
metadata:
|
|
15
|
+
labels:
|
|
16
|
+
app.kubernetes.io/name: buildkitd
|
|
17
|
+
spec:
|
|
18
|
+
containers:
|
|
19
|
+
- name: buildkitd
|
|
20
|
+
image: moby/buildkit:v0.12.5
|
|
21
|
+
args:
|
|
22
|
+
- --addr
|
|
23
|
+
- tcp://0.0.0.0:1234
|
|
24
|
+
- --oci-worker-gc
|
|
25
|
+
- --oci-worker-gc-keepstorage
|
|
26
|
+
- "12000"
|
|
27
|
+
ports:
|
|
28
|
+
- name: grpc
|
|
29
|
+
containerPort: 1234
|
|
30
|
+
securityContext:
|
|
31
|
+
privileged: true
|
|
32
|
+
volumeMounts:
|
|
33
|
+
- name: buildkitd-cache
|
|
34
|
+
mountPath: /var/lib/buildkit
|
|
35
|
+
volumes:
|
|
36
|
+
- name: buildkitd-cache
|
|
37
|
+
persistentVolumeClaim:
|
|
38
|
+
claimName: buildkitd-cache
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
apiVersion: networking.k8s.io/v1
|
|
2
|
+
kind: NetworkPolicy
|
|
3
|
+
metadata:
|
|
4
|
+
name: buildkitd-restrict-ingress
|
|
5
|
+
namespace: eve
|
|
6
|
+
spec:
|
|
7
|
+
podSelector:
|
|
8
|
+
matchLabels:
|
|
9
|
+
app.kubernetes.io/name: buildkitd
|
|
10
|
+
policyTypes:
|
|
11
|
+
- Ingress
|
|
12
|
+
ingress:
|
|
13
|
+
- from:
|
|
14
|
+
- podSelector:
|
|
15
|
+
matchLabels:
|
|
16
|
+
app.kubernetes.io/name: eve-worker
|
|
17
|
+
ports:
|
|
18
|
+
- protocol: TCP
|
|
19
|
+
port: 1234
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
apiVersion: batch/v1
|
|
2
|
+
kind: Job
|
|
3
|
+
metadata:
|
|
4
|
+
name: eve-db-migrate
|
|
5
|
+
namespace: eve
|
|
6
|
+
spec:
|
|
7
|
+
ttlSecondsAfterFinished: 300
|
|
8
|
+
template:
|
|
9
|
+
metadata:
|
|
10
|
+
labels:
|
|
11
|
+
app.kubernetes.io/name: eve-db-migrate
|
|
12
|
+
spec:
|
|
13
|
+
restartPolicy: OnFailure
|
|
14
|
+
containers:
|
|
15
|
+
- name: migrate
|
|
16
|
+
image: eve-horizon/worker:local
|
|
17
|
+
imagePullPolicy: IfNotPresent
|
|
18
|
+
env:
|
|
19
|
+
- name: DATABASE_URL
|
|
20
|
+
value: postgres://eve:eve@postgres.eve.svc.cluster.local:5432/eve
|
|
21
|
+
command:
|
|
22
|
+
- node
|
|
23
|
+
- /app/packages/db/dist/migrate.js
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
apiVersion: apps/v1
|
|
2
|
+
kind: Deployment
|
|
3
|
+
metadata:
|
|
4
|
+
name: eve-gateway
|
|
5
|
+
namespace: eve
|
|
6
|
+
labels:
|
|
7
|
+
app.kubernetes.io/name: eve-gateway
|
|
8
|
+
spec:
|
|
9
|
+
replicas: 1
|
|
10
|
+
selector:
|
|
11
|
+
matchLabels:
|
|
12
|
+
app.kubernetes.io/name: eve-gateway
|
|
13
|
+
template:
|
|
14
|
+
metadata:
|
|
15
|
+
labels:
|
|
16
|
+
app.kubernetes.io/name: eve-gateway
|
|
17
|
+
spec:
|
|
18
|
+
securityContext:
|
|
19
|
+
seccompProfile:
|
|
20
|
+
type: RuntimeDefault
|
|
21
|
+
containers:
|
|
22
|
+
- name: gateway
|
|
23
|
+
securityContext:
|
|
24
|
+
allowPrivilegeEscalation: false
|
|
25
|
+
image: eve-horizon/gateway:local
|
|
26
|
+
imagePullPolicy: IfNotPresent
|
|
27
|
+
ports:
|
|
28
|
+
- name: http
|
|
29
|
+
containerPort: 4820
|
|
30
|
+
envFrom:
|
|
31
|
+
- secretRef:
|
|
32
|
+
name: eve-app
|
|
33
|
+
env:
|
|
34
|
+
- name: GATEWAY_PORT
|
|
35
|
+
value: "4820"
|
|
36
|
+
- name: EVE_API_URL
|
|
37
|
+
value: http://eve-api:4701
|
|
38
|
+
readinessProbe:
|
|
39
|
+
httpGet:
|
|
40
|
+
path: /health
|
|
41
|
+
port: http
|
|
42
|
+
initialDelaySeconds: 5
|
|
43
|
+
periodSeconds: 5
|
|
44
|
+
timeoutSeconds: 2
|
|
45
|
+
livenessProbe:
|
|
46
|
+
httpGet:
|
|
47
|
+
path: /health
|
|
48
|
+
port: http
|
|
49
|
+
initialDelaySeconds: 20
|
|
50
|
+
periodSeconds: 10
|
|
51
|
+
timeoutSeconds: 2
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
apiVersion: networking.k8s.io/v1
|
|
2
|
+
kind: Ingress
|
|
3
|
+
metadata:
|
|
4
|
+
name: eve-gateway
|
|
5
|
+
namespace: eve
|
|
6
|
+
labels:
|
|
7
|
+
app.kubernetes.io/name: eve-gateway
|
|
8
|
+
spec:
|
|
9
|
+
rules:
|
|
10
|
+
- host: api.eve.lvh.me
|
|
11
|
+
http:
|
|
12
|
+
paths:
|
|
13
|
+
- path: /integrations/slack
|
|
14
|
+
pathType: Prefix
|
|
15
|
+
backend:
|
|
16
|
+
service:
|
|
17
|
+
name: eve-gateway
|
|
18
|
+
port:
|
|
19
|
+
number: 4820
|
|
20
|
+
- path: /gateway/providers
|
|
21
|
+
pathType: Prefix
|
|
22
|
+
backend:
|
|
23
|
+
service:
|
|
24
|
+
name: eve-gateway
|
|
25
|
+
port:
|
|
26
|
+
number: 4820
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
2
|
+
kind: Kustomization
|
|
3
|
+
resources:
|
|
4
|
+
- namespace.yaml
|
|
5
|
+
- api-rbac.yaml
|
|
6
|
+
- app-secret.yaml
|
|
7
|
+
- postgres-secret.yaml
|
|
8
|
+
- postgres-statefulset.yaml
|
|
9
|
+
- buildkitd-pvc.yaml
|
|
10
|
+
- buildkitd-deployment.yaml
|
|
11
|
+
- buildkitd-service.yaml
|
|
12
|
+
- buildkitd-network-policy.yaml
|
|
13
|
+
- api-deployment.yaml
|
|
14
|
+
- api-service.yaml
|
|
15
|
+
- api-ingress.yaml
|
|
16
|
+
- orchestrator-deployment.yaml
|
|
17
|
+
- orchestrator-service.yaml
|
|
18
|
+
- worker-rbac.yaml
|
|
19
|
+
- worker-deployment.yaml
|
|
20
|
+
- worker-service.yaml
|
|
21
|
+
- agent-runtime-pvc.yaml
|
|
22
|
+
- agent-runtime-deployment.yaml
|
|
23
|
+
- agent-runtime-service.yaml
|
|
24
|
+
- gateway-deployment.yaml
|
|
25
|
+
- gateway-service.yaml
|
|
26
|
+
- gateway-ingress.yaml
|
|
27
|
+
- registry-configmap.yaml
|
|
28
|
+
- registry-pvc.yaml
|
|
29
|
+
- registry-deployment.yaml
|
|
30
|
+
- registry-service.yaml
|
|
31
|
+
- mailpit-deployment.yaml
|
|
32
|
+
- mailpit-service.yaml
|
|
33
|
+
- mailpit-ingress.yaml
|
|
34
|
+
- supabase-auth-deployment.yaml
|
|
35
|
+
- supabase-auth-service.yaml
|
|
36
|
+
- supabase-auth-ingress.yaml
|
|
37
|
+
- supabase-auth-cors-middleware.yaml
|
|
38
|
+
- auth-bootstrap-configmap.yaml
|
|
39
|
+
- auth-bootstrap-job.yaml
|
|
40
|
+
- sso-deployment.yaml
|
|
41
|
+
- sso-service.yaml
|
|
42
|
+
- sso-ingress.yaml
|