master.yaml.v1.j2 8.7 KB

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