master.yaml.v1.j2 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  1. admissionConfig:
  2. {% if 'admission_plugin_config' in openshift.master %}
  3. pluginConfig:{{ openshift.master.admission_plugin_config | to_padded_yaml(level=2) }}
  4. {% endif %}
  5. apiLevels:
  6. {% if not openshift.common.version_gte_3_1_or_1_1 | bool %}
  7. - v1beta3
  8. {% endif %}
  9. - v1
  10. apiVersion: v1
  11. assetConfig:
  12. logoutURL: "{{ openshift.master.logout_url | default('') }}"
  13. masterPublicURL: {{ openshift.master.public_api_url }}
  14. publicURL: {{ openshift.master.public_console_url }}/
  15. {% if 'logging_public_url' in openshift.master %}
  16. loggingPublicURL: {{ openshift.master.logging_public_url }}
  17. {% endif %}
  18. {% if openshift_hosted_metrics_deploy_url is defined %}
  19. metricsPublicURL: {{ openshift_hosted_metrics_deploy_url }}
  20. {% endif %}
  21. {% if 'extension_scripts' in openshift.master %}
  22. extensionScripts: {{ openshift.master.extension_scripts | to_padded_yaml(1, 2) }}
  23. {% endif %}
  24. {% if 'extension_stylesheets' in openshift.master %}
  25. extensionStylesheets: {{ openshift.master.extension_stylesheets | to_padded_yaml(1, 2) }}
  26. {% endif %}
  27. {% if 'extensions' in openshift.master %}
  28. extensions: {{ openshift.master.extensions | to_padded_yaml(1, 2) }}
  29. {% endif %}
  30. servingInfo:
  31. bindAddress: {{ openshift.master.bind_addr }}:{{ openshift.master.console_port }}
  32. bindNetwork: tcp4
  33. certFile: master.server.crt
  34. clientCA: ""
  35. keyFile: master.server.key
  36. maxRequestsInFlight: 0
  37. requestTimeoutSeconds: 0
  38. {% if openshift_master_min_tls_version is defined %}
  39. minTLSVersion: {{ openshift_master_min_tls_version }}
  40. {% endif %}
  41. {% if openshift_master_cipher_suites is defined %}
  42. cipherSuites:
  43. {% for cipher_suite in openshift_master_cipher_suites %}
  44. - {{ cipher_suite }}
  45. {% endfor %}
  46. {% endif %}
  47. {% if openshift.master.audit_config | default(none) is not none and openshift.common.version_gte_3_2_or_1_2 | bool %}
  48. auditConfig:{{ openshift.master.audit_config | to_padded_yaml(level=1) }}
  49. {% endif %}
  50. {% if openshift.common.version_gte_3_3_or_1_3 | bool %}
  51. controllerConfig:
  52. election:
  53. lockName: openshift-master-controllers
  54. serviceServingCert:
  55. signer:
  56. certFile: service-signer.crt
  57. keyFile: service-signer.key
  58. {% endif %}
  59. controllers: '*'
  60. corsAllowedOrigins:
  61. # anchor with start (\A) and end (\z) of the string, make the check case insensitive ((?i)) and escape hostname
  62. {% for origin in ['127.0.0.1', 'localhost', openshift.common.ip, openshift.common.public_ip] | union(openshift.common.all_hostnames) | unique %}
  63. - (?i)\A{{ origin | regex_escape() }}\z
  64. {% endfor %}
  65. {% for custom_origin in openshift.master.custom_cors_origins | default("") %}
  66. - (?i)\A{{ custom_origin | regex_escape() }}\z
  67. {% endfor %}
  68. {% if 'disabled_features' in openshift.master %}
  69. disabledFeatures: {{ openshift.master.disabled_features | to_json }}
  70. {% endif %}
  71. {% if openshift.master.embedded_dns | bool %}
  72. dnsConfig:
  73. bindAddress: {{ openshift.master.bind_addr }}:{{ openshift.master.dns_port }}
  74. bindNetwork: tcp4
  75. {% endif %}
  76. etcdClientInfo:
  77. {% if openshift.common.version_gte_3_2_or_1_2 | bool %}
  78. ca: {{ "ca-bundle.crt" if (openshift.master.embedded_etcd | bool) else "master.etcd-ca.crt" }}
  79. {% else %}
  80. ca: {{ "ca.crt" if (openshift.master.embedded_etcd | bool) else "master.etcd-ca.crt" }}
  81. {% endif %}
  82. certFile: master.etcd-client.crt
  83. keyFile: master.etcd-client.key
  84. urls:
  85. {% for etcd_url in openshift.master.etcd_urls %}
  86. - {{ etcd_url }}
  87. {% endfor %}
  88. {% if openshift.master.embedded_etcd | bool %}
  89. etcdConfig:
  90. address: {{ openshift.common.hostname }}:{{ openshift.master.etcd_port }}
  91. peerAddress: {{ openshift.common.hostname }}:7001
  92. peerServingInfo:
  93. bindAddress: {{ openshift.master.bind_addr }}:7001
  94. certFile: etcd.server.crt
  95. {% if openshift.common.version_gte_3_2_or_1_2 | bool %}
  96. clientCA: ca-bundle.crt
  97. {% else %}
  98. clientCA: ca.crt
  99. {% endif %}
  100. keyFile: etcd.server.key
  101. servingInfo:
  102. bindAddress: {{ openshift.master.bind_addr }}:{{ openshift.master.etcd_port }}
  103. certFile: etcd.server.crt
  104. {% if openshift.common.version_gte_3_2_or_1_2 | bool %}
  105. clientCA: ca-bundle.crt
  106. {% else %}
  107. clientCA: ca.crt
  108. {% endif %}
  109. keyFile: etcd.server.key
  110. storageDirectory: {{ r_openshift_master_data_dir }}/openshift.local.etcd
  111. {% endif %}
  112. etcdStorageConfig:
  113. kubernetesStoragePrefix: kubernetes.io
  114. kubernetesStorageVersion: v1
  115. openShiftStoragePrefix: openshift.io
  116. openShiftStorageVersion: v1
  117. imageConfig:
  118. format: {{ openshift.master.registry_url }}
  119. latest: {{ openshift_master_image_config_latest }}
  120. {% if 'image_policy_config' in openshift.master %}
  121. imagePolicyConfig:{{ openshift.master.image_policy_config | to_padded_yaml(level=1) }}
  122. {% endif %}
  123. kind: MasterConfig
  124. kubeletClientInfo:
  125. {# TODO: allow user specified kubelet port #}
  126. {% if openshift.common.version_gte_3_2_or_1_2 | bool %}
  127. ca: ca-bundle.crt
  128. {% else %}
  129. ca: ca.crt
  130. {% endif %}
  131. certFile: master.kubelet-client.crt
  132. keyFile: master.kubelet-client.key
  133. port: 10250
  134. {% if openshift.master.embedded_kube | bool %}
  135. kubernetesMasterConfig:
  136. {% if not openshift.common.version_gte_3_1_or_1_1 | bool %}
  137. apiLevels:
  138. - v1beta3
  139. - v1
  140. {% endif %}
  141. apiServerArguments: {{ openshift.master.api_server_args | default(None) | to_padded_yaml( level=2 ) }}
  142. {% if r_openshift_master_etcd3_storage or ( r_openshift_master_clean_install and openshift.common.version_gte_3_6 ) %}
  143. storage-backend:
  144. - etcd3
  145. storage-media-type:
  146. - application/vnd.kubernetes.protobuf
  147. {% endif %}
  148. controllerArguments: {{ openshift.master.controller_args | default(None) | to_padded_yaml( level=2 ) }}
  149. masterCount: {{ openshift.master.master_count if openshift.master.cluster_method | default(None) == 'native' else 1 }}
  150. masterIP: {{ openshift.common.ip }}
  151. podEvictionTimeout: {{ openshift.master.pod_eviction_timeout | default("") }}
  152. proxyClientInfo:
  153. certFile: master.proxy-client.crt
  154. keyFile: master.proxy-client.key
  155. schedulerArguments: {{ openshift_master_scheduler_args | default(None) | to_padded_yaml( level=3 ) }}
  156. schedulerConfigFile: {{ openshift_master_scheduler_conf }}
  157. servicesNodePortRange: "{{ openshift_node_port_range | default("") }}"
  158. servicesSubnet: {{ openshift.common.portal_net }}
  159. staticNodeNames: {{ openshift_node_ips | default([], true) }}
  160. {% endif %}
  161. masterClients:
  162. {# TODO: allow user to set externalKubernetesKubeConfig #}
  163. {% if openshift.common.version_gte_3_3_or_1_3 | bool %}
  164. externalKubernetesClientConnectionOverrides:
  165. acceptContentTypes: application/vnd.kubernetes.protobuf,application/json
  166. contentType: application/vnd.kubernetes.protobuf
  167. burst: {{ openshift_master_external_ratelimit_burst | default(400) }}
  168. qps: {{ openshift_master_external_ratelimit_qps | default(200) }}
  169. {% endif %}
  170. externalKubernetesKubeConfig: ""
  171. {% if openshift.common.version_gte_3_3_or_1_3 | bool %}
  172. openshiftLoopbackClientConnectionOverrides:
  173. acceptContentTypes: application/vnd.kubernetes.protobuf,application/json
  174. contentType: application/vnd.kubernetes.protobuf
  175. burst: {{ openshift_master_loopback_ratelimit_burst | default(600) }}
  176. qps: {{ openshift_master_loopback_ratelimit_qps | default(300) }}
  177. {% endif %}
  178. openshiftLoopbackKubeConfig: openshift-master.kubeconfig
  179. masterPublicURL: {{ openshift.master.public_api_url }}
  180. networkConfig:
  181. clusterNetworkCIDR: {{ openshift.master.sdn_cluster_network_cidr }}
  182. hostSubnetLength: {{ openshift.master.sdn_host_subnet_length }}
  183. {% if openshift.common.version_gte_3_7 | bool %}
  184. clusterNetworks:
  185. - cidr: {{ openshift.master.sdn_cluster_network_cidr }}
  186. hostSubnetLength: {{ openshift.master.sdn_host_subnet_length }}
  187. {% endif %}
  188. {% if r_openshift_master_use_openshift_sdn or r_openshift_master_use_nuage or r_openshift_master_use_contiv or r_openshift_master_use_kuryr or r_openshift_master_sdn_network_plugin_name == 'cni' %}
  189. networkPluginName: {{ r_openshift_master_sdn_network_plugin_name_default }}
  190. {% endif %}
  191. # serviceNetworkCIDR must match kubernetesMasterConfig.servicesSubnet
  192. serviceNetworkCIDR: {{ openshift.common.portal_net }}
  193. externalIPNetworkCIDRs: {{ openshift_master_external_ip_network_cidrs | default(["0.0.0.0/0"]) | to_padded_yaml(1,2) }}
  194. {% if openshift_master_ingress_ip_network_cidr is defined %}
  195. ingressIPNetworkCIDR: {{ openshift_master_ingress_ip_network_cidr }}
  196. {% endif %}
  197. oauthConfig:
  198. {% if 'oauth_always_show_provider_selection' in openshift.master %}
  199. alwaysShowProviderSelection: {{ openshift.master.oauth_always_show_provider_selection }}
  200. {% endif %}
  201. {% if 'oauth_templates' in openshift.master %}
  202. templates:{{ openshift.master.oauth_templates | to_padded_yaml(level=2) }}
  203. {% endif %}
  204. assetPublicURL: {{ openshift.master.public_console_url }}/
  205. grantConfig:
  206. method: {{ openshift.master.oauth_grant_method }}
  207. identityProviders:
  208. {% for line in translated_identity_providers.splitlines() %}
  209. {{ line }}
  210. {% endfor %}
  211. {% if openshift.common.version_gte_3_2_or_1_2 | bool %}
  212. masterCA: ca-bundle.crt
  213. {% else %}
  214. masterCA: ca.crt
  215. {% endif %}
  216. masterPublicURL: {{ openshift.master.public_api_url }}
  217. masterURL: {{ openshift.master.api_url }}
  218. sessionConfig:
  219. sessionMaxAgeSeconds: {{ openshift.master.session_max_seconds }}
  220. sessionName: {{ openshift.master.session_name }}
  221. {% if openshift.master.session_auth_secrets is defined and openshift.master.session_encryption_secrets is defined %}
  222. sessionSecretsFile: {{ openshift.master.session_secrets_file }}
  223. {% endif %}
  224. tokenConfig:
  225. accessTokenMaxAgeSeconds: {{ openshift.master.access_token_max_seconds }}
  226. authorizeTokenMaxAgeSeconds: {{ openshift.master.auth_token_max_seconds }}
  227. pauseControllers: false
  228. policyConfig:
  229. bootstrapPolicyFile: {{ openshift_master_policy }}
  230. openshiftInfrastructureNamespace: openshift-infra
  231. openshiftSharedResourcesNamespace: openshift
  232. projectConfig:
  233. defaultNodeSelector: "{{ openshift.master.default_node_selector }}"
  234. projectRequestMessage: "{{ openshift.master.project_request_message }}"
  235. projectRequestTemplate: "{{ openshift.master.project_request_template }}"
  236. securityAllocator:
  237. mcsAllocatorRange: "{{ openshift.master.mcs_allocator_range }}"
  238. mcsLabelsPerProject: {{ openshift.master.mcs_labels_per_project }}
  239. uidAllocatorRange: "{{ openshift.master.uid_allocator_range }}"
  240. routingConfig:
  241. subdomain: "{{ openshift_master_default_subdomain | default("") }}"
  242. serviceAccountConfig:
  243. limitSecretReferences: {{ openshift_master_saconfig_limitsecretreferences | default(false) }}
  244. managedNames:
  245. - default
  246. - builder
  247. - deployer
  248. {% if openshift.common.version_gte_3_2_or_1_2 | bool %}
  249. masterCA: ca-bundle.crt
  250. {% else %}
  251. masterCA: ca.crt
  252. {% endif %}
  253. privateKeyFile: serviceaccounts.private.key
  254. publicKeyFiles:
  255. - serviceaccounts.public.key
  256. servingInfo:
  257. bindAddress: {{ openshift.master.bind_addr }}:{{ openshift.master.api_port }}
  258. bindNetwork: tcp4
  259. certFile: master.server.crt
  260. clientCA: ca.crt
  261. keyFile: master.server.key
  262. maxRequestsInFlight: {{ openshift.master.max_requests_inflight }}
  263. requestTimeoutSeconds: 3600
  264. {% if openshift.master.named_certificates | default([]) | length > 0 %}
  265. namedCertificates:
  266. {% for named_certificate in openshift.master.named_certificates %}
  267. - certFile: {{ named_certificate['certfile'] }}
  268. keyFile: {{ named_certificate['keyfile'] }}
  269. names:
  270. {% for name in named_certificate['names'] %}
  271. - "{{ name }}"
  272. {% endfor %}
  273. {% endfor %}
  274. {% endif %}
  275. {% if openshift_master_min_tls_version is defined %}
  276. minTLSVersion: {{ openshift_master_min_tls_version }}
  277. {% endif %}
  278. {% if openshift_master_cipher_suites is defined %}
  279. cipherSuites:
  280. {% for cipher_suite in openshift_master_cipher_suites %}
  281. - {{ cipher_suite }}
  282. {% endfor %}
  283. {% endif %}
  284. volumeConfig:
  285. dynamicProvisioningEnabled: {{ openshift.master.dynamic_provisioning_enabled }}