@underpostnet/cyberia 3.2.80 → 3.2.90
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/.env.example +34 -15
- package/.github/workflows/cyberia-client.cd.yml +13 -1
- package/.github/workflows/cyberia-server.cd.yml +13 -1
- package/.github/workflows/docker-image.cyberia-client.ci.yml +4 -4
- package/.github/workflows/docker-image.cyberia-client.dev.ci.yml +4 -4
- package/.github/workflows/docker-image.cyberia-server.ci.yml +4 -4
- package/.github/workflows/docker-image.cyberia-server.dev.ci.yml +4 -4
- package/.github/workflows/docker-image.engine-cyberia.ci.yml +3 -3
- package/.github/workflows/docker-image.engine-cyberia.dev.ci.yml +3 -3
- package/.github/workflows/engine-cyberia.cd.yml +14 -3
- package/CHANGELOG.md +182 -1
- package/CLI-HELP.md +37 -16
- package/Dockerfile +1 -1
- package/Dockerfile.dev +1 -1
- package/Dockerfile.test +1 -1
- package/bin/cyberia.js +203 -49
- package/bin/deploy.js +18 -16
- package/bin/index.js +203 -49
- package/compose.env +34 -15
- package/deployment.yaml +1 -210
- package/docker-compose.yml +73 -62
- package/hardhat/package-lock.json +134 -126
- package/hardhat/package.json +2 -2
- package/manifests/cronjobs/dd-cron/dd-cron-backup.yaml +1 -1
- package/manifests/cronjobs/dd-cron/dd-cron-dns.yaml +1 -1
- package/manifests/deployment/dd-cyberia-development/deployment.yaml +1 -210
- package/manifests/deployment/dd-cyberia-development/gateway.yaml +80 -0
- package/manifests/deployment/dd-cyberia-development/httproute.yaml +504 -0
- package/manifests/deployment/dd-cyberia-development/proxy.yaml +12 -12
- package/manifests/deployment/dd-cyberia-development/pv-pvc.yaml +0 -82
- package/manifests/deployment/dd-cyberia-development/traffic-service.yaml +121 -0
- package/manifests/deployment/dd-default-development/deployment.yaml +2 -2
- package/manifests/deployment/playwright/deployment.yaml +1 -1
- package/manifests/mongodb/kustomization.yaml +4 -1
- package/manifests/mongodb/statefulset.yaml +4 -0
- package/manifests/mongodb/storage-class.yaml +9 -2
- package/nginx.conf +86 -16
- package/package.json +2 -2
- package/proxy.yaml +12 -12
- package/pv-pvc.yaml +0 -82
- package/scripts/nat-iptables.sh +10 -4
- package/scripts/test-monitor.sh +4 -3
- package/src/api/cyberia-action/cyberia-action.model.js +1 -0
- package/src/api/cyberia-instance/cyberia-fallback-world.js +41 -14
- package/src/api/cyberia-instance/cyberia-instance-map.service.js +8 -12
- package/src/api/cyberia-instance/cyberia-portal-connector.js +7 -5
- package/src/api/cyberia-instance/cyberia-random-source.js +80 -0
- package/src/api/cyberia-instance/cyberia-world-generator.js +4 -3
- package/src/api/cyberia-server-defaults/cyberia-server-defaults.js +73 -0
- package/src/cli/cluster.js +740 -55
- package/src/cli/db.js +2 -2
- package/src/cli/deploy.js +1679 -174
- package/src/cli/docker-compose.js +19 -178
- package/src/cli/image.js +15 -6
- package/src/cli/index.js +124 -35
- package/src/cli/ipfs.js +82 -11
- package/src/cli/monitor.js +1 -1
- package/src/cli/repository.js +1 -1
- package/src/cli/run.js +2161 -420
- package/src/cli/secrets.js +969 -0
- package/src/cli/ssh.js +8 -28
- package/src/client/components/cyberia/InstanceSelectionView.js +11 -8
- package/src/client/components/cyberia/SharedDefaultsCyberia.js +5 -0
- package/src/client/public/cyberia-docs/ACTION-SYSTEM.md +106 -39
- package/src/client/public/cyberia-docs/ARCHITECTURE.md +18 -0
- package/src/client/public/cyberia-docs/CYBERIA-CLI.md +44 -7
- package/src/client/public/cyberia-docs/ROADMAP.md +1 -1
- package/src/client/public/cyberia-docs/WHITE-PAPER.md +1 -1
- package/src/client-builder/client-build.js +94 -11
- package/src/client-builder/ssr.js +27 -73
- package/src/db/mongo/MongoBootstrap.js +295 -54
- package/src/db/mongo/MongooseDB.js +47 -32
- package/src/index.js +1 -1
- package/src/projects/cyberia/besu-genesis-generator.js +3 -2
- package/src/projects/cyberia/hot-reload-trigger.js +3 -3
- package/src/projects/cyberia/instance-data.js +42 -1
- package/src/runtime/cyberia-client/Dockerfile +1 -1
- package/src/runtime/cyberia-client/Dockerfile.dev +1 -1
- package/src/runtime/cyberia-server/Dockerfile +1 -1
- package/src/runtime/cyberia-server/Dockerfile.dev +1 -1
- package/src/runtime/engine-cyberia/Dockerfile +1 -1
- package/src/runtime/engine-cyberia/Dockerfile.dev +1 -1
- package/src/runtime/engine-cyberia/Dockerfile.test +1 -1
- package/src/runtime/engine-cyberia/compose.env +34 -15
- package/src/runtime/engine-cyberia/docker-compose.yml +73 -62
- package/src/runtime/engine-cyberia/nginx.conf +86 -16
- package/src/server/conf.js +1208 -70
- package/src/server/cri.js +70 -0
- package/src/server/underpost-gateway.js +1073 -0
- package/src/server/underpost-ingress.js +364 -0
- package/test/cluster-instances.test.js +435 -0
- package/test/deploy-node-placement.test.js +45 -0
- package/test/instance-traffic-plan.test.js +710 -0
- package/test/sops-secret-store.test.js +612 -0
- package/test/underpost-gateway.test.js +469 -0
- package/test/underpost-ingress.test.js +253 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
apiVersion: v1
|
|
3
|
+
kind: Service
|
|
4
|
+
metadata:
|
|
5
|
+
name: dd-cyberia-development-traffic-service
|
|
6
|
+
namespace: default
|
|
7
|
+
labels:
|
|
8
|
+
underpost.net/traffic-service: "true"
|
|
9
|
+
underpost.net/deploy-id: dd-cyberia-development
|
|
10
|
+
spec:
|
|
11
|
+
type: ClusterIP
|
|
12
|
+
selector:
|
|
13
|
+
app: dd-cyberia-development-blue
|
|
14
|
+
ports:
|
|
15
|
+
- name: 'tcp-4005'
|
|
16
|
+
protocol: TCP
|
|
17
|
+
port: 4005
|
|
18
|
+
targetPort: 4005
|
|
19
|
+
- name: 'udp-4005'
|
|
20
|
+
protocol: UDP
|
|
21
|
+
port: 4005
|
|
22
|
+
targetPort: 4005
|
|
23
|
+
|
|
24
|
+
- name: 'tcp-4006'
|
|
25
|
+
protocol: TCP
|
|
26
|
+
port: 4006
|
|
27
|
+
targetPort: 4006
|
|
28
|
+
- name: 'udp-4006'
|
|
29
|
+
protocol: UDP
|
|
30
|
+
port: 4006
|
|
31
|
+
targetPort: 4006
|
|
32
|
+
|
|
33
|
+
- name: 'tcp-4007'
|
|
34
|
+
protocol: TCP
|
|
35
|
+
port: 4007
|
|
36
|
+
targetPort: 4007
|
|
37
|
+
- name: 'udp-4007'
|
|
38
|
+
protocol: UDP
|
|
39
|
+
port: 4007
|
|
40
|
+
targetPort: 4007
|
|
41
|
+
|
|
42
|
+
- name: 'tcp-4008'
|
|
43
|
+
protocol: TCP
|
|
44
|
+
port: 4008
|
|
45
|
+
targetPort: 4008
|
|
46
|
+
- name: 'udp-4008'
|
|
47
|
+
protocol: UDP
|
|
48
|
+
port: 4008
|
|
49
|
+
targetPort: 4008
|
|
50
|
+
|
|
51
|
+
- name: 'tcp-4009'
|
|
52
|
+
protocol: TCP
|
|
53
|
+
port: 4009
|
|
54
|
+
targetPort: 4009
|
|
55
|
+
- name: 'udp-4009'
|
|
56
|
+
protocol: UDP
|
|
57
|
+
port: 4009
|
|
58
|
+
targetPort: 4009
|
|
59
|
+
|
|
60
|
+
- name: 'tcp-4010'
|
|
61
|
+
protocol: TCP
|
|
62
|
+
port: 4010
|
|
63
|
+
targetPort: 4010
|
|
64
|
+
- name: 'udp-4010'
|
|
65
|
+
protocol: UDP
|
|
66
|
+
port: 4010
|
|
67
|
+
targetPort: 4010
|
|
68
|
+
|
|
69
|
+
- name: 'tcp-4011'
|
|
70
|
+
protocol: TCP
|
|
71
|
+
port: 4011
|
|
72
|
+
targetPort: 4011
|
|
73
|
+
- name: 'udp-4011'
|
|
74
|
+
protocol: UDP
|
|
75
|
+
port: 4011
|
|
76
|
+
targetPort: 4011
|
|
77
|
+
|
|
78
|
+
- name: 'tcp-4012'
|
|
79
|
+
protocol: TCP
|
|
80
|
+
port: 4012
|
|
81
|
+
targetPort: 4012
|
|
82
|
+
- name: 'udp-4012'
|
|
83
|
+
protocol: UDP
|
|
84
|
+
port: 4012
|
|
85
|
+
targetPort: 4012
|
|
86
|
+
|
|
87
|
+
- name: 'tcp-4013'
|
|
88
|
+
protocol: TCP
|
|
89
|
+
port: 4013
|
|
90
|
+
targetPort: 4013
|
|
91
|
+
- name: 'udp-4013'
|
|
92
|
+
protocol: UDP
|
|
93
|
+
port: 4013
|
|
94
|
+
targetPort: 4013
|
|
95
|
+
|
|
96
|
+
- name: 'tcp-4014'
|
|
97
|
+
protocol: TCP
|
|
98
|
+
port: 4014
|
|
99
|
+
targetPort: 4014
|
|
100
|
+
- name: 'udp-4014'
|
|
101
|
+
protocol: UDP
|
|
102
|
+
port: 4014
|
|
103
|
+
targetPort: 4014
|
|
104
|
+
|
|
105
|
+
- name: 'tcp-4015'
|
|
106
|
+
protocol: TCP
|
|
107
|
+
port: 4015
|
|
108
|
+
targetPort: 4015
|
|
109
|
+
- name: 'udp-4015'
|
|
110
|
+
protocol: UDP
|
|
111
|
+
port: 4015
|
|
112
|
+
targetPort: 4015
|
|
113
|
+
|
|
114
|
+
- name: 'tcp-4016'
|
|
115
|
+
protocol: TCP
|
|
116
|
+
port: 4016
|
|
117
|
+
targetPort: 4016
|
|
118
|
+
- name: 'udp-4016'
|
|
119
|
+
protocol: UDP
|
|
120
|
+
port: 4016
|
|
121
|
+
targetPort: 4016
|
|
@@ -17,7 +17,7 @@ spec:
|
|
|
17
17
|
spec:
|
|
18
18
|
containers:
|
|
19
19
|
- name: dd-default-development-blue
|
|
20
|
-
image: underpost/underpost-engine:v3.2.
|
|
20
|
+
image: underpost/underpost-engine:v3.2.90
|
|
21
21
|
# resources:
|
|
22
22
|
# requests:
|
|
23
23
|
# memory: "124Ki"
|
|
@@ -98,7 +98,7 @@ spec:
|
|
|
98
98
|
spec:
|
|
99
99
|
containers:
|
|
100
100
|
- name: dd-default-development-green
|
|
101
|
-
image: underpost/underpost-engine:v3.2.
|
|
101
|
+
image: underpost/underpost-engine:v3.2.90
|
|
102
102
|
# resources:
|
|
103
103
|
# requests:
|
|
104
104
|
# memory: "124Ki"
|
|
@@ -3,7 +3,10 @@
|
|
|
3
3
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
|
4
4
|
kind: Kustomization
|
|
5
5
|
resources:
|
|
6
|
-
|
|
6
|
+
# pv-pvc.yaml is intentionally absent: the PersistentVolume set is one-per-replica, so it is
|
|
7
|
+
# generated from the effective replica count by MongoBootstrap.applyReplicaVolumes() and applied
|
|
8
|
+
# just before this kustomization. A static file can only describe a fixed number of members, and
|
|
9
|
+
# any --replicas above it leaves the surplus claims unbindable.
|
|
7
10
|
- headless-service.yaml
|
|
8
11
|
- statefulset.yaml
|
|
9
12
|
# - backup-pv-pvc.yaml
|
|
@@ -105,6 +105,10 @@ spec:
|
|
|
105
105
|
volumeClaimTemplates:
|
|
106
106
|
- metadata:
|
|
107
107
|
name: mongodb-storage
|
|
108
|
+
# Without this label `kubectl delete pvc -l app=mongodb` matches nothing, leaving stale
|
|
109
|
+
# claims bound to retained PVs across redeploys.
|
|
110
|
+
labels:
|
|
111
|
+
app: mongodb
|
|
108
112
|
spec:
|
|
109
113
|
accessModes: ['ReadWriteOnce']
|
|
110
114
|
storageClassName: mongodb-storage-class
|
|
@@ -3,7 +3,14 @@ kind: StorageClass
|
|
|
3
3
|
metadata:
|
|
4
4
|
name: mongodb-storage-class
|
|
5
5
|
annotations:
|
|
6
|
-
storageclass.kubernetes.io/is-default-class:
|
|
7
|
-
|
|
6
|
+
storageclass.kubernetes.io/is-default-class: 'false'
|
|
7
|
+
# Static class: the replica volumes are hostPath PVs generated one per member by
|
|
8
|
+
# MongoBootstrap.applyReplicaVolumes(), each pinned to one member via `claimRef`. It must NOT name a dynamic provisioner — with
|
|
9
|
+
# `rancher.io/local-path` the local-path controller also provisions for these PVCs, racing the
|
|
10
|
+
# static binder, so which volume a member ends up on is not deterministic. Two members landing
|
|
11
|
+
# on one directory is fatal: mongod dies on `WiredTiger.lock: fcntl: Resource temporarily
|
|
12
|
+
# unavailable`, since kind bind-mounts /data/mongodb from the host into every node.
|
|
13
|
+
provisioner: kubernetes.io/no-provisioner
|
|
8
14
|
reclaimPolicy: Retain
|
|
15
|
+
# Static hostPath PVs carry no nodeAffinity, so binding can safely wait for the scheduler.
|
|
9
16
|
volumeBindingMode: WaitForFirstConsumer
|
package/nginx.conf
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
#
|
|
2
|
-
#
|
|
3
|
-
#
|
|
4
|
-
# http://localhost/<PATH
|
|
5
|
-
#
|
|
1
|
+
# Canonical routing for the dd-cyberia custom Compose workflow. This file is
|
|
2
|
+
# maintained here and is used as-is by the generic Docker Compose CLI.
|
|
3
|
+
# Docker DNS: http://cyberia-client, http://cyberia-server, http://engine-cyberia.
|
|
4
|
+
# Host access: client on http://localhost[:8082]/<PATH>, server on
|
|
5
|
+
# http://localhost:8081/<PATH>, and engine on http://localhost:4005.
|
|
6
|
+
# Optional *.cyberia.localhost aliases remain available.
|
|
6
7
|
|
|
7
8
|
map $http_upgrade $connection_upgrade {
|
|
8
9
|
default upgrade;
|
|
@@ -17,7 +18,7 @@ proxy_http_version 1.1;
|
|
|
17
18
|
|
|
18
19
|
server {
|
|
19
20
|
listen 80 default_server;
|
|
20
|
-
server_name localhost 127.0.0.1 _;
|
|
21
|
+
server_name localhost 127.0.0.1 cyberia-client cyberia.localhost client.cyberia.localhost _;
|
|
21
22
|
|
|
22
23
|
location = /healthz {
|
|
23
24
|
access_log off;
|
|
@@ -27,7 +28,7 @@ server {
|
|
|
27
28
|
|
|
28
29
|
# Shared content authority: REST API + engine-served assets (fonts, ui-icons).
|
|
29
30
|
location /api/ {
|
|
30
|
-
set $up_engine engine-cyberia:4005;
|
|
31
|
+
set $up_engine engine-cyberia-runtime:4005;
|
|
31
32
|
proxy_pass http://$up_engine;
|
|
32
33
|
proxy_set_header Host $host;
|
|
33
34
|
proxy_set_header X-Real-IP $remote_addr;
|
|
@@ -39,7 +40,7 @@ server {
|
|
|
39
40
|
}
|
|
40
41
|
|
|
41
42
|
location /assets/ {
|
|
42
|
-
set $up_engine engine-cyberia:4005;
|
|
43
|
+
set $up_engine engine-cyberia-runtime:4005;
|
|
43
44
|
proxy_pass http://$up_engine;
|
|
44
45
|
proxy_set_header Host $host;
|
|
45
46
|
proxy_set_header X-Real-IP $remote_addr;
|
|
@@ -51,7 +52,7 @@ server {
|
|
|
51
52
|
}
|
|
52
53
|
|
|
53
54
|
location = /ws {
|
|
54
|
-
set $up_server_default cyberia-server:8081;
|
|
55
|
+
set $up_server_default cyberia-server-runtime:8081;
|
|
55
56
|
proxy_pass http://$up_server_default;
|
|
56
57
|
proxy_set_header Host $host;
|
|
57
58
|
proxy_set_header X-Real-IP $remote_addr;
|
|
@@ -62,9 +63,8 @@ server {
|
|
|
62
63
|
proxy_read_timeout 3600s;
|
|
63
64
|
}
|
|
64
65
|
|
|
65
|
-
location /FOREST/ws {
|
|
66
|
+
location = /FOREST/ws {
|
|
66
67
|
set $up_server_forest cyberia-server-forest:8081;
|
|
67
|
-
rewrite ^/FOREST/(.*)$ /$1 break;
|
|
68
68
|
proxy_pass http://$up_server_forest;
|
|
69
69
|
proxy_set_header Host $host;
|
|
70
70
|
proxy_set_header X-Real-IP $remote_addr;
|
|
@@ -75,9 +75,8 @@ server {
|
|
|
75
75
|
proxy_read_timeout 3600s;
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
location /TEST/ws {
|
|
78
|
+
location = /TEST/ws {
|
|
79
79
|
set $up_server_test cyberia-server-test:8081;
|
|
80
|
-
rewrite ^/TEST/(.*)$ /$1 break;
|
|
81
80
|
proxy_pass http://$up_server_test;
|
|
82
81
|
proxy_set_header Host $host;
|
|
83
82
|
proxy_set_header X-Real-IP $remote_addr;
|
|
@@ -89,7 +88,7 @@ server {
|
|
|
89
88
|
}
|
|
90
89
|
|
|
91
90
|
location / {
|
|
92
|
-
set $up_client_default cyberia-client:8081;
|
|
91
|
+
set $up_client_default cyberia-client-runtime:8081;
|
|
93
92
|
proxy_pass http://$up_client_default;
|
|
94
93
|
proxy_set_header Host $host;
|
|
95
94
|
proxy_set_header X-Real-IP $remote_addr;
|
|
@@ -101,7 +100,7 @@ server {
|
|
|
101
100
|
}
|
|
102
101
|
|
|
103
102
|
location = /FOREST { return 301 /FOREST/; }
|
|
104
|
-
location /FOREST {
|
|
103
|
+
location ^~ /FOREST/ {
|
|
105
104
|
set $up_client_forest cyberia-client-forest:8081;
|
|
106
105
|
proxy_pass http://$up_client_forest;
|
|
107
106
|
proxy_set_header Host $host;
|
|
@@ -114,7 +113,7 @@ server {
|
|
|
114
113
|
}
|
|
115
114
|
|
|
116
115
|
location = /TEST { return 301 /TEST/; }
|
|
117
|
-
location /TEST {
|
|
116
|
+
location ^~ /TEST/ {
|
|
118
117
|
set $up_client_test cyberia-client-test:8081;
|
|
119
118
|
proxy_pass http://$up_client_test;
|
|
120
119
|
proxy_set_header Host $host;
|
|
@@ -126,3 +125,74 @@ server {
|
|
|
126
125
|
proxy_read_timeout 3600s;
|
|
127
126
|
}
|
|
128
127
|
}
|
|
128
|
+
|
|
129
|
+
# Dedicated Cyberia server gateway. Port 8081 makes all instance paths available
|
|
130
|
+
# from localhost; the stable Docker DNS alias exposes the same routes on :80.
|
|
131
|
+
server {
|
|
132
|
+
listen 80;
|
|
133
|
+
listen 8081 default_server;
|
|
134
|
+
server_name cyberia-server server.cyberia.localhost;
|
|
135
|
+
|
|
136
|
+
location = /healthz {
|
|
137
|
+
access_log off;
|
|
138
|
+
return 200 "ok\n";
|
|
139
|
+
add_header Content-Type text/plain;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
location = /FOREST { return 301 /FOREST/; }
|
|
143
|
+
location ^~ /FOREST/ {
|
|
144
|
+
set $up_http_server_forest cyberia-server-forest:8081;
|
|
145
|
+
proxy_pass http://$up_http_server_forest;
|
|
146
|
+
proxy_set_header Host $host;
|
|
147
|
+
proxy_set_header X-Real-IP $remote_addr;
|
|
148
|
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
149
|
+
proxy_set_header X-Forwarded-Proto $scheme;
|
|
150
|
+
proxy_set_header Upgrade $http_upgrade;
|
|
151
|
+
proxy_set_header Connection $connection_upgrade;
|
|
152
|
+
proxy_read_timeout 3600s;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
location = /TEST { return 301 /TEST/; }
|
|
156
|
+
location ^~ /TEST/ {
|
|
157
|
+
set $up_http_server_test cyberia-server-test:8081;
|
|
158
|
+
proxy_pass http://$up_http_server_test;
|
|
159
|
+
proxy_set_header Host $host;
|
|
160
|
+
proxy_set_header X-Real-IP $remote_addr;
|
|
161
|
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
162
|
+
proxy_set_header X-Forwarded-Proto $scheme;
|
|
163
|
+
proxy_set_header Upgrade $http_upgrade;
|
|
164
|
+
proxy_set_header Connection $connection_upgrade;
|
|
165
|
+
proxy_read_timeout 3600s;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
location / {
|
|
169
|
+
set $up_http_server_default cyberia-server-runtime:8081;
|
|
170
|
+
proxy_pass http://$up_http_server_default;
|
|
171
|
+
proxy_set_header Host $host;
|
|
172
|
+
proxy_set_header X-Real-IP $remote_addr;
|
|
173
|
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
174
|
+
proxy_set_header X-Forwarded-Proto $scheme;
|
|
175
|
+
proxy_set_header Upgrade $http_upgrade;
|
|
176
|
+
proxy_set_header Connection $connection_upgrade;
|
|
177
|
+
proxy_read_timeout 3600s;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
# The engine remains a single shared authority. Its direct :4005 publication is
|
|
182
|
+
# canonical for debugging; this alias is convenient for browser parity.
|
|
183
|
+
server {
|
|
184
|
+
listen 80;
|
|
185
|
+
server_name engine-cyberia engine.cyberia.localhost;
|
|
186
|
+
|
|
187
|
+
location / {
|
|
188
|
+
set $up_engine_authority engine-cyberia-runtime:4005;
|
|
189
|
+
proxy_pass http://$up_engine_authority;
|
|
190
|
+
proxy_set_header Host $host;
|
|
191
|
+
proxy_set_header X-Real-IP $remote_addr;
|
|
192
|
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
193
|
+
proxy_set_header X-Forwarded-Proto $scheme;
|
|
194
|
+
proxy_set_header Upgrade $http_upgrade;
|
|
195
|
+
proxy_set_header Connection $connection_upgrade;
|
|
196
|
+
proxy_read_timeout 3600s;
|
|
197
|
+
}
|
|
198
|
+
}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"type": "module",
|
|
3
3
|
"main": "src/index.js",
|
|
4
4
|
"name": "@underpostnet/cyberia",
|
|
5
|
-
"version": "3.2.
|
|
5
|
+
"version": "3.2.90",
|
|
6
6
|
"description": "Cyberia CLI — toolchain for the Cyberia MMO data layer, content pipeline, persistence, gRPC services, and ERC-1155 lifecycle on Hyperledger Besu.",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"start": "node --max-old-space-size=8192 src/server",
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
},
|
|
73
73
|
"homepage": "https://github.com/underpostnet/engine-cyberia#readme",
|
|
74
74
|
"dependencies": {
|
|
75
|
-
"underpost": "^3.2.
|
|
75
|
+
"underpost": "^3.2.90",
|
|
76
76
|
"adm-zip": "^0.6.0",
|
|
77
77
|
"maxrects-packer": "^2.7.3",
|
|
78
78
|
"pngjs": "^7.0.0",
|
package/proxy.yaml
CHANGED
|
@@ -14,7 +14,7 @@ spec:
|
|
|
14
14
|
|
|
15
15
|
enableWebsockets: true
|
|
16
16
|
services:
|
|
17
|
-
- name: dd-cyberia-development-
|
|
17
|
+
- name: dd-cyberia-development-traffic-service
|
|
18
18
|
port: 4005
|
|
19
19
|
weight: 100
|
|
20
20
|
|
|
@@ -23,7 +23,7 @@ spec:
|
|
|
23
23
|
|
|
24
24
|
enableWebsockets: true
|
|
25
25
|
services:
|
|
26
|
-
- name: dd-cyberia-development-
|
|
26
|
+
- name: dd-cyberia-development-traffic-service
|
|
27
27
|
port: 4006
|
|
28
28
|
weight: 100
|
|
29
29
|
|
|
@@ -42,7 +42,7 @@ spec:
|
|
|
42
42
|
|
|
43
43
|
enableWebsockets: true
|
|
44
44
|
services:
|
|
45
|
-
- name: dd-cyberia-development-
|
|
45
|
+
- name: dd-cyberia-development-traffic-service
|
|
46
46
|
port: 4007
|
|
47
47
|
weight: 100
|
|
48
48
|
|
|
@@ -61,7 +61,7 @@ spec:
|
|
|
61
61
|
|
|
62
62
|
enableWebsockets: true
|
|
63
63
|
services:
|
|
64
|
-
- name: dd-cyberia-development-
|
|
64
|
+
- name: dd-cyberia-development-traffic-service
|
|
65
65
|
port: 4008
|
|
66
66
|
weight: 100
|
|
67
67
|
|
|
@@ -70,7 +70,7 @@ spec:
|
|
|
70
70
|
|
|
71
71
|
enableWebsockets: true
|
|
72
72
|
services:
|
|
73
|
-
- name: dd-cyberia-development-
|
|
73
|
+
- name: dd-cyberia-development-traffic-service
|
|
74
74
|
port: 4009
|
|
75
75
|
weight: 100
|
|
76
76
|
|
|
@@ -89,7 +89,7 @@ spec:
|
|
|
89
89
|
|
|
90
90
|
enableWebsockets: true
|
|
91
91
|
services:
|
|
92
|
-
- name: dd-cyberia-development-
|
|
92
|
+
- name: dd-cyberia-development-traffic-service
|
|
93
93
|
port: 4010
|
|
94
94
|
weight: 100
|
|
95
95
|
|
|
@@ -108,7 +108,7 @@ spec:
|
|
|
108
108
|
|
|
109
109
|
enableWebsockets: true
|
|
110
110
|
services:
|
|
111
|
-
- name: dd-cyberia-development-
|
|
111
|
+
- name: dd-cyberia-development-traffic-service
|
|
112
112
|
port: 4011
|
|
113
113
|
weight: 100
|
|
114
114
|
|
|
@@ -117,7 +117,7 @@ spec:
|
|
|
117
117
|
|
|
118
118
|
enableWebsockets: true
|
|
119
119
|
services:
|
|
120
|
-
- name: dd-cyberia-development-
|
|
120
|
+
- name: dd-cyberia-development-traffic-service
|
|
121
121
|
port: 4012
|
|
122
122
|
weight: 100
|
|
123
123
|
|
|
@@ -136,7 +136,7 @@ spec:
|
|
|
136
136
|
|
|
137
137
|
enableWebsockets: true
|
|
138
138
|
services:
|
|
139
|
-
- name: dd-cyberia-development-
|
|
139
|
+
- name: dd-cyberia-development-traffic-service
|
|
140
140
|
port: 4013
|
|
141
141
|
weight: 100
|
|
142
142
|
|
|
@@ -155,7 +155,7 @@ spec:
|
|
|
155
155
|
|
|
156
156
|
enableWebsockets: true
|
|
157
157
|
services:
|
|
158
|
-
- name: dd-cyberia-development-
|
|
158
|
+
- name: dd-cyberia-development-traffic-service
|
|
159
159
|
port: 4014
|
|
160
160
|
weight: 100
|
|
161
161
|
|
|
@@ -164,7 +164,7 @@ spec:
|
|
|
164
164
|
|
|
165
165
|
enableWebsockets: true
|
|
166
166
|
services:
|
|
167
|
-
- name: dd-cyberia-development-
|
|
167
|
+
- name: dd-cyberia-development-traffic-service
|
|
168
168
|
port: 4015
|
|
169
169
|
weight: 100
|
|
170
170
|
|
|
@@ -183,7 +183,7 @@ spec:
|
|
|
183
183
|
|
|
184
184
|
enableWebsockets: true
|
|
185
185
|
services:
|
|
186
|
-
- name: dd-cyberia-development-
|
|
186
|
+
- name: dd-cyberia-development-traffic-service
|
|
187
187
|
port: 4016
|
|
188
188
|
weight: 100
|
|
189
189
|
|
package/pv-pvc.yaml
CHANGED
|
@@ -80,85 +80,3 @@ spec:
|
|
|
80
80
|
resources:
|
|
81
81
|
requests:
|
|
82
82
|
storage: 5Gi
|
|
83
|
-
---
|
|
84
|
-
apiVersion: v1
|
|
85
|
-
kind: PersistentVolume
|
|
86
|
-
metadata:
|
|
87
|
-
name: pv-public-dd-cyberia-dd-cyberia-development-green
|
|
88
|
-
spec:
|
|
89
|
-
capacity:
|
|
90
|
-
storage: 5Gi
|
|
91
|
-
accessModes:
|
|
92
|
-
- ReadWriteOnce
|
|
93
|
-
persistentVolumeReclaimPolicy: Retain
|
|
94
|
-
storageClassName: manual
|
|
95
|
-
nodeAffinity:
|
|
96
|
-
required:
|
|
97
|
-
nodeSelectorTerms:
|
|
98
|
-
- matchExpressions:
|
|
99
|
-
- key: kubernetes.io/hostname
|
|
100
|
-
operator: In
|
|
101
|
-
values:
|
|
102
|
-
- kind-worker
|
|
103
|
-
claimRef:
|
|
104
|
-
apiVersion: v1
|
|
105
|
-
kind: PersistentVolumeClaim
|
|
106
|
-
name: pvc-public-dd-cyberia-dd-cyberia-development-green
|
|
107
|
-
namespace: default
|
|
108
|
-
hostPath:
|
|
109
|
-
path: /home/dd/engine/volume/pv-public-dd-cyberia-dd-cyberia-development-green
|
|
110
|
-
type: DirectoryOrCreate
|
|
111
|
-
---
|
|
112
|
-
apiVersion: v1
|
|
113
|
-
kind: PersistentVolumeClaim
|
|
114
|
-
metadata:
|
|
115
|
-
name: pvc-public-dd-cyberia-dd-cyberia-development-green
|
|
116
|
-
spec:
|
|
117
|
-
accessModes:
|
|
118
|
-
- ReadWriteOnce
|
|
119
|
-
storageClassName: manual
|
|
120
|
-
volumeName: pv-public-dd-cyberia-dd-cyberia-development-green
|
|
121
|
-
resources:
|
|
122
|
-
requests:
|
|
123
|
-
storage: 5Gi
|
|
124
|
-
---
|
|
125
|
-
apiVersion: v1
|
|
126
|
-
kind: PersistentVolume
|
|
127
|
-
metadata:
|
|
128
|
-
name: pv-public-dd-cyberia-underpost-dd-cyberia-development-green
|
|
129
|
-
spec:
|
|
130
|
-
capacity:
|
|
131
|
-
storage: 5Gi
|
|
132
|
-
accessModes:
|
|
133
|
-
- ReadWriteOnce
|
|
134
|
-
persistentVolumeReclaimPolicy: Retain
|
|
135
|
-
storageClassName: manual
|
|
136
|
-
nodeAffinity:
|
|
137
|
-
required:
|
|
138
|
-
nodeSelectorTerms:
|
|
139
|
-
- matchExpressions:
|
|
140
|
-
- key: kubernetes.io/hostname
|
|
141
|
-
operator: In
|
|
142
|
-
values:
|
|
143
|
-
- kind-worker
|
|
144
|
-
claimRef:
|
|
145
|
-
apiVersion: v1
|
|
146
|
-
kind: PersistentVolumeClaim
|
|
147
|
-
name: pvc-public-dd-cyberia-underpost-dd-cyberia-development-green
|
|
148
|
-
namespace: default
|
|
149
|
-
hostPath:
|
|
150
|
-
path: /home/dd/engine/volume/pv-public-dd-cyberia-underpost-dd-cyberia-development-green
|
|
151
|
-
type: DirectoryOrCreate
|
|
152
|
-
---
|
|
153
|
-
apiVersion: v1
|
|
154
|
-
kind: PersistentVolumeClaim
|
|
155
|
-
metadata:
|
|
156
|
-
name: pvc-public-dd-cyberia-underpost-dd-cyberia-development-green
|
|
157
|
-
spec:
|
|
158
|
-
accessModes:
|
|
159
|
-
- ReadWriteOnce
|
|
160
|
-
storageClassName: manual
|
|
161
|
-
volumeName: pv-public-dd-cyberia-underpost-dd-cyberia-development-green
|
|
162
|
-
resources:
|
|
163
|
-
requests:
|
|
164
|
-
storage: 5Gi
|
package/scripts/nat-iptables.sh
CHANGED
|
@@ -32,6 +32,12 @@ sudo firewall-cmd --permanent --zone=public --add-service=ssh
|
|
|
32
32
|
sudo firewall-cmd --permanent --zone=public --add-service=http
|
|
33
33
|
sudo firewall-cmd --permanent --zone=public --add-service=https
|
|
34
34
|
|
|
35
|
+
# QUIC / HTTP3. The `https` service above covers TCP 443 only, so without this
|
|
36
|
+
# an HTTP/3 gateway advertises `Alt-Svc: h3=":443"` and every client that acts
|
|
37
|
+
# on it silently fails over UDP while HTTP/2 keeps working.
|
|
38
|
+
sudo firewall-cmd --permanent --zone=public --add-port=443/udp
|
|
39
|
+
sudo firewall-cmd --permanent --zone=public --add-port=80/udp
|
|
40
|
+
|
|
35
41
|
echo "[INFO] Opening Kubernetes control plane ports..."
|
|
36
42
|
|
|
37
43
|
# Kubernetes API Server
|
|
@@ -98,10 +104,10 @@ sudo firewall-cmd --reload
|
|
|
98
104
|
echo
|
|
99
105
|
echo "[INFO] Sysctl status:"
|
|
100
106
|
sudo sysctl \
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
107
|
+
net.ipv4.ip_forward \
|
|
108
|
+
net.ipv6.conf.all.forwarding \
|
|
109
|
+
net.bridge.bridge-nf-call-iptables \
|
|
110
|
+
net.bridge.bridge-nf-call-ip6tables
|
|
105
111
|
|
|
106
112
|
echo
|
|
107
113
|
echo "[INFO] Firewall status:"
|
package/scripts/test-monitor.sh
CHANGED
|
@@ -24,7 +24,7 @@ MODE=runtime # runtime | instance
|
|
|
24
24
|
ENV=development # development | production
|
|
25
25
|
DEPLOY_ID=dd-test # deploy id (instance mode: parent of conf.instances.json)
|
|
26
26
|
INSTANCE_IDS= # instance mode: csv of ids (default: all in conf.instances.json)
|
|
27
|
-
IMAGE=underpost/wp:v3.2.
|
|
27
|
+
IMAGE=underpost/wp:v3.2.90 # runtime mode image (instance mode reads image from conf)
|
|
28
28
|
VERSIONS=green # csv of blue/green versions
|
|
29
29
|
REPLICAS=1 # replicas per deployment
|
|
30
30
|
NAMESPACE=default # k8s namespace
|
|
@@ -202,7 +202,8 @@ run_runtime_mode() {
|
|
|
202
202
|
setup_tls_secrets $(hosts_from "$SERVER_CONF")
|
|
203
203
|
expose_flags="--tls"
|
|
204
204
|
fi
|
|
205
|
-
[ "$DO_EXPOSE" = true ] && node bin
|
|
205
|
+
[ "$DO_EXPOSE" = true ] && node bin run expose "${DEPLOY_ID}-${ENV}-traffic-service" --namespace "$NAMESPACE" \
|
|
206
|
+
--local-proxy $DEV_FLAG $CLUSTER_FLAG $expose_flags
|
|
206
207
|
}
|
|
207
208
|
|
|
208
209
|
# ─────────────────────────── instance mode ───────────────────────────
|
|
@@ -234,7 +235,7 @@ run_instance_mode() {
|
|
|
234
235
|
# Plain HTTP: port-forward each instance service port directly.
|
|
235
236
|
for id in "${ids[@]}"; do
|
|
236
237
|
[ -n "$id" ] || continue
|
|
237
|
-
node bin
|
|
238
|
+
node bin run expose "${DEPLOY_ID}-${id}-${ENV}-traffic-service" --namespace "$NAMESPACE" $CLUSTER_FLAG || true
|
|
238
239
|
done
|
|
239
240
|
fi
|
|
240
241
|
}
|