apiVersion: v1 kind: Service metadata: name: spark-opening-book-driver labels: app.kubernetes.io/name: spark-analytics app.kubernetes.io/part-of: nowchess spec: clusterIP: None selector: app: spark-opening-book ports: - name: driver port: 44167 targetPort: 44167 - name: blockmanager port: 44777 targetPort: 44777 --- apiVersion: v1 kind: Service metadata: name: spark-player-stats-driver labels: app.kubernetes.io/name: spark-analytics app.kubernetes.io/part-of: nowchess spec: clusterIP: None selector: app: spark-player-stats ports: - name: driver port: 44167 targetPort: 44167 - name: blockmanager port: 44777 targetPort: 44777 --- apiVersion: v1 kind: Service metadata: name: spark-player-clustering-driver labels: app.kubernetes.io/name: spark-analytics app.kubernetes.io/part-of: nowchess spec: clusterIP: None selector: app: spark-player-clustering ports: - name: driver port: 44167 targetPort: 44167 - name: blockmanager port: 44777 targetPort: 44777 --- apiVersion: v1 kind: Service metadata: name: spark-player-graph-driver labels: app.kubernetes.io/name: spark-analytics app.kubernetes.io/part-of: nowchess spec: clusterIP: None selector: app: spark-player-graph ports: - name: driver port: 44167 targetPort: 44167 - name: blockmanager port: 44777 targetPort: 44777 --- apiVersion: batch/v1 kind: CronJob metadata: name: spark-opening-book labels: app.kubernetes.io/name: spark-analytics app.kubernetes.io/part-of: nowchess spec: schedule: "0 2 * * *" suspend: true concurrencyPolicy: Forbid jobTemplate: spec: backoffLimit: 1 template: metadata: labels: app: spark-opening-book app.kubernetes.io/name: spark-analytics app.kubernetes.io/part-of: nowchess spec: serviceAccountName: spark-analytics restartPolicy: OnFailure securityContext: fsGroup: 185 imagePullSecrets: - name: ghcr-pull-secret containers: - name: spark-driver image: ghcr.io/now-chess/now-chess-systems/analytics:latest command: - /opt/spark/bin/spark-submit - --master - spark://spark-master:7077 - --conf - spark.executor.instances=1 - --conf - spark.executor.cores=1 - --conf - spark.executor.memory=512m - --conf - spark.driver.memory=512m - --conf - spark.driver.host=spark-opening-book-driver - --conf - spark.driver.port=44167 - --conf - spark.blockManager.port=44777 - --class - de.nowchess.analytics.OpeningBookJob - file:///app/analytics.jar - /spark-output/opening-book - "10" env: - name: NOWCHESS_JDBC_URL valueFrom: secretKeyRef: name: ncs-db-secrets key: STORE_DB_URL - name: NOWCHESS_DB_USER valueFrom: secretKeyRef: name: ncs-db-secrets key: STORE_DB_USER - name: NOWCHESS_DB_PASS valueFrom: secretKeyRef: name: ncs-db-secrets key: STORE_DB_PASSWORD resources: requests: cpu: 50m memory: 64Mi limits: cpu: "1" memory: 1Gi volumeMounts: - name: spark-output mountPath: /spark-output volumes: - name: spark-output persistentVolumeClaim: claimName: spark-analytics-output --- apiVersion: batch/v1 kind: CronJob metadata: name: spark-player-stats labels: app.kubernetes.io/name: spark-analytics app.kubernetes.io/part-of: nowchess spec: schedule: "0 3 * * *" suspend: true concurrencyPolicy: Forbid jobTemplate: spec: backoffLimit: 1 template: metadata: labels: app: spark-player-stats app.kubernetes.io/name: spark-analytics app.kubernetes.io/part-of: nowchess spec: serviceAccountName: spark-analytics restartPolicy: OnFailure securityContext: fsGroup: 185 imagePullSecrets: - name: ghcr-pull-secret containers: - name: spark-driver image: ghcr.io/now-chess/now-chess-systems/analytics:latest command: - /opt/spark/bin/spark-submit - --master - spark://spark-master:7077 - --conf - spark.executor.instances=1 - --conf - spark.executor.cores=1 - --conf - spark.executor.memory=512m - --conf - spark.driver.memory=512m - --conf - spark.driver.host=spark-player-stats-driver - --conf - spark.driver.port=44167 - --conf - spark.blockManager.port=44777 - --class - de.nowchess.analytics.PlayerStatsJob - file:///app/analytics.jar - /spark-output/player-stats env: - name: NOWCHESS_JDBC_URL valueFrom: secretKeyRef: name: ncs-db-secrets key: STORE_DB_URL - name: NOWCHESS_DB_USER valueFrom: secretKeyRef: name: ncs-db-secrets key: STORE_DB_USER - name: NOWCHESS_DB_PASS valueFrom: secretKeyRef: name: ncs-db-secrets key: STORE_DB_PASSWORD resources: requests: cpu: 50m memory: 64Mi limits: cpu: "1" memory: 1Gi volumeMounts: - name: spark-output mountPath: /spark-output volumes: - name: spark-output persistentVolumeClaim: claimName: spark-analytics-output --- apiVersion: batch/v1 kind: CronJob metadata: name: spark-player-clustering labels: app.kubernetes.io/name: spark-analytics app.kubernetes.io/part-of: nowchess spec: schedule: "0 4 * * 0" suspend: true concurrencyPolicy: Forbid jobTemplate: spec: backoffLimit: 1 template: metadata: labels: app: spark-player-clustering app.kubernetes.io/name: spark-analytics app.kubernetes.io/part-of: nowchess spec: serviceAccountName: spark-analytics restartPolicy: OnFailure securityContext: fsGroup: 185 imagePullSecrets: - name: ghcr-pull-secret containers: - name: spark-driver image: ghcr.io/now-chess/now-chess-systems/analytics:latest command: - /opt/spark/bin/spark-submit - --master - spark://spark-master:7077 - --conf - spark.executor.instances=1 - --conf - spark.executor.cores=1 - --conf - spark.executor.memory=512m - --conf - spark.driver.memory=512m - --conf - spark.driver.host=spark-player-clustering-driver - --conf - spark.driver.port=44167 - --conf - spark.blockManager.port=44777 - --class - de.nowchess.analytics.PlayerClusteringJob - file:///app/analytics.jar - /spark-output/player-clusters - "4" env: - name: NOWCHESS_JDBC_URL valueFrom: secretKeyRef: name: ncs-db-secrets key: STORE_DB_URL - name: NOWCHESS_DB_USER valueFrom: secretKeyRef: name: ncs-db-secrets key: STORE_DB_USER - name: NOWCHESS_DB_PASS valueFrom: secretKeyRef: name: ncs-db-secrets key: STORE_DB_PASSWORD resources: requests: cpu: 50m memory: 64Mi limits: cpu: "1" memory: 1Gi volumeMounts: - name: spark-output mountPath: /spark-output volumes: - name: spark-output persistentVolumeClaim: claimName: spark-analytics-output --- apiVersion: batch/v1 kind: CronJob metadata: name: spark-player-graph labels: app.kubernetes.io/name: spark-analytics app.kubernetes.io/part-of: nowchess spec: schedule: "0 5 * * 0" suspend: true concurrencyPolicy: Forbid jobTemplate: spec: backoffLimit: 1 template: metadata: labels: app: spark-player-graph app.kubernetes.io/name: spark-analytics app.kubernetes.io/part-of: nowchess spec: serviceAccountName: spark-analytics restartPolicy: OnFailure securityContext: fsGroup: 185 imagePullSecrets: - name: ghcr-pull-secret containers: - name: spark-driver image: ghcr.io/now-chess/now-chess-systems/analytics:latest command: - /opt/spark/bin/spark-submit - --master - spark://spark-master:7077 - --conf - spark.executor.instances=1 - --conf - spark.executor.cores=1 - --conf - spark.executor.memory=512m - --conf - spark.driver.memory=512m - --conf - spark.driver.host=spark-player-graph-driver - --conf - spark.driver.port=44167 - --conf - spark.blockManager.port=44777 - --class - de.nowchess.analytics.PlayerGraphJob - file:///app/analytics.jar - /spark-output/player-graph env: - name: NOWCHESS_JDBC_URL valueFrom: secretKeyRef: name: ncs-db-secrets key: STORE_DB_URL - name: NOWCHESS_DB_USER valueFrom: secretKeyRef: name: ncs-db-secrets key: STORE_DB_USER - name: NOWCHESS_DB_PASS valueFrom: secretKeyRef: name: ncs-db-secrets key: STORE_DB_PASSWORD resources: requests: cpu: 50m memory: 64Mi limits: cpu: "1" memory: 1Gi volumeMounts: - name: spark-output mountPath: /spark-output volumes: - name: spark-output persistentVolumeClaim: claimName: spark-analytics-output