Skip to content

Instantly share code, notes, and snippets.

@ducan-ne
Last active December 4, 2021 18:11
Show Gist options
  • Save ducan-ne/140a0b9f316e626d85d5c3d7444ad8ce to your computer and use it in GitHub Desktop.
Save ducan-ne/140a0b9f316e626d85d5c3d7444ad8ce to your computer and use it in GitHub Desktop.
xrengine config
# Copyright 2018 Google LLC All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Declare variables to be passed into your templates.
agones:
featureGates: "RollingUpdateOnReady=true"
metrics:
prometheusEnabled: true
prometheusServiceDiscovery: true
stackdriverEnabled: false
stackdriverProjectID: ""
stackdriverLabels: ""
rbacEnabled: true
registerServiceAccounts: true
registerWebhooks: true
registerApiService: true
crds:
install: true
cleanupOnDelete: true
serviceaccount:
controller:
name: agones-controller
sdk:
name: agones-sdk
createPriorityClass: true
priorityClassName: agones-system
controller:
resources: {}
nodeSelector: {}
tolerations:
- key: "agones.dev/agones-system"
operator: "Equal"
value: "true"
effect: "NoExecute"
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 1
preference:
matchExpressions:
- key: agones.dev/agones-system
operator: Exists
generateTLS: true
safeToEvict: false
persistentLogs: true
persistentLogsSizeLimitMB: 10000
logLevel: info
numWorkers: 100
apiServerQPS: 400
apiServerQPSBurst: 500
http:
port: 8080
healthCheck:
initialDelaySeconds: 3
periodSeconds: 3
failureThreshold: 3
timeoutSeconds: 1
ping:
install: true
resources: {}
nodeSelector: {}
tolerations:
- key: "agones.dev/agones-system"
operator: "Equal"
value: "true"
effect: "NoExecute"
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 1
preference:
matchExpressions:
- key: agones.dev/agones-system
operator: Exists
replicas: 2
http:
expose: true
response: ok
port: 80
serviceType: NodePort
tcp:
expose: true
rateLimit: 20
port: 50000
serviceType: NodePort
healthCheck:
initialDelaySeconds: 3
periodSeconds: 3
failureThreshold: 3
timeoutSeconds: 1
allocator:
install: true
healthCheck:
initialDelaySeconds: 3
periodSeconds: 3
failureThreshold: 3
timeoutSeconds: 1
tolerations:
- key: "agones.dev/agones-system"
operator: "Equal"
value: "true"
effect: "NoExecute"
affinity:
nodeAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- weight: 1
preference:
matchExpressions:
- key: agones.dev/agones-system
operator: Exists
replicas: 3
http:
port: 443
serviceType: NodePort
generateTLS: true
image:
registry: gcr.io/agones-images
tag: 1.17.0
controller:
name: agones-controller
pullPolicy: IfNotPresent
sdk:
name: agones-sdk
cpuRequest: 0
cpuLimit: 0
memoryRequest: 0
memoryLimit: 0
alwaysPull: false
ping:
name: agones-ping
pullPolicy: IfNotPresent
allocator:
name: agones-allocator
pullPolicy: IfNotPresent
gameservers:
namespaces:
- default
minPort: 7000
maxPort: 8000
controller:
kind: Deployment
replicaCount: 3
hostNetwork: false
service:
enableHttps: true
type: "LoadBalancer"
config:
server-tokens: "false"
use-forwarded-headers: "true"
compute-full-forwarded-for: "true"
client:
config:
publicRuntimeConfig:
apiServer: https://pawcity-api.clgt.io
appServer: https://pawcity.clgt.io
gameserver: https://pawcity-gameserver.clgt.io
gameserverDomain: pawcity-gameserver.clgt.io
dev: true
feathersStoreKey: TheOverlay-Auth-Store
localStorageKey: theoverlay-client-store-key-v1
loginDisabled: true
logo: "./logo.svg"
gaMeasurementId: '<GOOGLE_ANALYTICS_MEASUREMENT_ID>'
rootRedirect: false
siteDescription: Connected Worlds for Everyone
siteTitle: XREngine
title: "The Overlay"
auth:
enableSmsMagicLink: true
enableEmailMagicLink: true
enableUserPassword: true
enableGithubSocial: true
enableFacebookSocial: true
enableGoogleSocial: true
enableLinkedInSocial: true
enableTwitterSocial: true
alert:
timeout: 10000
offlineMode: false
staticPages:
termsOfService: "/terms-of-service"
extraEnv:
API_ASSETS_ROUTE: /static-resource
API_ASSETS_ACTION: assets
API_MEDIA_ROUTE: /media
API_MEDIA_SEARCH_ROUTE: "-search"
API_META_ROUTE: /meta
API_PROJECTS_ROUTE: /project
API_RESOLVE_MEDIA_ROUTE: /resolve-media
API_PROJECT_PUBLISH_ACTION: /publish-project
API_SCENES_ROUTE: /collection
API_SERVER_ADDRESS: pawcity-api.clgt.io
API_SOCKET_ENDPOINT: /socket
API_SERVER: https://pawcity-api.clgt.io
CLIENT_ADDRESS: https://pawcity.clgt.io
CLIENT_ENABLED: "true"
CLIENT_SCENE_ROUTE: /scenes/
CLIENT_LOCAL_SCENE_ROUTE: "/scene.html?scene_id="
CORS_PROXY_SERVER: https://pawcity-api.clgt.io
HOST_IP: https://pawcity-api.clgt.io
HOST_PORT: "3000"
GITHUB_ORG: xrengine
GITHUB_REPO: spoke
IS_MOZ: "false"
NEXT_PUBLIC_API_SERVER: https://pawcity-api.clgt.io
NODE_ENV: production
NON_CORS_PROXY_DOMAINS: "reticulum.io,clgt.io,amazonaws.com"
ROUTER_BASE_PATH: /spoke
SERVER_ENABLED: "false"
SITE_DESC: Connected Worlds for Everyone
SITE_TITLE: TheOverlay
THUMBNAIL_ROUTE: /thumbnail/
THUMBNAIL_SERVER: https://pawcity-api.clgt.io
USE_DIRECT_UPLOAD_API: "true"
USE_HTTPS: "true"
image:
repository: lagunalabs/xrengine
pullPolicy: IfNotPresent
affinity:
ingress:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
"cert-manager.io/cluster-issuer": "letsencrypt-prod"
hosts:
- host: pawcity.clgt.io
paths:
- /
tls:
- hosts:
- pawcity.clgt.io
secretName: client-tls
service:
type: NodePort
domain: clgt.io
mariadb:
db:
name: xrengine
password: <password>
host: "159.65.5.25"
user: server
enabled: false
externalHost: "159.65.5.25"
rts:
extraEnv:
NAF_LISTEN_PORT: "8081"
api:
config:
aws:
keys:
access_key_id: <S3_USER_ACCESS_KEY>
secret_access_key: <S3_USER_SECRET_KEY>
s3:
region: us-east-1
static_resource_bucket: <S3_STATIC_RESOURCES_BUCKET_NAME>
cloudfront:
domain: resources.clgt.io
sns:
access_key_id: <SNS_USER_ACCESS_KEY>
application_id: <AWS_SNS_APPLICATION_ID>
region: us-east-1
secret_access_key: <SNS_USER_ACCESS_KEY>
sender_id: <AWS_SNS_SENDER_ID>
host: https://pawcity.clgt.io/
extraEnv:
APP_HOST: https://pawcity.clgt.io
APP_URL: https://pawcity.clgt.io
AUTH_SECRET: <INSERT_A_UUID_OR_SOMETHING_SIMILAR>
AWS_SMS_ACCESS_KEY_ID: <SNS_USER_ACCESS_KEY>
AWS_SMS_REGION: us-east-1
AWS_SMS_SECRET_ACCESS_KEY: <SNS_USER_ACCESS_KEY>
AWS_SMS_TOPIC_ARN: <SNS_TOPIC_ARN>
CLIENT_ENABLED: "false"
CERT: certs/cert.pem
KEY: certs/key.pem
FACEBOOK_CALLBACK_URL: https://pawcity.clgt.io/auth/oauth/facebook
FACEBOOK_CLIENT_ID: "<FB_OAUTH_CLIENT_ID>"
FACEBOOK_CLIENT_SECRET: "<FB_OAUTH_SECRET>"
FORCE_DB_REFRESH: "false"
GAMESERVER_DOMAIN: pawcity-gameserver.clgt.io
GITHUB_CALLBACK_URL: https://pawcity.clgt.io/auth/oauth/github
GITHUB_CLIENT_ID: "<GITHUB_OAUTH_CLIENT_ID>"
GITHUB_CLIENT_SECRET: "<GITHUB_OAUTH_SECRET>"
GOOGLE_CALLBACK_URL: https://pawcity.clgt.io/auth/oauth/google
GOOGLE_CLIENT_ID: "<GOOGLE_OAUTH_CLIENT_ID>"
GOOGLE_CLIENT_SECRET: "<GOOGLE_OAUTH_SECRET>"
MAGICLINK_EMAIL_SUBJECT: Login to TheOverlay
MAIL_FROM: info@login.catpunk.n et
SERVER_ENABLED: "true"
SERVER_HOST: "pawcity-api.clgt.io"
SERVER_PORT: "3030"
SMTP_FROM_EMAIL: info@login.catpunk.net
SMTP_FROM_NAME: noreply
SMTP_HOST: email-smtp.<SES_REGION>.amazonaws.com
SMTP_PASS: <AWS_SMTP_PASSWORD>
SMTP_PORT: "465"
SMTP_SECURE: "true"
SMTP_USER: <AWS_SMTP_USER_ID>
STORAGE_PROVIDER: aws
STORAGE_AWS_ACCESS_KEY_ID: <S3_USER_ACCESS_KEY>
STORAGE_AWS_ACCESS_KEY_SECRET: <S3_USER_SECRET>
STORAGE_CLOUDFRONT_DOMAIN: resources.catpunk.net
STORAGE_CLOUDFRONT_DISTRIBUTION_ID: <cloudfront_distribution_id>
STORAGE_S3_REGION: us-east-1
STORAGE_S3_STATIC_RESOURCE_BUCKET: <S3_STATIC_RESOURCES_BUCKET_NAME>
STORAGE_S3_AVATAR_DIRECTORY: avatars
DEFAULT_AVATAR_ID: Allison
AVATAR_FILE_ALLOWED_EXTENSIONS: ".glb,.gltf,.vrm,.fbx"
MIN_AVATAR_FILE_SIZE: "0"
MAX_AVATAR_FILE_SIZE: "15728640"
MIN_THUMBNAIL_FILE_SIZE: "0"
MAX_THUMBNAIL_FILE_SIZE: "2097152"
STORAGE_S3_DEV_MODE: dev
PRESIGNED_URL_EXPIRATION_DURATION: "3600"
image:
repository: lagunalabs/xrengine
service:
type: NodePort
affinity:
ingress:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
nginx.ingress.kubernetes.io/enable-cors: "true"
nginx.ingress.kubernetes.io/cors-allow-origin: https://pawcity.clgt.io
nginx.ingress.kubernetes.io/proxy-body-size: 256m
nginx.ingress.kubernetes.io/affinity: cookie
nginx.ingress.kubernetes.io/affinity-mode: persistent
"cert-manager.io/cluster-issuer": "letsencrypt-prod"
hosts:
- host: pawcity-api.clgt.io
paths:
- /
tls:
- hosts:
- pawcity-api.clgt.io
secretName: api-tls
release:
name: prod
media:
enabled: false
config:
aws:
keys:
access_key_id: <IAM_USER_ACCESS_KEY>
secret_access_key: <IAM_USER_SECRET_KEY>
s3:
region: us-east-1
static_resource_bucket: theoverlay-static-resources
cloudfront:
domain: resources.clgt.io
sns:
access_key_id: <SNS_USER_ACCESS_KEY>
application_id: <AWS_SNS_APPLICATION_ID>
region: us-east-1
secret_access_key: <SNS_USER_ACCESS_KEY>
sender_id: <AWS_SNS_SENDER_ID>
host: https://pawcity.clgt.io/
extraEnv:
APP_HOST: pawcity.clgt.io
APP_URL: https://pawcity.clgt.io
AUTH_SECRET: <INSERT_A_UUID_OR_SOMETHING_SIMILAR>
AWS_SMS_ACCESS_KEY_ID: <SNS_USER_ACCESS_KEY>
AWS_SMS_REGION: us-east-1
AWS_SMS_SECRET_ACCESS_KEY: <SNS_USER_ACCESS_KEY>
AWS_SMS_TOPIC_ARN: <SNS_TOPIC_ARN>
FACEBOOK_CALLBACK_URL: https://pawcity.clgt.io/auth/oauth/facebook
FACEBOOK_CLIENT_ID: "<FB_OAUTH_CLIENT_ID>"
FACEBOOK_CLIENT_SECRET: "<FB_OAUTH_SECRET>"
FORCE_DB_REFRESH: "false"
GITHUB_CALLBACK_URL: https://pawcity.clgt.io/auth/oauth/github
GITHUB_CLIENT_ID: "<GITHUB_OAUTH_CLIENT_ID>"
GITHUB_CLIENT_SECRET: "<GITHUB_OAUTH_SECRET>"
GOOGLE_CALLBACK_URL: https://pawcity.clgt.io/auth/oauth/google
GOOGLE_CLIENT_ID: "<GOOGLE_OAUTH_CLIENT_ID>"
GOOGLE_CLIENT_SECRET: "<GOOGLE_OAUTH_SECRET>"
MAGICLINK_EMAIL_SUBJECT: Login to TheOverlay
MAIL_FROM: info@login.catpunk.net
SERVER_ENABLED: "true"
SERVER_HOST: "pawcity-api.clgt.io"
SMTP_FROM_EMAIL: info@login.catpunk.net
SMTP_FROM_NAME: noreply
SMTP_HOST: email-smtp.<SES_REGION>.amazonaws.com
SMTP_PASS: <AWS_SMTP_PASSWORD>
SMTP_PORT: "465"
SMTP_SECURE: "true"
SMTP_USER: <AWS_SMTP_USER_ID>
STORAGE_PROVIDER: aws
STORAGE_AWS_ACCESS_KEY_ID: <S3_USER_ACCESS_KEY>
STORAGE_AWS_ACCESS_KEY_SECRET: <S3_USER_SECRET>
STORAGE_CLOUDFRONT_DOMAIN: resources.catpunk.net
STORAGE_CLOUDFRONT_DISTRIBUTION_ID: <cloudfront_distribution_id>
STORAGE_S3_REGION: us-east-1
STORAGE_S3_STATIC_RESOURCE_BUCKET: <S3_STATIC_RESOURCES_BUCKET_NAME>
image:
repository: lagunalabs/xrengine
affinity:
ingress:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
nginx.ingress.kubernetes.io/enable-cors: "true"
nginx.ingress.kubernetes.io/cors-allow-origin: https://pawcity.clgt.io
nginx.ingress.kubernetes.io/proxy-body-size: 256m
"cert-manager.io/cluster-issuer": "letsencrypt-prod"
hosts:
- host: pawcity-api.clgt.io
paths:
- /video
service:
type: NodePort
gameserver:
image:
repository: lagunalabs/xrengine
pullPolicy: IfNotPresent
extraEnv:
APP_HOST: pawcity.clgt.io
AUTH_SECRET: <SAME_AUTH_SECRET_AS_IN_API>
APP_URL: https://pawcity.clgt.io
GAMESERVER_ENABLED: "true"
ROUTE53_ACCESS_KEY_ID: <ROUTE53_USER_ACCESS_KEY>
ROUTE53_ACCESS_KEY_SECRET: <ROUTE53_USER_SECRET>
ROUTE53_HOSTED_ZONE_ID: <ROUTE53_HOSTED_ZONE_ID>
RTC_START_PORT: "40000"
RTC_END_PORT: "40099"
RTC_PORT_BLOCK_SIZE: "100"
GAMESERVER_DOMAIN: pawcity-gameserver.clgt.io
GAMESERVER_PORT: "3031"
STORAGE_S3_STATIC_RESOURCE_BUCKET: <STATIC_RESOURCE_BUCKET_NAME>
STORAGE_S3_REGION: us-east-1
STORAGE_CLOUDFRONT_DISTRIBUTION_ID: <cloudfront_distribution_id>
CERT: certs/cert.pem
KEY: certs/key.pem
ingress:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
nginx.ingress.kubernetes.io/enable-cors: "false"
nginx.ingress.kubernetes.io/proxy-body-size: 256m
nginx.ingress.kubernetes.io/affinity: cookie
nginx.ingress.kubernetes.io/affinity-mode: persistent
"cert-manager.io/cluster-issuer": "letsencrypt-prod"
nginx.ingress.kubernetes.io/server-snippet: |
location ~* /socket.io/([a-zA-Z0-9\.]*)/([a-zA-Z0-9\.]*)/?$ {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_pass http://$1:$2/socket.io/?$args;
}
host: pawcity-gameserver.clgt.io
tls:
- hosts:
- pawcity-gameserver.clgt.io
secretName: gamserver-tls
resources:
affinity:
editor:
enabled: false
extraEnv:
BASE_ASSETS_PATH: https://pawcity-api.clgt.io/
CORS_PROXY_SERVER: ""
GA_TRACKING_ID: ""
HUBS_SERVER: pawcity-api.clgt.io
IS_MOZ: "false"
NON_CORS_PROXY_DOMAINS: ""
RETICULUM_SERVER: pawcity-api.clgt.io
SENTRY_DSN: ""
THUMBNAIL_SERVER: ""
affinity:
ingress:
hosts:
- host: pawcity.clgt.io
paths:
- /create
redis:
enabled: false
analytics:
enabled: false
name: xrengine-analytics
replicaCount: 1
extraEnv:
ANALYTICS_ENABLED: "true"
ANALYTICS_PORT: "3030"
ANALYTICS_PROCESS_INTERVAL: "10000"
AUTH_SECRET: <SAME_AUTH_SECRET_AS_IN_API>
STORAGE_S3_REGION: us-east-1
STORAGE_S3_STATIC_RESOURCE_BUCKET: <S3_STATIC_RESOURCES_BUCKET_NAME>
STORAGE_S3_AVATAR_DIRECTORY: avatars
service:
type: ClusterIP
port: 3030
serviceAccount:
create: true
annotations: {}
name:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment