summaryrefslogtreecommitdiffstats
path: root/roles/openshift_master_facts/tasks/main.yml
blob: ef8dcd5fdd827fb8880d30023e5fef51f4818c5e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
---

# Ensure the default sub-domain is set:
- name: Migrate legacy osm_default_subdomain fact
  set_fact:
    openshift_master_default_subdomain: "{{ osm_default_subdomain | default(None) }}"
  when: openshift_master_default_subdomain is not defined

- name: Verify required variables are set
  fail:
    msg: openshift_master_default_subdomain must be set to deploy metrics
  when: openshift_hosted_metrics_deploy | default(false) | bool and openshift_master_default_subdomain | default("") == ""

# NOTE: These metrics variables are unfortunately needed by both the master and the metrics roles
# to properly configure the master-config.yaml file.
#
# NOTE: Today only changing the hostname for the metrics public URL is supported, the
# path must stay consistent. As such if openshift_hosted_metrics_public_url is set in
# inventory, we extract the hostname, and then reset openshift_hosted_metrics_public_url
# to the format that we know is valid. (This may change in future)
- name: Set g_metrics_hostname
  set_fact:
    g_metrics_hostname: "{{ openshift_hosted_metrics_public_url
                        | default('hawkular-metrics.' ~ (openshift_master_default_subdomain))
                        | oo_hostname_from_url }}"

- set_fact:
    openshift_hosted_metrics_deploy_url: "https://{{ g_metrics_hostname }}/hawkular/metrics"
  when: (openshift_hosted_metrics_deploy | default(false) | bool) or (openshift_hosted_metrics_public_url is defined)

- name: Set master facts
  openshift_facts:
    role: master
    local_facts:
      cluster_method: "{{ openshift_master_cluster_method | default(None) }}"
      cluster_hostname: "{{ openshift_master_cluster_hostname | default(None) }}"
      cluster_public_hostname: "{{ openshift_master_cluster_public_hostname | default(None) }}"
      debug_level: "{{ openshift_master_debug_level | default(openshift.common.debug_level) }}"
      api_port: "{{ openshift_master_api_port | default(None) }}"
      api_url: "{{ openshift_master_api_url | default(None) }}"
      api_use_ssl: "{{ openshift_master_api_use_ssl | default(None) }}"
      public_api_url: "{{ openshift_master_public_api_url | default(None) }}"
      console_path: "{{ openshift_master_console_path | default(None) }}"
      console_port: "{{ openshift_master_console_port | default(None) }}"
      console_url: "{{ openshift_master_console_url | default(None) }}"
      console_use_ssl: "{{ openshift_master_console_use_ssl | default(None) }}"
      public_console_url: "{{ openshift_master_public_console_url | default(None) }}"
      logging_public_url: "{{ openshift_master_logging_public_url | default(None) }}"
      logout_url: "{{ openshift_master_logout_url | default(None) }}"
      extension_scripts: "{{ openshift_master_extension_scripts | default(None) }}"
      extension_stylesheets: "{{ openshift_master_extension_stylesheets | default(None) }}"
      extensions: "{{ openshift_master_extensions | default(None) }}"
      etcd_hosts: "{{ openshift_master_etcd_hosts | default(None) }}"
      etcd_port: "{{ openshift_master_etcd_port | default(None) }}"
      etcd_use_ssl: "{{ openshift_master_etcd_use_ssl | default(None) }}"
      etcd_urls: "{{ openshift_master_etcd_urls | default(None) }}"
      embedded_etcd: "{{ openshift_master_embedded_etcd | default(None) }}"
      embedded_kube: "{{ openshift_master_embedded_kube | default(None) }}"
      embedded_dns: "{{ openshift_master_embedded_dns | default(None) }}"
      # defaults to 8053 when using dnsmasq in 1.2/3.2
      dns_port: "{{ openshift_master_dns_port | default(None) }}"
      bind_addr: "{{ openshift_master_bind_addr | default(None) }}"
      pod_eviction_timeout: "{{ openshift_master_pod_eviction_timeout | default(None) }}"
      session_max_seconds: "{{ openshift_master_session_max_seconds | default(None) }}"
      session_name: "{{ openshift_master_session_name | default(None) }}"
      session_secrets_file: "{{ openshift_master_session_secrets_file | default(None) }}"
      session_auth_secrets: "{{ openshift_master_session_auth_secrets | default(None) }}"
      session_encryption_secrets: "{{ openshift_master_session_encryption_secrets | default(None) }}"
      access_token_max_seconds: "{{ openshift_master_access_token_max_seconds | default(None) }}"
      auth_token_max_seconds: "{{ openshift_master_auth_token_max_seconds | default(None) }}"
      identity_providers: "{{ openshift_master_identity_providers | default(None) }}"
      htpasswd_users: "{{ openshift_master_htpasswd_users | default(lookup('file', openshift_master_htpasswd_file) | oo_htpasswd_users_from_file if openshift_master_htpasswd_file is defined else None) }}"
      manage_htpasswd: "{{ openshift_master_manage_htpasswd | default(true) }}"
      ldap_ca: "{{ openshift_master_ldap_ca | default(lookup('file', openshift_master_ldap_ca_file) if openshift_master_ldap_ca_file is defined else None) }}"
      openid_ca: "{{ openshift_master_openid_ca | default(lookup('file', openshift_master_openid_ca_file) if openshift_master_openid_ca_file is defined else None) }}"
      request_header_ca: "{{ openshift_master_request_header_ca | default(lookup('file', openshift_master_request_header_ca_file) if openshift_master_request_header_ca_file is defined else None) }}"
      registry_url: "{{ oreg_url_master | default(oreg_url) | default(None) }}"
      oauth_grant_method: "{{ openshift_master_oauth_grant_method | default(None) }}"
      sdn_cluster_network_cidr: "{{ osm_cluster_network_cidr | default(None) }}"
      sdn_host_subnet_length: "{{ osm_host_subnet_length | default(None) }}"
      custom_cors_origins: "{{ osm_custom_cors_origins | default(None) }}"
      default_node_selector: "{{ osm_default_node_selector | default(None) }}"
      project_request_message: "{{ osm_project_request_message | default(None) }}"
      project_request_template: "{{ osm_project_request_template | default(None) }}"
      mcs_allocator_range: "{{ osm_mcs_allocator_range | default(None) }}"
      mcs_labels_per_project: "{{ osm_mcs_labels_per_project | default(None) }}"
      uid_allocator_range: "{{ osm_uid_allocator_range | default(None) }}"
      registry_selector: "{{ openshift_registry_selector | default(None) }}"
      api_server_args: "{{ osm_api_server_args | default(None) }}"
      controller_args: "{{ osm_controller_args | default(None) }}"
      disabled_features: "{{ osm_disabled_features | default(None) }}"
      master_count: "{{ openshift_master_count | default(None) }}"
      controller_lease_ttl: "{{ osm_controller_lease_ttl | default(None) }}"
      master_image: "{{ osm_image | default(None) }}"
      admission_plugin_config: "{{openshift_master_admission_plugin_config }}"
      kube_admission_plugin_config: "{{openshift_master_kube_admission_plugin_config | default(None) }}"  # deprecated, merged with admission_plugin_config
      oauth_template: "{{ openshift_master_oauth_template | default(None) }}"  # deprecated in origin 1.2 / OSE 3.2
      oauth_templates: "{{ openshift_master_oauth_templates | default(None) }}"
      oauth_always_show_provider_selection: "{{ openshift_master_oauth_always_show_provider_selection | default(None) }}"
      image_policy_config: "{{ openshift_master_image_policy_config | default(None) }}"
      dynamic_provisioning_enabled: "{{ openshift_master_dynamic_provisioning_enabled | default(None) }}"
      max_requests_inflight: "{{ openshift_master_max_requests_inflight | default(None) }}"
      api_env_vars: "{{ openshift_master_api_env_vars | default(None) }}"
      controllers_env_vars: "{{ openshift_master_controllers_env_vars | default(None) }}"
      audit_config: "{{ openshift_master_audit_config | default(None) }}"
      scheduler_args: "{{ openshift_master_scheduler_args | default(None) }}"

- name: Determine if scheduler config present
  stat:
    path: "{{ openshift_master_scheduler_conf }}"
  register: scheduler_config_stat

- name: Set Default scheduler predicates and priorities
  set_fact:
    openshift_master_scheduler_default_predicates: "{{ lookup('openshift_master_facts_default_predicates') }}"
    openshift_master_scheduler_default_priorities: "{{ lookup('openshift_master_facts_default_priorities') }}"

- block:
  - name: Retrieve current scheduler config
    slurp:
      src: "{{ openshift_master_scheduler_conf }}"
    register: current_scheduler_config

  - name: Set openshift_master_scheduler_current_config
    set_fact:
      openshift_master_scheduler_current_config: "{{ current_scheduler_config.content | b64decode | from_json }}"

  - name: Test if scheduler config is readable
    fail:
      msg: "Unknown scheduler config apiVersion {{ openshift_master_scheduler_config.apiVersion }}"
    when: openshift_master_scheduler_current_config.apiVersion | default(None) != 'v1'

  - name: Set current scheduler predicates and priorities
    set_fact:
      openshift_master_scheduler_current_predicates: "{{ openshift_master_scheduler_current_config.predicates }}"
      openshift_master_scheduler_current_priorities: "{{ openshift_master_scheduler_current_config.priorities }}"
  when: scheduler_config_stat.stat.exists