manifests.jinja 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. # Namespace
  2. apiVersion: v1
  3. kind: Namespace
  4. metadata:
  5. name: {{ config.namespace }}
  6. ---
  7. # Secret
  8. apiVersion: v1
  9. kind: Secret
  10. metadata:
  11. name: registration-token
  12. namespace: {{ config.namespace }}
  13. type: Opaque
  14. data:
  15. {%- for k, v in config.env.items() %}
  16. {{ k }}: {{ v | b64encode }}
  17. {%- endfor %}
  18. ---
  19. apiVersion: rbac.authorization.k8s.io/v1
  20. kind: ClusterRole
  21. metadata:
  22. name: ingressclass-viewer
  23. rules:
  24. - apiGroups: ["networking.k8s.io"]
  25. resources: ["ingressclasses"]
  26. verbs: ["get", "list", "watch"]
  27. - apiGroups: [""]
  28. resources: ["nodes"]
  29. verbs: ["get", "list", "watch"]
  30. ---
  31. apiVersion: rbac.authorization.k8s.io/v1
  32. kind: ClusterRoleBinding
  33. metadata:
  34. name: ingressclass-viewer-binding
  35. subjects:
  36. - kind: ServiceAccount
  37. name: gpustack-worker
  38. namespace: {{ config.namespace }}
  39. roleRef:
  40. kind: ClusterRole
  41. name: ingressclass-viewer
  42. apiGroup: rbac.authorization.k8s.io
  43. ---
  44. apiVersion: rbac.authorization.k8s.io/v1
  45. kind: ClusterRole
  46. metadata:
  47. name: pod-cm-creator
  48. rules:
  49. - apiGroups:
  50. - ""
  51. resources:
  52. - "pods"
  53. - "configmaps"
  54. - "secrets"
  55. - "services"
  56. - "pods/log"
  57. - "pods/exec"
  58. verbs:
  59. - "*"
  60. - apiGroups:
  61. - ""
  62. resources:
  63. - persistentvolumeclaims
  64. verbs:
  65. - get
  66. - list
  67. - watch
  68. - apiGroups:
  69. - ""
  70. resources:
  71. - "events"
  72. verbs:
  73. - "create"
  74. ---
  75. apiVersion: v1
  76. kind: ServiceAccount
  77. metadata:
  78. namespace: {{ config.namespace }}
  79. name: gpustack-worker
  80. ---
  81. apiVersion: rbac.authorization.k8s.io/v1
  82. kind: RoleBinding
  83. metadata:
  84. namespace: {{ config.namespace }}
  85. name: pod-cm-creator
  86. subjects:
  87. - kind: ServiceAccount
  88. name: gpustack-worker
  89. namespace: {{ config.namespace }}
  90. roleRef:
  91. kind: ClusterRole
  92. name: pod-cm-creator
  93. apiGroup: rbac.authorization.k8s.io
  94. ---
  95. # Service
  96. apiVersion: v1
  97. kind: Service
  98. metadata:
  99. name: worker
  100. namespace: {{ config.namespace }}
  101. annotations:
  102. prometheus.io/scrape: "true"
  103. prometheus.io/port: "10151"
  104. prometheus.io/path: "/metrics"
  105. spec:
  106. type: ClusterIP
  107. selector:
  108. app: gpustack-worker
  109. ports:
  110. - name: api
  111. port: 10150
  112. targetPort: 10150
  113. - name: metrics
  114. port: 10151
  115. targetPort: 10151