oracle-quickstart / oke-unreal-pixel-streaming Goto Github PK
View Code? Open in Web Editor NEWUnreal Engine Pixel Streaming Quickstart on OKE
License: Universal Permissive License v1.0
Unreal Engine Pixel Streaming Quickstart on OKE
License: Universal Permissive License v1.0
kubectl logs matchmaker-68c69f56b8-sc9jm -n ue4
Defaulted container "matchmaker" out of: matchmaker, copy (init)
/app/matchmaker.js:21
var configFile = (typeof argv.configFile != 'undefined') ? argv.configFile.toString() : path.join(__dirname, 'config.json');
^
ReferenceError: Cannot access 'path' before initialization
at Object. (/app/matchmaker.js:21:89)
at Module._compile (internal/modules/cjs/loader.js:1085:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
at Module.load (internal/modules/cjs/loader.js:950:32)
at Function.Module._load (internal/modules/cjs/loader.js:790:12)
at Module.require (internal/modules/cjs/loader.js:974:19)
at require (internal/modules/cjs/helpers.js:101:18)
at Object. (/app/wrapper.js:219:40)
at Module._compile (internal/modules/cjs/loader.js:1085:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/component: unrealengine
app.kubernetes.io/part-of: ue4-on-eks
app.kubernetes.io/version: 0.0.1
app: matchmaker
name: matchmaker
namespace: ue4
spec:
replicas: 1
selector:
matchLabels:
app: matchmaker
app.kubernetes.io/component: unrealengine
app.kubernetes.io/part-of: ue4-on-eks
app.kubernetes.io/version: 0.0.1
app: matchmaker
template:
metadata:
annotations:
sidecar.istio.io/rewriteAppHTTPProbers: "true"
labels:
app: matchmaker
app.kubernetes.io/component: unrealengine
app.kubernetes.io/part-of: ue4-on-eks
app.kubernetes.io/version: 0.0.1
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: app.pixel/turn
operator: In
values:
- "true"
containers:
- args:
- --HttpPort=3000
- --httpPort=3000
- --MatchmakerPort=9999
- --matchmakerPort=9999
env:
- name: STREAM_SERVICE_NAME
value: stream-discovery
- name: NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
envFrom:
- configMapRef:
name: pixel-app-configs
image: public.ecr.aws/i0s2o7q7/megaverse-eks-matchmaker:18
imagePullPolicy: Always
# livenessProbe:
# httpGet:
# path: /
# port: http
name: matchmaker
ports:
- containerPort: 3000
name: http
- containerPort: 9999
name: socket
- containerPort: 9000
name: metrics
protocol: TCP
# readinessProbe:
# httpGet:
# path: /
# port: http
resources:
limits:
cpu: 200m
memory: 200Mi
requests:
cpu: 100m
memory: 100Mi
securityContext:
capabilities:
add:
- NET_BIND_SERVICE
drop:
- all
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 10001
volumeMounts:
- mountPath: /config
name: config
- mountPath: /pixelconfig
name: pixelconfig
initContainers:
- name: copy
image: busybox
# command: ["bash", "-c", "cp config/* /pixelconfig/"]
envFrom:
- configMapRef:
name: pixel-app-configs
volumeMounts:
- mountPath: /config
name: config
- mountPath: /pixelconfig
name: pixelconfig
volumes:
- configMap:
name: pixel-app-configs
name: config
- name: pixelconfig
emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
annotations:
prometheus.io/port: "9000"
prometheus.io/scrape: "true"
labels:
app: matchmaker
app.kubernetes.io/component: unrealengine
app.kubernetes.io/part-of: ue4-on-eks
app.kubernetes.io/version: 0.0.1
name: matchmaker
namespace: ue4
spec:
ports:
- name: http
port: 3000
targetPort: 3000
- name: socket
port: 9999
targetPort: 9999
- name: metrics
port: 9000
targetPort: 9000
selector:
app: matchmaker
sessionAffinity: ClientIP
sessionAffinityConfig:
clientIP:
timeoutSeconds: 10
type: ClusterIP
---
apiVersion: v1
kind: ConfigMap
metadata:
labels:
app.kubernetes.io/component: unrealengine
app.kubernetes.io/part-of: ue4-on-eks
app.kubernetes.io/version: 0.0.1
name: pixel-app-configs
namespace: ue4
data:
cirrus.json: "{\n\t\"UseFrontend\": false,\n\t\"UseMatchmaker\": false,\n\t\"UseHTTPS\":
false,\n\t\"UseAuthentication\": false,\n\t\"LogToFile\": false,\n\t\"EnableWebserver\":
false,\n\t\"HomepageFile\": null,\n\t\"HttpPort\": 3000,\n\t\"StreamerPort\":
8888\n}"
matchmaker.json: "{\n\t\"HttpPort\": 3000,\n\t\"UseHTTPS\": false,\n\t\"MatchmakerPort\":
9999,\n\t\"LogToFile\": false,\n \"enableRedirectionLinks\": false,\n \"enableRESTAPI\":
true\n}"
Is this configuration necessary?
The networking stacks provided by container runtimes such as Docker introduce additional overheads that result in increased latency of UDP packets, so it is strongly recommended that you run Linux containers with host networking mode enabled in order to ensure the smoothest experience for users.
Oficial docker-compose.yml sample
...
signalling:
image: "ghcr.io/epicgames/pixel-streaming-signalling-server:${UNREAL_ENGINE_RELEASE}"
init: true
network_mode: "host"
...
https://unrealcontainers.com/docs/use-cases/dedicated-servers#key-considerations
Hi @mvandervlie,
This project has thus far saved me a bunch of time, so thanks!
I'm seeing an incoming packet message processed, error 401: Unauthorized
error in the Turn pod logs.
Do you know if it should work out of the box without doing a full kustomise rebuild?
Thanks,
Linton
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.