onecloud-manifests.yaml.j2 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. ---
  2. # OnecloudCluster CRD
  3. apiVersion: apiextensions.k8s.io/v1
  4. kind: CustomResourceDefinition
  5. metadata:
  6. annotations:
  7. helm.sh/hook: pre-install
  8. creationTimestamp: null
  9. name: onecloudclusters.onecloud.yunion.io
  10. spec:
  11. conversion:
  12. strategy: None
  13. group: onecloud.yunion.io
  14. names:
  15. kind: OnecloudCluster
  16. listKind: OnecloudClusterList
  17. plural: onecloudclusters
  18. shortNames:
  19. - onecloud
  20. - oc
  21. singular: onecloudcluster
  22. scope: Namespaced
  23. versions:
  24. - additionalPrinterColumns:
  25. - description: The image for keystone service
  26. jsonPath: .spec.keystone.image
  27. name: keystone
  28. type: string
  29. name: v1alpha1
  30. schema:
  31. openAPIV3Schema:
  32. properties:
  33. spec:
  34. x-kubernetes-preserve-unknown-fields: true
  35. status:
  36. x-kubernetes-preserve-unknown-fields: true
  37. type: object
  38. served: true
  39. storage: true
  40. ---
  41. # onecloud cluster
  42. apiVersion: "onecloud.yunion.io/v1alpha1"
  43. kind: OnecloudCluster
  44. metadata:
  45. name: default
  46. namespace: {{ namespace }}
  47. annotations:
  48. onecloud.yunion.io/edition: "{{ edition }}"
  49. spec:
  50. mysql:
  51. host: "{{ db_host }}"
  52. port: {{ db_port }}
  53. username: "{{ db_user }}"
  54. password: "{{ db_password }}"
  55. {% if ch_password is defined and ch_password|length > 0 %}
  56. clickhouse:
  57. host: "{{ node_ip }}"
  58. password: "{{ ch_password }}"
  59. port: {{ ch_port }}
  60. username: default
  61. {% endif %}
  62. region: "{{ region }}"
  63. zone: "{{ zone }}"
  64. imageRepository: "{{ image_repository }}"
  65. version: "{{ onecloud_version }}"
  66. {% if use_hyper_image %}
  67. useHyperImage: true
  68. {% endif %}
  69. loadBalancerEndpoint: "{{ api_endpoint }}"
  70. {% if disable_resource_management %}
  71. disableResourceManagement: true
  72. {% else %}
  73. disableResourceManagement: false
  74. {% endif %}
  75. productVersion: {{ product_version }}
  76. {% if enable_minio %}
  77. minio:
  78. enable: true
  79. glance:
  80. switchToS3: true
  81. {% endif %}
  82. {% if ip_type == 'ipv6' %}
  83. ipv6Cluster: true
  84. {% endif %}
  85. onecloudServiceOperator:
  86. disable: true
  87. ---
  88. # operator related resources
  89. apiVersion: v1
  90. kind: Namespace
  91. metadata:
  92. name: {{ namespace }}
  93. ---
  94. kind: ClusterRoleBinding
  95. apiVersion: rbac.authorization.k8s.io/v1
  96. metadata:
  97. name: onecloud-operator
  98. subjects:
  99. - kind: ServiceAccount
  100. name: onecloud-operator
  101. namespace: {{ namespace }}
  102. roleRef:
  103. kind: ClusterRole
  104. name: cluster-admin
  105. apiGroup: rbac.authorization.k8s.io
  106. ---
  107. kind: ServiceAccount
  108. apiVersion: v1
  109. metadata:
  110. name: onecloud-operator
  111. namespace: {{ namespace }}
  112. ---
  113. apiVersion: scheduling.k8s.io/v1
  114. kind: PriorityClass
  115. metadata:
  116. name: onecloud-operator-critical
  117. value: 1000000000
  118. globalDefault: false
  119. description: "This priority class should be used for onecloud operator service pods only."
  120. ---
  121. apiVersion: apps/v1
  122. kind: Deployment
  123. metadata:
  124. name: onecloud-operator
  125. namespace: {{ namespace }}
  126. annotations:
  127. scheduler.alpha.kubernetes.io/critical-pod: ''
  128. labels:
  129. k8s-app: onecloud-operator
  130. spec:
  131. replicas: 1
  132. selector:
  133. matchLabels:
  134. k8s-app: onecloud-operator
  135. template:
  136. metadata:
  137. labels:
  138. k8s-app: onecloud-operator
  139. spec:
  140. affinity:
  141. nodeAffinity:
  142. preferredDuringSchedulingIgnoredDuringExecution:
  143. - weight: 50
  144. preference:
  145. matchExpressions:
  146. - key: onecloud.yunion.io/controller
  147. operator: In
  148. values:
  149. - enable
  150. serviceAccount: onecloud-operator
  151. priorityClassName: onecloud-operator-critical
  152. tolerations:
  153. - key: node-role.kubernetes.io/master
  154. effect: NoSchedule
  155. - key: node-role.kubernetes.io/controlplane
  156. effect: NoSchedule
  157. containers:
  158. - name: onecloud-operator
  159. image: {{ image_repository }}/onecloud-operator:{{ onecloud_version }}
  160. imagePullPolicy: IfNotPresent
  161. command:
  162. - "/bin/onecloud-controller-manager"
  163. - "-disable-init-crd"
  164. - "-sync-user"
  165. env:
  166. - name: NAMESPACE
  167. valueFrom:
  168. fieldRef:
  169. fieldPath: metadata.namespace
  170. ---