master.yaml.v1.j2 9.7 KB

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