@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.
Files changed (48) hide show
  1. package/assets/local-k8s/base/agent-runtime-deployment.yaml +82 -0
  2. package/assets/local-k8s/base/agent-runtime-pvc.yaml +13 -0
  3. package/assets/local-k8s/base/agent-runtime-service.yaml +15 -0
  4. package/assets/local-k8s/base/api-deployment.yaml +63 -0
  5. package/assets/local-k8s/base/api-ingress.yaml +19 -0
  6. package/assets/local-k8s/base/api-rbac.yaml +43 -0
  7. package/assets/local-k8s/base/api-service.yaml +14 -0
  8. package/assets/local-k8s/base/app-secret.yaml +27 -0
  9. package/assets/local-k8s/base/auth-bootstrap-configmap.yaml +73 -0
  10. package/assets/local-k8s/base/auth-bootstrap-job.yaml +48 -0
  11. package/assets/local-k8s/base/buildkitd-deployment.yaml +38 -0
  12. package/assets/local-k8s/base/buildkitd-network-policy.yaml +19 -0
  13. package/assets/local-k8s/base/buildkitd-pvc.yaml +11 -0
  14. package/assets/local-k8s/base/buildkitd-service.yaml +14 -0
  15. package/assets/local-k8s/base/db-migrate-job.yaml +23 -0
  16. package/assets/local-k8s/base/gateway-deployment.yaml +51 -0
  17. package/assets/local-k8s/base/gateway-ingress.yaml +26 -0
  18. package/assets/local-k8s/base/gateway-service.yaml +14 -0
  19. package/assets/local-k8s/base/kustomization.yaml +42 -0
  20. package/assets/local-k8s/base/mailpit-deployment.yaml +44 -0
  21. package/assets/local-k8s/base/mailpit-ingress.yaml +19 -0
  22. package/assets/local-k8s/base/mailpit-service.yaml +17 -0
  23. package/assets/local-k8s/base/namespace.yaml +6 -0
  24. package/assets/local-k8s/base/orchestrator-deployment.yaml +81 -0
  25. package/assets/local-k8s/base/orchestrator-service.yaml +14 -0
  26. package/assets/local-k8s/base/postgres-secret.yaml +10 -0
  27. package/assets/local-k8s/base/postgres-statefulset.yaml +53 -0
  28. package/assets/local-k8s/base/registry-configmap.yaml +34 -0
  29. package/assets/local-k8s/base/registry-deployment.yaml +53 -0
  30. package/assets/local-k8s/base/registry-pvc.yaml +11 -0
  31. package/assets/local-k8s/base/registry-service.yaml +15 -0
  32. package/assets/local-k8s/base/sso-deployment.yaml +66 -0
  33. package/assets/local-k8s/base/sso-ingress.yaml +19 -0
  34. package/assets/local-k8s/base/sso-service.yaml +14 -0
  35. package/assets/local-k8s/base/supabase-auth-cors-middleware.yaml +22 -0
  36. package/assets/local-k8s/base/supabase-auth-deployment.yaml +100 -0
  37. package/assets/local-k8s/base/supabase-auth-ingress.yaml +21 -0
  38. package/assets/local-k8s/base/supabase-auth-service.yaml +14 -0
  39. package/assets/local-k8s/base/worker-deployment.yaml +69 -0
  40. package/assets/local-k8s/base/worker-rbac.yaml +124 -0
  41. package/assets/local-k8s/base/worker-service.yaml +14 -0
  42. package/assets/local-k8s/overlays/local/agent-runtime-org-id.patch.yaml +22 -0
  43. package/assets/local-k8s/overlays/local/agent-runtime-pvc.patch.yaml +8 -0
  44. package/assets/local-k8s/overlays/local/app-secret-ollama.patch.yaml +7 -0
  45. package/assets/local-k8s/overlays/local/kustomization.yaml +10 -0
  46. package/assets/local-k8s/overlays/local/managed-db.patch.yaml +21 -0
  47. package/dist/index.js +1417 -141
  48. package/package.json +2 -1
@@ -0,0 +1,44 @@
1
+ apiVersion: apps/v1
2
+ kind: Deployment
3
+ metadata:
4
+ name: mailpit
5
+ namespace: eve
6
+ labels:
7
+ app.kubernetes.io/name: mailpit
8
+ spec:
9
+ replicas: 1
10
+ selector:
11
+ matchLabels:
12
+ app.kubernetes.io/name: mailpit
13
+ template:
14
+ metadata:
15
+ labels:
16
+ app.kubernetes.io/name: mailpit
17
+ spec:
18
+ containers:
19
+ - name: mailpit
20
+ image: axllent/mailpit:latest
21
+ ports:
22
+ - containerPort: 1025
23
+ name: smtp
24
+ - containerPort: 8025
25
+ name: web
26
+ resources:
27
+ requests:
28
+ memory: "64Mi"
29
+ cpu: "50m"
30
+ limits:
31
+ memory: "128Mi"
32
+ cpu: "200m"
33
+ readinessProbe:
34
+ httpGet:
35
+ path: /livez
36
+ port: 8025
37
+ initialDelaySeconds: 5
38
+ periodSeconds: 10
39
+ livenessProbe:
40
+ httpGet:
41
+ path: /livez
42
+ port: 8025
43
+ initialDelaySeconds: 5
44
+ periodSeconds: 30
@@ -0,0 +1,19 @@
1
+ apiVersion: networking.k8s.io/v1
2
+ kind: Ingress
3
+ metadata:
4
+ name: mailpit
5
+ namespace: eve
6
+ labels:
7
+ app.kubernetes.io/name: mailpit
8
+ spec:
9
+ rules:
10
+ - host: mail.eve.lvh.me
11
+ http:
12
+ paths:
13
+ - path: /
14
+ pathType: Prefix
15
+ backend:
16
+ service:
17
+ name: mailpit
18
+ port:
19
+ number: 8025
@@ -0,0 +1,17 @@
1
+ apiVersion: v1
2
+ kind: Service
3
+ metadata:
4
+ name: mailpit
5
+ namespace: eve
6
+ labels:
7
+ app.kubernetes.io/name: mailpit
8
+ spec:
9
+ selector:
10
+ app.kubernetes.io/name: mailpit
11
+ ports:
12
+ - name: smtp
13
+ port: 1025
14
+ targetPort: 1025
15
+ - name: web
16
+ port: 8025
17
+ targetPort: 8025
@@ -0,0 +1,6 @@
1
+ apiVersion: v1
2
+ kind: Namespace
3
+ metadata:
4
+ name: eve
5
+ labels:
6
+ app.kubernetes.io/name: eve-horizon
@@ -0,0 +1,81 @@
1
+ apiVersion: apps/v1
2
+ kind: Deployment
3
+ metadata:
4
+ name: eve-orchestrator
5
+ namespace: eve
6
+ labels:
7
+ app.kubernetes.io/name: eve-orchestrator
8
+ spec:
9
+ replicas: 1
10
+ selector:
11
+ matchLabels:
12
+ app.kubernetes.io/name: eve-orchestrator
13
+ template:
14
+ metadata:
15
+ labels:
16
+ app.kubernetes.io/name: eve-orchestrator
17
+ spec:
18
+ securityContext:
19
+ seccompProfile:
20
+ type: RuntimeDefault
21
+ initContainers:
22
+ - name: wait-for-worker
23
+ image: busybox:1.36
24
+ securityContext:
25
+ allowPrivilegeEscalation: false
26
+ command:
27
+ - sh
28
+ - -c
29
+ - |
30
+ echo "Waiting for worker to be ready..."
31
+ until wget -q --spider http://eve-worker:4749/health 2>/dev/null; do
32
+ echo "Worker not ready, retrying in 2s..."
33
+ sleep 2
34
+ done
35
+ echo "Worker is ready!"
36
+ containers:
37
+ - name: orchestrator
38
+ securityContext:
39
+ allowPrivilegeEscalation: false
40
+ image: eve-horizon/orchestrator:local
41
+ imagePullPolicy: IfNotPresent
42
+ envFrom:
43
+ # Mount all secrets from eve-app
44
+ - secretRef:
45
+ name: eve-app
46
+ env:
47
+ - name: DATABASE_URL
48
+ value: postgres://eve:eve@postgres.eve.svc.cluster.local:5432/eve
49
+ - name: EVE_API_URL
50
+ value: http://eve-api:4701
51
+ - name: ORCHESTRATOR_PORT
52
+ value: "4702"
53
+ - name: WORKER_URL
54
+ value: http://eve-worker:4749
55
+ - name: EVE_WORKER_URLS
56
+ value: default-worker=http://eve-worker:4749
57
+ - name: EVE_AGENT_RUNTIME_URL
58
+ value: http://eve-agent-runtime:4812
59
+ - name: EVE_AGENT_RUNTIME_URLS
60
+ value: >-
61
+ eve-agent-runtime-0=http://eve-agent-runtime-0.eve-agent-runtime.eve.svc.cluster.local:4812,
62
+ eve-agent-runtime-1=http://eve-agent-runtime-1.eve-agent-runtime.eve.svc.cluster.local:4812,
63
+ eve-agent-runtime-2=http://eve-agent-runtime-2.eve-agent-runtime.eve.svc.cluster.local:4812
64
+ - name: WORKSPACE_ROOT
65
+ value: /opt/eve/workspaces
66
+ ports:
67
+ - name: http
68
+ containerPort: 4702
69
+ readinessProbe:
70
+ httpGet:
71
+ path: /health
72
+ port: http
73
+ initialDelaySeconds: 5
74
+ periodSeconds: 5
75
+ failureThreshold: 10
76
+ livenessProbe:
77
+ httpGet:
78
+ path: /health
79
+ port: http
80
+ initialDelaySeconds: 20
81
+ periodSeconds: 10
@@ -0,0 +1,14 @@
1
+ apiVersion: v1
2
+ kind: Service
3
+ metadata:
4
+ name: eve-orchestrator
5
+ namespace: eve
6
+ labels:
7
+ app.kubernetes.io/name: eve-orchestrator
8
+ spec:
9
+ selector:
10
+ app.kubernetes.io/name: eve-orchestrator
11
+ ports:
12
+ - name: http
13
+ port: 4702
14
+ targetPort: http
@@ -0,0 +1,10 @@
1
+ apiVersion: v1
2
+ kind: Secret
3
+ metadata:
4
+ name: eve-postgres
5
+ namespace: eve
6
+ type: Opaque
7
+ stringData:
8
+ POSTGRES_USER: eve
9
+ POSTGRES_PASSWORD: eve
10
+ POSTGRES_DB: eve
@@ -0,0 +1,53 @@
1
+ apiVersion: v1
2
+ kind: Service
3
+ metadata:
4
+ name: postgres
5
+ namespace: eve
6
+ labels:
7
+ app.kubernetes.io/name: postgres
8
+ spec:
9
+ selector:
10
+ app.kubernetes.io/name: postgres
11
+ ports:
12
+ - name: postgres
13
+ port: 5432
14
+ targetPort: postgres
15
+ ---
16
+ apiVersion: apps/v1
17
+ kind: StatefulSet
18
+ metadata:
19
+ name: postgres
20
+ namespace: eve
21
+ labels:
22
+ app.kubernetes.io/name: postgres
23
+ spec:
24
+ serviceName: postgres
25
+ replicas: 1
26
+ selector:
27
+ matchLabels:
28
+ app.kubernetes.io/name: postgres
29
+ template:
30
+ metadata:
31
+ labels:
32
+ app.kubernetes.io/name: postgres
33
+ spec:
34
+ containers:
35
+ - name: postgres
36
+ image: postgres:16-alpine
37
+ ports:
38
+ - name: postgres
39
+ containerPort: 5432
40
+ envFrom:
41
+ - secretRef:
42
+ name: eve-postgres
43
+ volumeMounts:
44
+ - name: data
45
+ mountPath: /var/lib/postgresql/data
46
+ volumeClaimTemplates:
47
+ - metadata:
48
+ name: data
49
+ spec:
50
+ accessModes: ["ReadWriteOnce"]
51
+ resources:
52
+ requests:
53
+ storage: 5Gi
@@ -0,0 +1,34 @@
1
+ apiVersion: v1
2
+ kind: ConfigMap
3
+ metadata:
4
+ name: eve-registry-config
5
+ namespace: eve-system
6
+ data:
7
+ config.yml: |
8
+ version: 0.1
9
+ log:
10
+ level: info
11
+ fields:
12
+ service: eve-registry
13
+ storage:
14
+ filesystem:
15
+ rootdirectory: /var/lib/registry
16
+ cache:
17
+ blobdescriptor: inmemory
18
+ delete:
19
+ enabled: true
20
+ maintenance:
21
+ uploadpurging:
22
+ enabled: true
23
+ age: 168h
24
+ interval: 24h
25
+ dryrun: false
26
+ http:
27
+ addr: :5000
28
+ headers:
29
+ X-Content-Type-Options: [nosniff]
30
+ health:
31
+ storagedriver:
32
+ enabled: true
33
+ interval: 10s
34
+ threshold: 3
@@ -0,0 +1,53 @@
1
+ apiVersion: apps/v1
2
+ kind: Deployment
3
+ metadata:
4
+ name: eve-registry
5
+ namespace: eve-system
6
+ labels:
7
+ app: eve-registry
8
+ spec:
9
+ replicas: 1
10
+ selector:
11
+ matchLabels:
12
+ app: eve-registry
13
+ template:
14
+ metadata:
15
+ labels:
16
+ app: eve-registry
17
+ spec:
18
+ containers:
19
+ - name: registry
20
+ image: registry:2
21
+ ports:
22
+ - containerPort: 5000
23
+ volumeMounts:
24
+ - name: config
25
+ mountPath: /etc/docker/registry
26
+ - name: data
27
+ mountPath: /var/lib/registry
28
+ readinessProbe:
29
+ httpGet:
30
+ path: /
31
+ port: 5000
32
+ initialDelaySeconds: 5
33
+ periodSeconds: 10
34
+ livenessProbe:
35
+ httpGet:
36
+ path: /
37
+ port: 5000
38
+ initialDelaySeconds: 15
39
+ periodSeconds: 30
40
+ resources:
41
+ requests:
42
+ cpu: 100m
43
+ memory: 128Mi
44
+ limits:
45
+ cpu: 500m
46
+ memory: 512Mi
47
+ volumes:
48
+ - name: config
49
+ configMap:
50
+ name: eve-registry-config
51
+ - name: data
52
+ persistentVolumeClaim:
53
+ claimName: eve-registry-data
@@ -0,0 +1,11 @@
1
+ apiVersion: v1
2
+ kind: PersistentVolumeClaim
3
+ metadata:
4
+ name: eve-registry-data
5
+ namespace: eve-system
6
+ spec:
7
+ accessModes:
8
+ - ReadWriteOnce
9
+ resources:
10
+ requests:
11
+ storage: 10Gi
@@ -0,0 +1,15 @@
1
+ apiVersion: v1
2
+ kind: Service
3
+ metadata:
4
+ name: eve-registry
5
+ namespace: eve-system
6
+ labels:
7
+ app: eve-registry
8
+ spec:
9
+ type: ClusterIP
10
+ selector:
11
+ app: eve-registry
12
+ ports:
13
+ - name: registry
14
+ port: 5000
15
+ targetPort: 5000
@@ -0,0 +1,66 @@
1
+ apiVersion: apps/v1
2
+ kind: Deployment
3
+ metadata:
4
+ name: eve-sso
5
+ namespace: eve
6
+ labels:
7
+ app.kubernetes.io/name: eve-sso
8
+ spec:
9
+ replicas: 1
10
+ selector:
11
+ matchLabels:
12
+ app.kubernetes.io/name: eve-sso
13
+ template:
14
+ metadata:
15
+ labels:
16
+ app.kubernetes.io/name: eve-sso
17
+ spec:
18
+ securityContext:
19
+ seccompProfile:
20
+ type: RuntimeDefault
21
+ containers:
22
+ - name: sso
23
+ securityContext:
24
+ allowPrivilegeEscalation: false
25
+ image: eve-horizon/sso:local
26
+ imagePullPolicy: IfNotPresent
27
+ ports:
28
+ - name: http
29
+ containerPort: 3100
30
+ envFrom:
31
+ - secretRef:
32
+ name: eve-app
33
+ env:
34
+ - name: PORT
35
+ value: "3100"
36
+ - name: EVE_API_URL
37
+ value: http://eve-api:4701
38
+ - name: SUPABASE_AUTH_URL
39
+ value: http://supabase-auth:9999
40
+ - name: SUPABASE_AUTH_EXTERNAL_URL
41
+ value: http://auth.eve.lvh.me
42
+ - name: EVE_DEFAULT_DOMAIN
43
+ value: lvh.me
44
+ - name: EVE_SSO_SECURE_COOKIES
45
+ value: "false"
46
+ readinessProbe:
47
+ httpGet:
48
+ path: /health
49
+ port: http
50
+ initialDelaySeconds: 5
51
+ periodSeconds: 5
52
+ timeoutSeconds: 2
53
+ livenessProbe:
54
+ httpGet:
55
+ path: /health
56
+ port: http
57
+ initialDelaySeconds: 10
58
+ periodSeconds: 10
59
+ timeoutSeconds: 2
60
+ resources:
61
+ requests:
62
+ memory: "64Mi"
63
+ cpu: "50m"
64
+ limits:
65
+ memory: "128Mi"
66
+ cpu: "200m"
@@ -0,0 +1,19 @@
1
+ apiVersion: networking.k8s.io/v1
2
+ kind: Ingress
3
+ metadata:
4
+ name: eve-sso
5
+ namespace: eve
6
+ labels:
7
+ app.kubernetes.io/name: eve-sso
8
+ spec:
9
+ rules:
10
+ - host: sso.eve.lvh.me
11
+ http:
12
+ paths:
13
+ - path: /
14
+ pathType: Prefix
15
+ backend:
16
+ service:
17
+ name: eve-sso
18
+ port:
19
+ number: 3100
@@ -0,0 +1,14 @@
1
+ apiVersion: v1
2
+ kind: Service
3
+ metadata:
4
+ name: eve-sso
5
+ namespace: eve
6
+ labels:
7
+ app.kubernetes.io/name: eve-sso
8
+ spec:
9
+ selector:
10
+ app.kubernetes.io/name: eve-sso
11
+ ports:
12
+ - name: http
13
+ port: 3100
14
+ targetPort: http
@@ -0,0 +1,22 @@
1
+ apiVersion: traefik.io/v1alpha1
2
+ kind: Middleware
3
+ metadata:
4
+ name: supabase-auth-cors
5
+ namespace: eve
6
+ spec:
7
+ headers:
8
+ accessControlAllowMethods:
9
+ - "GET"
10
+ - "POST"
11
+ - "PUT"
12
+ - "DELETE"
13
+ - "OPTIONS"
14
+ accessControlAllowHeaders:
15
+ - "Content-Type"
16
+ - "Authorization"
17
+ - "apikey"
18
+ - "X-Client-Info"
19
+ accessControlAllowOriginList:
20
+ - "http://sso.eve.lvh.me"
21
+ accessControlAllowCredentials: true
22
+ accessControlMaxAge: 600
@@ -0,0 +1,100 @@
1
+ apiVersion: apps/v1
2
+ kind: Deployment
3
+ metadata:
4
+ name: supabase-auth
5
+ namespace: eve
6
+ labels:
7
+ app.kubernetes.io/name: supabase-auth
8
+ spec:
9
+ replicas: 1
10
+ selector:
11
+ matchLabels:
12
+ app.kubernetes.io/name: supabase-auth
13
+ template:
14
+ metadata:
15
+ labels:
16
+ app.kubernetes.io/name: supabase-auth
17
+ spec:
18
+ containers:
19
+ - name: gotrue
20
+ image: supabase/gotrue:v2.185.0
21
+ ports:
22
+ - containerPort: 9999
23
+ name: http
24
+ env:
25
+ # --- Database ---
26
+ - name: GOTRUE_DB_DRIVER
27
+ value: postgres
28
+ - name: DB_USER
29
+ valueFrom:
30
+ secretKeyRef:
31
+ name: eve-postgres
32
+ key: POSTGRES_USER
33
+ - name: DB_PASSWORD
34
+ valueFrom:
35
+ secretKeyRef:
36
+ name: eve-postgres
37
+ key: POSTGRES_PASSWORD
38
+ - name: GOTRUE_DB_DATABASE_URL
39
+ value: "postgres://$(DB_USER):$(DB_PASSWORD)@postgres.eve.svc.cluster.local:5432/eve?sslmode=disable&search_path=auth"
40
+ - name: PORT
41
+ value: "9999"
42
+ - name: GOTRUE_API_PORT
43
+ value: "9999"
44
+ # --- JWT ---
45
+ - name: GOTRUE_JWT_SECRET
46
+ valueFrom:
47
+ secretKeyRef:
48
+ name: eve-app
49
+ key: SUPABASE_JWT_SECRET
50
+ - name: GOTRUE_JWT_EXP
51
+ value: "3600"
52
+ # --- URLs ---
53
+ - name: API_EXTERNAL_URL
54
+ value: "http://auth.eve.lvh.me"
55
+ - name: GOTRUE_SITE_URL
56
+ value: "http://sso.eve.lvh.me"
57
+ - name: GOTRUE_URI_ALLOW_LIST
58
+ value: ""
59
+ # --- Sign-up / Email ---
60
+ - name: GOTRUE_DISABLE_SIGNUP
61
+ value: "false"
62
+ - name: GOTRUE_EXTERNAL_EMAIL_ENABLED
63
+ value: "true"
64
+ - name: GOTRUE_MAILER_AUTOCONFIRM
65
+ value: "true"
66
+ # --- SMTP (Mailpit) ---
67
+ - name: GOTRUE_SMTP_HOST
68
+ value: "mailpit.eve.svc.cluster.local"
69
+ - name: GOTRUE_SMTP_PORT
70
+ value: "1025"
71
+ - name: GOTRUE_SMTP_ADMIN_EMAIL
72
+ value: "noreply@eve.local"
73
+ # --- Mailer URL paths ---
74
+ - name: GOTRUE_MAILER_URLPATHS_CONFIRMATION
75
+ value: "/callback"
76
+ - name: GOTRUE_MAILER_URLPATHS_INVITE
77
+ value: "/callback"
78
+ - name: GOTRUE_MAILER_URLPATHS_RECOVERY
79
+ value: "/callback"
80
+ - name: GOTRUE_MAILER_URLPATHS_EMAIL_CHANGE
81
+ value: "/callback"
82
+ resources:
83
+ requests:
84
+ memory: "128Mi"
85
+ cpu: "100m"
86
+ limits:
87
+ memory: "256Mi"
88
+ cpu: "500m"
89
+ readinessProbe:
90
+ httpGet:
91
+ path: /health
92
+ port: 9999
93
+ initialDelaySeconds: 10
94
+ periodSeconds: 10
95
+ livenessProbe:
96
+ httpGet:
97
+ path: /health
98
+ port: 9999
99
+ initialDelaySeconds: 15
100
+ periodSeconds: 30
@@ -0,0 +1,21 @@
1
+ apiVersion: networking.k8s.io/v1
2
+ kind: Ingress
3
+ metadata:
4
+ name: supabase-auth
5
+ namespace: eve
6
+ labels:
7
+ app.kubernetes.io/name: supabase-auth
8
+ annotations:
9
+ traefik.ingress.kubernetes.io/router.middlewares: eve-supabase-auth-cors@kubernetescrd
10
+ spec:
11
+ rules:
12
+ - host: auth.eve.lvh.me
13
+ http:
14
+ paths:
15
+ - path: /
16
+ pathType: Prefix
17
+ backend:
18
+ service:
19
+ name: supabase-auth
20
+ port:
21
+ number: 9999
@@ -0,0 +1,14 @@
1
+ apiVersion: v1
2
+ kind: Service
3
+ metadata:
4
+ name: supabase-auth
5
+ namespace: eve
6
+ labels:
7
+ app.kubernetes.io/name: supabase-auth
8
+ spec:
9
+ selector:
10
+ app.kubernetes.io/name: supabase-auth
11
+ ports:
12
+ - name: http
13
+ port: 9999
14
+ targetPort: 9999