master.yaml.v1.j2 8.5 KB

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