# used by ../skaffold.yaml --- apiVersion: v1 kind: ServiceAccount metadata: name: mc-router --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: services-watcher rules: - apiGroups: [""] resources: ["services"] verbs: ["watch","list"] - apiGroups: ["apps"] resources: ["statefulsets"] verbs: ["watch","list","patch"] - apiGroups: ["apps"] resources: ["statefulsets/scale"] verbs: ["get"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: mc-router-services-watcher subjects: - kind: ServiceAccount name: mc-router namespace: default roleRef: kind: Role name: services-watcher apiGroup: rbac.authorization.k8s.io --- apiVersion: apps/v1 kind: Deployment metadata: labels: app: mc-router name: mc-router spec: selector: matchLabels: app: mc-router strategy: type: Recreate template: metadata: labels: app: mc-router spec: serviceAccountName: mc-router containers: - image: itzg/mc-router name: mc-router # Add "--auto-scale-up" here for https://github.com/itzg/mc-router/#auto-scale-up args: - --api-binding - :8080 - --in-kube-cluster env: - name: KUBE_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace ports: - name: proxy containerPort: 25565 - name: web containerPort: 8080 resources: requests: memory: 50Mi cpu: "100m" limits: memory: 100Mi cpu: "250m" --- apiVersion: v1 kind: Service metadata: name: mc-router spec: selector: app: mc-router ports: - protocol: TCP port: 25565 targetPort: proxy type: NodePort